SKLearn包装器中XGBoost的Decision_function

时间:2018-04-11 18:11:56

标签: machine-learning scikit-learn xgboost

对于SKLearn中的常规Grad Boost决策树分类器,model.predict_proba(X)[:,0]model.decision_function(X)相比得到的结果不同,所以我知道这不一样。

我想要模特的分数。绘制ROC曲线等。如何使用SKLearn包装器获取XGBoost分类器的决策功能?为什么predict_proba与分数不同?

1 个答案:

答案 0 :(得分:0)

一般情况下,我不希望library(dplyr) df <- data_frame(a = c(NA, 1, NA, 1, 1), b = c(1, NA, 1, 1, NA)) df %>% transmute_all(funs(ifelse(. == 1, deparse(substitute(.)), NA))) #> # A tibble: 5 x 2 #> a b #> <chr> <chr> #> 1 <NA> b #> 2 a <NA> #> 3 <NA> b #> 4 a b #> 5 a <NA> sklearn.GradientBoostingClassifier同意,因为那些使用非常不同的实现。但是,您尝试比较的数量之间也存在概念差异:

  

为什么predict_proba与分数不同?

概率(xgboost.XGBClassifier的输出)是从应用损失/目标函数的分数(model.predict_proba(X)的输出)中获得的,请参阅How can I detect when a new element has been added to the document in jquery?here for the call to the loss function

  

我想要模特的分数。绘制ROC曲线等。如何使用SKLearn包装器获取XGBoost分类器的决策函数?

对于ROC曲线,您需要使用model.decision_function(X),即与类xgbmodel.predict_proba(X)[:,1]对应的第二列。