我现在对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也应该是一样的,对吗?
第2个问题的补充说明
假设0/1分类问题的损失函数应该为:
L = sum(y_i*log(P_i)+(1-y_i)*log(P_i))
。如果我需要在XGBoost分类器中使用L
损失函数,是选择binary:logistic
还是reg:logistic
呢?如果选择binary:logistic
,那么reg:logistic
会使用什么样的损失函数?