# 引入相关包
import pandas as pd
import lightgbm as lgb
from sklearn.model_selection import StratifiedKFold
# 假设这里准备好了训练数据train_data,它是一个pandas的dataframe,包括特征列和score列
train_label = train_data['score']
# 初始化一个k-fold生成器
NFOLDS = 5
kfold = StratifiedKFold(n_splits=NFOLDS, shuffle=True, random_state=2019)
kf = kfold.split(train_data, train_label)
cv_pred = np.zeros(test_data.shape[0])
valid_best_l2_all = 0
feature_importance_df = pd.DataFrame()
# 执行训练
for i, (train_fold, validate) in enumerate(kf):
X_train, X_validate, label_train, label_validate = \
train_data.iloc[train_fold, :], train_data.iloc[validate, :], \
train_label[train_fold], train_label[validate]
dtrain = lgb.Dataset(X_train, label_train)
dvalid = lgb.Dataset(X_validate, label_validate, reference=dtrain)
bst = lgb.train(params, dtrain, num_boost_round=10000, valid_sets=dvalid, verbose_eval=-1
LGB交叉验证KFOLD
最新推荐文章于 2024-04-20 21:44:23 发布