首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XGBoost的损失函数及评价指标

XGBoost的损失函数及评价指标
EN

Stack Overflow用户
提问于 2018-11-29 00:38:11
回答 2查看 22.2K关注 0票数 16

我现在对XGBoost中使用的损失函数感到困惑。以下是我感到困惑的地方:

  1. 我们有objective,它是需要最小化的损失函数;eval_metric:用来表示学习结果的度量。这两者是完全不相关的(如果我们不考虑这样的分类,那么只有loglossmlogloss可以作为eval_metric使用)。这是正确的吗?如果我是,那么对于分类问题,如何使用rmse作为性能度量?
  2. objective的两个选项为例,reg:logisticbinary:logistic。对于0/1的分类,通常认为二元逻辑损失或交叉熵是损失函数,对吗?那么这两个选项中的哪一个是这个损失函数,另外一个的值是多少?比方说,如果binary:logistic表示交叉熵损失函数,那么reg:logistic会做什么?
  3. multi:softmaxmulti:softprob有什么区别?它们是否使用相同的损失函数,只是输出格式不同?如果是这样的话,reg:logisticbinary:logistic也应该是一样的,对吗?

第二个问题的补充

例如,0/1分类问题的损失函数应该是L = sum(y_i*log(P_i)+(1-y_i)*log(P_i))。因此,如果我需要在这里选择binary:logistic,或者选择reg:logistic让xgboost分类器使用L损失函数。如果是binary:logistic,那么reg:logistic使用的丢失函数是什么?

EN

回答 2

Stack Overflow用户

发布于 2018-11-29 09:30:29

‘二进制:逻辑’使用-(y*log(y_pred) + (1-y)*(log(1-y_pred)))

‘’reg:物流‘使用(y - y_pred)^2

为了得到误差的总估计,我们把所有的误差加在一起,除以样本数。

你可以从基本知识中找到这一点。线性回归与Logistic回归。

线性回归采用(y - y_pred)^2作为成本函数

Logistic回归用-(y*log(y_pred) + (y-1)*(log(1-y_pred)))作为成本函数

评估指标是完全不同的。他们的设计是为了评估你的模型。您可能会对它们感到困惑,因为使用与损失函数相同的一些评估指标是合乎逻辑的,比如回归问题中的MSE。但是,在二进制问题中,查看logloss并不总是明智的。我的经验认为我(在分类问题上)一般会关注AUC ROC

编辑

根据xgboost文档:

reg:线性:线性回归reg: logistic : logistic回归二进制:logistic:logistic回归用于二进制分类,输出概率

所以我猜:

雷格:线性:就像我们说的,(y - y_pred)^2

reg:logistic是-(y*log(y_pred) + (y-1)*(log(1-y_pred)))和0.5阈值的四舍五入预测

二进制:logistic是普通的-(y*log(y_pred) + (1-y)*(log(1-y_pred))) (返回概率)

你可以测试它,看看它是否像我编辑的那样。如果是这样,我将更新答案,否则,我将删除它:<

票数 11
EN

Stack Overflow用户

发布于 2018-11-29 00:43:06

  1. 是的,损失函数和评估指标有两个不同的目的。模型利用损失函数来了解输入和输出之间的关系。评估指标用于评估所学习的关系有多好。下面是模型评估讨论的链接:evaluation.html
  2. 我不知道你到底在问什么。你能澄清这个问题吗?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53530189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档