Bs *_* He 11 python machine-learning xgboost xgbclassifier
我现在对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
使用什么?
Era*_*she 10
'binary:logistic' 使用 -(y*log(y_pred) + (y-1)*(log(1-y_pred)))
'reg:logistic' 使用 (y - y_pred)^2
为了获得总的误差估计,我们将所有误差相加并除以样本数。
您可以在基础知识中找到这一点。在查看线性回归 VS Logistic 回归时。
线性回归(y - y_pred)^2
用作成本函数
逻辑回归-(y*log(y_pred) + (y-1)*(log(1-y_pred)))
用作成本函数
评估指标是完全不同的东西。他们旨在评估您的模型。您可能会对它们感到困惑,因为使用一些与损失函数相同的评估指标是合乎逻辑的,例如MSE
在回归问题中。但是,在二进制问题中,查看logloss
. 我的经验认为我(在分类问题上)一般都看AUC ROC
.
根据 xgboost 文档:
reg:linear: 线性回归
reg:logistic: 逻辑回归
二元:逻辑:二元分类的逻辑回归,输出概率
所以我猜:
reg:linear:正如我们所说, (y - y_pred)^2
reg:logistic is-(y*log(y_pred) + (y-1)*(log(1-y_pred)))
和 0.5 阈值的四舍五入预测
二元:逻辑是简单的-(y*log(y_pred) + (1-y)*(log(1-y_pred)))
(返回概率)
你可以测试一下,看看它是否像我编辑的那样。如果是这样,我会更新答案,否则,我将删除它:<
归档时间: |
|
查看次数: |
14581 次 |
最近记录: |