Здесь я пытался внедрить ручную функцию f1_score для оценки, но в коде это не вызывает функцию manual_scoring {No print o / p} вместо того, чтобы с ошибкой:
" call () отсутствует 1 обязательный позиционный аргумент: 'y_true'"
Если я удаляю код feval, то он работает нормально.
def maual_scoring(y_hat, data):
print("I am here")
y_true = data.get_label()
y_hat = np.argmax(y_hat, axis =1 ) #multi classification problem
return 'f1', f1_score(y_true, y_hat), True
model = lgb.train(
params = lgb_params.copy(),
train_set=lgb_model,
valid_sets=[lgb_model, lgb_val],
valid_names=['Train', 'Validation'],
verbose_eval=100,
feval=maual_scoring,
num_boost_round=99999,
early_stopping_rounds=100
)
Получил ответ: необходимо изменить форму пред