Приведенная ниже функция прогнозирования также дает значения -ve, поэтому она не может быть вероятностью.
param <- list(max.depth = 5, eta = 0.01, objective="binary:logistic",subsample=0.9)
bst <- xgboost(param, data = x_mat, label = y_mat,nround = 3000)
pred_s <- predict(bst, x_mat_s2)
Я попробовал Google, pred_s <- predict(bst, x_mat_s2,type="response")
но это не сработало.
Вопрос
Как предсказать вероятности вместо этого?
machine-learning
r
predictive-modeling
decision-trees
GeorgeOfTheRF
источник
источник
outputmargin=F
вpredict
функцию? Если каким-то образомoutputmargin
установлено значениеT
, оно вернет значение до логистического преобразования.predict_proba
реализацию изsklearn
API: github.com/dmlc/xgboost/blob/master/python-package/xgboost/…Ответы:
Знайте, я немного опоздал, но чтобы получить вероятности от
xgboost
вас, необходимо указатьmulti:softmax
цель следующим образом:Из
?xgb.train
:источник
Просто используйте
predict_proba
вместоpredict
. Вы можете оставить цель какbinary:logistic
.источник
после прогноза
Вы можете получить вероятность путем
Если это бинарная классификация, то
pred_s$data
включает в себя prob.0, prob.1, ответ.Таким образом, вы можете получить
источник