如何在python xgboost中传递多个自定义指标(eval_metric)?

Big*_*ist 5 python machine-learning auc xgboost objective-function

该folloiwng代码不工作,在那里aucerraoeerr被定制的评估指标,它正在与只有一个eval_metric要么aucerraoeerr

prtXGB.fit(trainData, targetVar, early_stopping_rounds=10, 
eval_metric= [aucerr, aoeerr], eval_set=[(valData, valTarget)])
Run Code Online (Sandbox Code Playgroud)

但是,以下带有内置评估指标的代码正在运行

prtXGB.fit(trainData, targetVar, early_stopping_rounds=10, 
eval_metric= ['auc', 'logloss'], eval_set=[(valData, valTarget)])
Run Code Online (Sandbox Code Playgroud)

这是我的自定义函数

def aucerr(y_predicted, y_true):
    labels = y_true.get_label()
    auc1 = metrics.roc_auc_score(labels,y_predicted)
    return 'AUCerror', abs(1-auc1)

def aoeerr(y_predicted, y_true):
    labels = y_true.get_label()
    actuals = sum(labels)
    predicted = sum(y_predicted)
    ae = actuals/predicted
    return 'AOEerror', abs(1-ae)
Run Code Online (Sandbox Code Playgroud)