我想对LightGBM模型进行交叉验证 lgb。数据集 和使用 early\u stopping\u回合数 .以下方法对XGBoost没有问题 XG增压。个人简历 。我不喜欢将Scikit Learn的方法用于GridSearchCV,因为它不支持提前停止或lgb。数据集。
import lightgbm as lgb from sklearn.metrics import mean_absolute_error dftrainLGB = lgb.Dataset(data = dftrain, label = ytrain, feature_name = list(dftrain)) params = {'objective': 'regression'} cv_results = lgb.cv( params, dftrainLGB, num_boost_round=100, nfold=3, metrics='mae', early_stopping_rounds=10 )
任务是进行回归,但以下代码会引发错误:
Supported target types are: ('binary', 'multiclass'). Got 'continuous' instead.
LightGBM是否支持回归,或者我是否提供了错误的参数?
默认情况下,lightgbm中的stratify参数。cv为 True 。 根据 the documentation :
True
分层(bool,可选(默认值=True))是否执行 分层抽样。
但分层只适用于分类问题。因此,要处理回归,需要将其设为False。
cv_results = lgb.cv( params, dftrainLGB, num_boost_round=100, nfold=3, metrics='mae', early_stopping_rounds=10, # This is what I added stratified=False )
现在开始工作了。