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

4
请参考lightgbm.cv,我发现两个参数让我感到困惑:metricsfeval。根据我的一点gbdt知识,评估指标和评估函数都是用来计算损失的,例如auc,从预测向量和真实标签向量中计算出来。
然而,metricsfunction听起来像是在处理不同的任务。
以下是需要回答的问题:
1.它们是否执行相同的操作?
2.更具体地说,如果我执行lightgbm.cv(params,metrics='auc', feval='ks'),那么feval='ks'会覆盖metrics='auc'吗?
1个回答

8
首先,metricsfunction这两个概念在数学上并没有本质的区别:从数学的角度来看,一个度量标准(metric)就是一个函数(参见维基百科条目)。虽然这里的度量标准更为广泛,但这个论点仍然成立。
具体而言,针对你提出的问题;从你链接的文档页面中可以得到以下信息:
  • metrics字符串、字符串列表或None,可选(默认为None))- 在CV过程中要监控的评估指标。如果不是None,则会覆盖params中的度量标准。
  • feval可调用对象或None,可选(默认为None))- 自定义评估函数。
请注意:1)度量标准metrics是复数形式,可以是字符串列表;2)feval中使用了术语custom
简而言之:
  1. You can indeed use more than one available metrics in the metrics argument; your example should be:

    lightgbm.cv(params,metrics=['auc','ks'])
    
  2. 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.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接