lgb.Datasetを使用してLightGBMモデルのクロス検証を行い、early_stopping_roundsを使用します。次のアプローチは、XGBoostのxgboost.cvで問題なく動作します。 Scikit LearnのアプローチをGridSearchCVで使用しないことを好みます。早期停止またはlgb.Datasetをサポートしていないためです。
_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.cvのstratifyパラメーターはTrue
です。 ドキュメント によると:
層化(ブール、オプション(デフォルト= True))–層化サンプリングを実行するかどうか。
ただし、stratifyは分類問題でのみ機能します。したがって、回帰を使用するには、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
)
これで動作します。