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

Gar*_*vey 3 python machine-learning lightgbm

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

然而,metricsfunction听起来像他们正在处理不同的任务。

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

des*_*aut 6

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

更具体地说明你的问题;从您链接的文档页面:

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

通知1)的多个度量小号,它可以是一个字符串列表2)的术语定制feval

使长话短说:

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

    lightgbm.cv(params,metrics=['auc','ks'])
    
    Run Code Online (Sandbox Code Playgroud)
  2. feval应仅用于如果附加到任何metrics你可以从容易获得的人使用,也希望有一个自定义的指标你自己定义的; 请参阅此处的示例,其中metric='auc'feval = my_err_rate被同时使用,并且在my_err_rate定义之后使用。