3

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

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

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

1 回答 1

6

首先,和的一般概念metricsfunction没有什么不同:从数学的角度来看,度量一个函数(维基百科条目)。尽管这里度量的概念更广泛,但这个论点仍然成立。

更具体地说,关于您的问题;从您链接的文档页面:

  • 指标字符串,字符串列表或无,可选(默认=无))– CV 时要监控的评估指标。如果不是 None,params则将覆盖 in 中的指标。
  • feval ( callable or None, optional (default=None) ) -- 自定义评估函数。

注意 1) 复数度量s,可以是字符串列表2) 术语custom in feval

使长话短说:

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

    lightgbm.cv(params,metrics=['auc','ks'])
    
  2. feval仅应在除了您可以从现成的可用指标中使用的任何metrics内容之外,还需要您自己定义的自定义指标时使用;在此处查看示例,其中metric='auc'和被定义feval = my_err_rate后同时使用my_err_rate

于 2018-04-15T11:01:15.083 回答