你好!
我正在尝试组合由一个自定义eval函数和多个内置eval函数组成的eval_metrics列表。
当我使用内置函数列表时,一切正常:
model.fit(
X_train_inner,
y_train_inner,
early_stopping_rounds=20,
eval_metric = ["error", "logloss", "map"],
eval_set=[(X_test_inner, y_test_inner)])
此外,当我自己使用自定义函数时,一切正常:
model.fit(
X_train_inner,
y_train_inner,
early_stopping_rounds=20,
eval_metric = custom_f1_eval_function,
eval_set=[(X_test_inner, y_test_inner)])
但是如何将自定义函数和内置函数传递给eval_metric参数?
谢谢!
答案 0 :(得分:0)
https://github.com/dmlc/xgboost/issues/1125
def auc_copc(preds, dtrain):
preds = 1.0 / (1.0 + np.exp(-preds))
labels = dtrain.get_label()
auc = roc_auc_score(labels, preds)
copc = np.sum(labels) / np.sum(preds)
return [('auc', auc), ('copc', copc)]