![](/img/trans.png)
[英]Hyperparameter Grid Search with XGBoost - Scoring function vs Evaluation Metric
[英]The loss function and evaluation metric of XGBoost
我现在对XGBoost
中使用的损失函数感到困惑。 以下是我感到困惑的地方:
objective
,即损失函数需要最小化; eval_metric
:用于表示学习结果的指标。 这两者是完全不相关的(如果我们不考虑分类,只有logloss
和mlogloss
可以用作eval_metric
)。 这个对吗? 如果我是,那么对于分类问题,如何使用rmse
作为性能指标?objective
的两个选项为例, reg:logistic
和binary:logistic
。 对于 0/1 分类,通常应该将二元逻辑损失或交叉熵视为损失函数,对吗? 那么这两个选项中的哪一个是针对这个损失函数的,另一个的值是多少呢? 比如说,如果binary:logistic
表示交叉熵损失函数,那么reg:logistic
是做什么的?multi:softmax
和multi:softprob
什么区别? 他们是否使用相同的损失函数,只是输出格式不同? 如果是这样,那么reg:logistic
和binary: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
使用什么损失函数?
'binary:logistic' 使用-(y*log(y_pred) + (1-y)*(log(1-y_pred)))
'reg:logistic' 使用(y - y_pred)^2
为了得到误差的总估计,我们将所有误差相加并除以样本数。
您可以在基础知识中找到它。 在查看线性回归与逻辑回归时。
线性回归使用(y - y_pred)^2
作为成本函数
逻辑回归使用-(y*log(y_pred) + (y-1)*(log(1-y_pred)))
作为成本函数
评估指标是完全不同的东西。 他们设计来评估您的模型。 你可能会被它们弄糊涂,因为使用一些与损失函数相同的评估指标是合乎逻辑的,比如回归问题中的MSE
。 然而,在二进制问题中,查看logloss
并不总是明智的。 我的经验认为我(在分类问题中)通常会关注AUC ROC
。
根据 xgboost 文档:
reg:linear:线性回归
reg:logistic:逻辑回归
binary:logistic:二元分类的逻辑回归,输出概率
所以我猜:
reg:linear: 正如我们所说, (y - y_pred)^2
reg:logistic 为-(y*log(y_pred) + (y-1)*(log(1-y_pred)))
并以 0.5 阈值四舍五入预测
binary:logistic is plain -(y*log(y_pred) + (1-y)*(log(1-y_pred)))
(返回概率)
你可以测试一下,看看它是否像我编辑的那样。 如果是这样,我将更新答案,否则,我将删除它:<
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.