如何为LightGBM设置eval_init_score?

时间:2018-09-28 17:31:08

标签: lightgbm

我正在为项目使用LightGBM的分类器。在fit方法中,我指定了early_stopping_rounds = 50。由于最初的对数损失很低,因此无法很好地工作,然后迅速上升并缓慢下降。我的解决方案是使用eval_init_score。代码如下所示:

clf = lgb.LGBMClassifier(
    num_leaves=31,
    learning_rate=0.07,
    n_estimators=1000,
    subsample=.9,
    colsample_bytree=.9,
    max_depth=3,
    scale_pos_weight=80,
    random_state=1
)
clf.fit(trn_x, trn_y, eval_set=[(val_x, val_y)], early_stopping_rounds=50, eval_init_score=0.15,verbose=1)

我收到以下错误消息:

TypeError: eval_sample_weight, eval_class_weight, eval_init_score, and eval_group should be dict or list

然后我尝试了以下操作:

clf.fit(trn_x, trn_y, eval_set=[(val_x, val_y)], early_stopping_rounds=50, eval_init_score=[0.15],verbose=1)

但是它仍然没有用。有什么建议吗?

0 个答案:

没有答案