lightgbm中评价指标和评价函数的区别

Difference between evaluation metrics and evaluation function in lightgbm

参考lightgbm.cv,有两个参数让我很困惑:metricsfeval。根据我对gbdt的了解,评估指标和评估函数都是从预测向量和真实标签向量计算损失,例如auc。

但是,metricsfunction 听起来他们在处理不同的任务。

  1. 他们在做同样的事情吗?
  2. 更具体地说,如果我执行lightgbm.cv(params,metrics='auc', feval='ks')feval='ks'会覆盖metrics='auc'吗?

首先,metricsfunction 的一般概念完全没有区别:从数学的角度来看,度量 函数(Wikipedia entry)。尽管此处度量的概念更为广泛,但该论点仍然成立。

更具体地针对您的问题;从您链接的文档页面:

  • 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.

注意 1) 复数度量s,可以是一个字符串列表 2) 术语自定义feval.

长话短说:

  1. 您确实可以在 metrics 参数中使用多个可用指标;你的例子应该是:

    lightgbm.cv(params,metrics=['auc','ks'])
    
  2. feval 仅应在以下情况下使用,此外 您可以从现成的 metrics想要一个您自己定义的 custom 指标;请参阅示例 here,其中 metric='auc'feval = my_err_ratemy_err_rate 定义之后同时使用。