我现在对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使用的丢失函数是什么?
发布于 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))) (返回概率)
你可以测试它,看看它是否像我编辑的那样。如果是这样,我将更新答案,否则,我将删除它:<
发布于 2018-11-29 00:43:06
https://stackoverflow.com/questions/53530189
复制相似问题