title: How to pass multiple custom metrics (eval_metric) in python xgboost?
body: <p>The folloiwng code is not working, where <code>aucerr</code> and <code>aoeerr</code> are custom evaluation metrics, it is working with just one <code>eval_metric</code> either <code>aucerr</code> or <code>aoeerr</code></p>
  
  <pre><code>prtXGB.fit(trainData, targetVar, early_stopping_rounds=10, 
  eval_metric= [aucerr, aoeerr], eval_set=[(valData, valTarget)])
  </code></pre>
  
  <p>However, the following code with in-built evaluation metrics is working</p>
  
  <pre><code>prtXGB.fit(trainData, targetVar, early_stopping_rounds=10, 
  eval_metric= ['auc', 'logloss'], eval_set=[(valData, valTarget)])
  </code></pre>
  
  <p>Here are my custom functions</p>
  
  <pre><code>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)
  </code></pre>