lightgbm中评价指标和评价函数的区别
Difference between evaluation metrics and evaluation function in lightgbm
参考lightgbm.cv,有两个参数让我很困惑:metrics
和feval
。根据我对gbdt的了解,评估指标和评估函数都是从预测向量和真实标签向量计算损失,例如auc。
但是,metrics
和 function
听起来他们在处理不同的任务。
- 他们在做同样的事情吗?
- 更具体地说,如果我执行
lightgbm.cv(params,metrics='auc', feval='ks')
,feval='ks'
会覆盖metrics='auc'
吗?
首先,metrics
和 function
的一般概念完全没有区别:从数学的角度来看,度量 是 函数(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
.
长话短说:
您确实可以在 metrics
参数中使用多个可用指标;你的例子应该是:
lightgbm.cv(params,metrics=['auc','ks'])
feval
仅应在以下情况下使用,此外 您可以从现成的 metrics
想要一个您自己定义的 custom 指标;请参阅示例 here,其中 metric='auc'
和 feval = my_err_rate
在 my_err_rate
定义之后同时使用。
参考lightgbm.cv,有两个参数让我很困惑:metrics
和feval
。根据我对gbdt的了解,评估指标和评估函数都是从预测向量和真实标签向量计算损失,例如auc。
但是,metrics
和 function
听起来他们在处理不同的任务。
- 他们在做同样的事情吗?
- 更具体地说,如果我执行
lightgbm.cv(params,metrics='auc', feval='ks')
,feval='ks'
会覆盖metrics='auc'
吗?
首先,metrics
和 function
的一般概念完全没有区别:从数学的角度来看,度量 是 函数(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
.
长话短说:
您确实可以在
metrics
参数中使用多个可用指标;你的例子应该是:lightgbm.cv(params,metrics=['auc','ks'])
feval
仅应在以下情况下使用,此外 您可以从现成的metrics
想要一个您自己定义的 custom 指标;请参阅示例 here,其中metric='auc'
和feval = my_err_rate
在my_err_rate
定义之后同时使用。