Fungsi prediksi di bawah ini adalah memberikan nilai -ve juga sehingga tidak bisa menjadi probabilitas.
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)
Saya google & mencoba pred_s <- predict(bst, x_mat_s2,type="response")
tetapi tidak berhasil.
Pertanyaan
Bagaimana cara memprediksi probabilitas?
machine-learning
r
predictive-modeling
decision-trees
GeorgeOfTheRF
sumber
sumber
outputmargin=F
kepredict
fungsi? Jika entah bagaimanaoutputmargin
diatur keT
, itu akan mengembalikan nilai sebelum transformasi logistik.predict_proba
implementasi darisklearn
API: github.com/dmlc/xgboost/blob/master/python-package/xgboost/…Jawaban:
Tahu saya agak terlambat, tetapi untuk mendapatkan probabilitas dari
xgboost
Anda harus menentukanmulti:softmax
tujuan seperti ini:Dari
?xgb.train
:sumber
Cukup gunakan
predict_proba
sajapredict
. Anda dapat meninggalkan tujuannya sebagaibinary:logistic
.sumber
setelah prediksi
Anda bisa mendapatkan probabilitas dengan
Jika ini adalah klasifikasi biner maka
pred_s$data
termasuk prob.0, prob.1, respons.Jadi, Anda bisa mendapatkan prob.1 dengan
sumber