我在机器学习方面还是新手。我试图用lgb.cv()的5倍简历来训练我的模型,但是我不知道如何在lgb.train()中使用结果。例如,如何使用‘lgb_clf’中的“cv结果”?我无法理解cv()和train()之间的区别。
lgbm_params = {
'objective': 'binary',
'metric': 'auc',
'is_unbalance': 'true',
'boosting': 'gbdt',
'num_leaves': 31,
'feature_fraction': 0.5,
'bagging_fraction': 0.5,
'bagging_freq': 20,
'learning_rate': 0.05,
'verbose': 0
}
metric = 'auc'
cv_folds = 5
num_rounds = 5000
lgtrain = lgb.Dataset(train, label=label)
lgvalid = lgb.Dataset(test,label=label)
cv = lgb.cv(lgbm_params, lgtrain, num_rounds, nfold=cv_folds, metrics={metric}, early_stopping_rounds=100)
lgb_clf = lgb.train(lgbm_params, lgtrain,num_rounds, early_stopping_rounds=100, valid_sets=[lgtrain,lgvalid])发布于 2020-03-06 23:14:49
问题是您想要使用交叉验证的目的是什么。如果您正在估计预定义的一组超参数的泛化误差,您可以直接接受lgb.cv的输出,并且不需要再对模型进行训练。另一方面,如果你在寻找超参数的最优值,你会想要探测这个空间中的多个点,计算每个超参数的交叉验证分数,并选择得分最好的点。然后,您将使用这样找到的超参数重新训练模型。
https://stackoverflow.com/questions/60277986
复制相似问题