XGBoost - 在 multi:softmax 函数之后获取概率

问题描述 投票:0回答:1

我有一个关于 xgboost 和多类的问题。我没有使用 sklearn 包装器,因为我总是在某些参数上遇到困难。我想知道是否可以获得概率向量加上 softmax 输出。以下是我的代码:

param = {}
param['objective'] = 'multi:softmax'
param['booster'] = 'gbtree'
param['eta'] = 0.1
param['max_depth'] = 30
param['silent'] = 1
param['nthread'] = 4
param['num_round'] = 40
param['num_class'] = len(np.unique(label)) + 1   
model = xgb.train(param, dtrain)                                    
# predict                                                                                   
pred = model.predict(dtest)

我希望能够调用像

predict_proba
这样的函数,但我不知道是否可以。很多答案(例如:https://datascience.stackexchange.com/questions/14527/xgboost-predict-probabilities)建议转向 sklearn 包装器,但是,我想继续使用正常的训练方法。

python xgboost xgbclassifier
1个回答
7
投票

如果您使用

param['objective'] = 'multi:softprob'
而不是
param['objective'] = 'multi:softmax'
,则分类器的结果是每个类别的概率。

请参阅此处的文档: https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters

© www.soinside.com 2019 - 2024. All rights reserved.