A função de previsão abaixo também fornece valores -ve, portanto não podem ser probabilidades.
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)
Eu google e tentei, pred_s <- predict(bst, x_mat_s2,type="response")
mas não funcionou.
Questão
Como prever probabilidades?
machine-learning
r
predictive-modeling
decision-trees
GeorgeOfTheRF
fonte
fonte
outputmargin=F
àpredict
função? Se, de alguma forma,outputmargin
estiver definido comoT
, ele retornará o valor antes da transformação logística.predict_proba
implementação dasklearn
API: github.com/dmlc/xgboost/blob/master/python-package/xgboost/…Respostas:
Saiba que estou um pouco atrasado, mas para obter probabilidades,
xgboost
você deve especificarmulti:softmax
objetivos como este:De
?xgb.train
:fonte
Basta usar em
predict_proba
vez depredict
. Você pode deixar o objetivo comobinary:logistic
.fonte
depois da previsão
você pode obter a probabilidade de
Se esta é uma classificação binária,
pred_s$data
inclui prob.0, prob.1, resposta.Para que você possa obter prob.1,
fonte