La fonction de prédiction ci-dessous donne également des valeurs -ve, il ne peut donc pas s'agir de probabilités.
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)
J'ai google et essayé pred_s <- predict(bst, x_mat_s2,type="response")
mais cela n'a pas fonctionné.
Question
Comment prédire les probabilités à la place?
machine-learning
r
predictive-modeling
decision-trees
GeorgeOfTheRF
la source
la source
outputmargin=F
à lapredict
fonction? Si la valeuroutputmargin
est définie surT
, elle renverra la valeur avant la transformation logistique.predict_proba
implémentation à partir de l'sklearn
API: github.com/dmlc/xgboost/blob/master/python-package/xgboost/…Réponses:
Je sais que je suis un peu en retard, mais pour obtenir des probabilités de
xgboost
votre part, spécifiez unmulti:softmax
objectif comme celui-ci:Du
?xgb.train
:la source
Utilisez simplement
predict_proba
au lieu depredict
. Vous pouvez laisser l'objectif commebinary:logistic
.la source
après la prédiction
vous pouvez obtenir la probabilité en
S'il s'agit d'une classification binaire, alors
pred_s$data
inclut prob.0, prob.1, response.Vous pouvez donc obtenir prob.1 en
la source