我对xgboost和multiclass有疑问。我不使用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包装器,但是,我希望保留常规火车方法。
答案 0 :(得分:1)
如果使用param['objective'] = 'multi:prob'
而不是param['objective'] = 'multi:softmax'
,则分类器的结果是每个类的概率。
在此处查看文档: https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters