J'ai utilisé une métrique personnalisée pour le gbm léger mais l'arrêt précoce fonctionne pour la perte de logarithme qui est la fonction objective. Comment puis-je corriger cela ou changer l'arrêt précoce pour qu'il fonctionne pour la métrique d'évaluation ?
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)
Je m'attendais à ce qu'il fonctionne pendant 1000 itérations ou moins, mais il a fonctionné pendant 25, car la perte de log ne s'améliore pas, mais la métrique f1 s'améliore.