轻GBM提前停止不适用于自定义指标

时间:2019-07-26 15:01:17

标签: python machine-learning data-science lightgbm

我已经为自定义gbm使用了自定义指标,但为了减少对数损失而提前停止工作,这是目标函数,我该如何解决该问题或更改为eval指标而提前停止工作。

def evaluate_macroF1_lgb(truth, predictions):  
    pred_labels = predictions.reshape(len(np.unique(truth)),-1).argmax(axis=0)
    f1 = f1_score(truth, pred_labels, average='macro')
    return ('macroF1', f1, True) 

lg = LGBMClassifier(n_estimators=1000)

lg.fit(x_train,y_train,eval_set=(x_test,y_test),eval_metric=evaluate_macroF1_lgb,early_stopping_rounds=25)

我希望它可以运行1000次或更短的迭代,但是由于对数损失没有改善但f1指标却在改善,因此可以运行25次。

1 个答案:

答案 0 :(得分:0)

更新

我找到了可以在LGBM分类器中设置metric =“ custom”的解决方案,然后它将使用评估指标。


lg = LGBMClassifier(n_estimators=1000,metric="custom")