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

时间:2018-04-13 19:30:20

标签: python machine-learning lightgbm

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

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

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

1 个答案:

答案 0 :(得分:1)

首先,metricsfunction的一般概念完全不同:从数学角度来看,指标一个函数({{3} })。虽然这里的度量概念更为广泛,但论证仍然存在。

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

  
      
  • 指标字符串,字符串列表或无,可选(默认=无)) - 在CV时要监控的评估指标。如果不是“无”,则会覆盖params中的指标。
  •   
  • feval 可调用或无,可选(默认=无)) - 自定义评估功能。
  •   

注意1)复数指标 s ,可以是字符串列表 2)feval中的术语自定义

简而言之:

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

    lightgbm.cv(params,metrics=['auc','ks'])
    
  2. feval只应在以下情况下使用另外到您可以使用的metrics来自现有的metric='auc',您还需要自定义<您自己定义的/ em>指标;请参阅示例Wikipedia entry,其中feval = my_err_ratemy_err_rate同时使用,并且{{1}}已定义。