XGBoost - получить вероятности после функции multi:softmax
У меня есть вопрос относительно 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, однако я бы хотел остаться с обычным методом поезда.
0 ответов
Если вы используете param['objective'] = 'multi:prob'
вместо того param['objective'] = 'multi:softmax'
, результатом работы классификатора является вероятность для каждого класса.
См. Документацию здесь:https://xgboost.readthedocs.io/en/latest/parameter.html