我可能在文档中看漏了,但我想知道是否有一种方法可以在XGBoost中生成预测结果和概率?在我的情况下,我正在尝试预测一个多类分类器。如果我能返回"Medium - 88%"就太好了。
- 分类器 = Medium
- 预测概率 = 88%
参数
params = {
'max_depth': 3,
'objective': 'multi:softmax', # error evaluation for multiclass training
'num_class': 3,
'n_gpus': 0
}
预测
pred = model.predict(D_test)
结果array([2., 2., 1., ..., 1., 2., 2.], dtype=float32)
易于使用的(标签编码器)
pred_int = pred.astype(int)
label_encoder.inverse_transform(pred_int[:5])
array(['Medium', 'Medium', 'Low', 'Low', 'Medium'], dtype=object)
编辑: @Reveille建议使用predict_proba。我没有实例化XGBClassifer()。如果应该这样做,我该如何修改我的管道来使用它?
params = {
'max_depth': 3,
'objective': 'multi:softmax', # error evaluation for multiclass training
'num_class': 3,
'n_gpus': 0
}
steps = 20 # The number of training iterations
model = xgb.train(params, D_train, steps)