To start with, the general notions of metrics
and function
are not at all different: from a mathematical viewpoint, a metric is a function (Wikipedia entry). And although here the notion of metric is more broad, the argument still holds.
More specifically on your question; from the documentation page you have linked:
- metrics (string, list of strings or None, optional (default=None)) – Evaluation metrics to be monitored while CV. If not None, the metric in
params
will be overridden.
- feval (callable or None, optional (default=None)) – Custom evaluation function.
Notice 1) the plural metrics, which can be a list of strings 2) the term custom in feval
.
To make a long story short:
You can indeed use more than one available metrics in the metrics
argument; your example should be:
lightgbm.cv(params,metrics=['auc','ks'])
feval
should only be used if, additionally to whatever metrics
you may use from the readily available ones, you also want a custom metric you have defined yourself; see an example here, where metric='auc'
and feval = my_err_rate
are used simultaneously and after my_err_rate
has been defined.