我正在为项目使用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)
但是它仍然没有用。有什么建议吗?