雑記

LightGBMで【For early stopping, at least one dataset and eval metric is required for evaluation】が出た時の対処法

メモ

For early stopping, at least one dataset and eval metric is required for evaluation

主にLightGBMを利用して下記の様なコードを利用している時に発生することがあり得る。

params = {
        'task': 'train',
        'boosting_type': 'gbdt',
        'objective': 'regression',
        'metric': {'rmse'},  # 注意
        'verbosity': -1,
}
X_train, y_train, X_valid, y_valid = split_train_and_valid() 
lgb_train = lgb.Dataset(X_train, y_train)
lgb_valid = lgb.Dataset(X_valid, y_valid)
model = lgb.train(params, lgb_train, num_boost_round=LGB_TRIAL_NUM,
                  valid_names=["train", "valid"], valid_sets=[lgb_train, lgb_valid],
                  early_stopping_rounds=EARLY_STOPPING_ROUNDS)

paramsの’metricが設定されていない時に発生しうるエラー。’metric’を指定すると発生しない。

metricのパラメータは公式ドキュメントを参考にして決める。

https://lightgbm.readthedocs.io/en/latest/Parameters.html#metric-parameters

 

 

 

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki