概率输入XGBOST R

时间:2018-07-05 08:05:45

标签: r xgboost

我正在将XGBoost算法与R配合使用。我知道参数 objective ='multi:softprob'会返回每个类中预测值的概率。

此外,我也想输入模型的标签作为概率。我正在搜索,但没有找到任何东西。有人知道这是否可能吗?

这是我必须尝试的代码:

#Create Random data
X <- data.frame(replicate(2,sample(0:1,6,rep=TRUE)))
X$X1 <- as.numeric(X$X1)
X$X2 <- as.numeric(X$X2)
Y1 = matrix(c(1,1,0,1,0,1),nrow=6, ncol=1) 
Y2 = matrix(c(0.1,0.9,0.1,0.9,0.9,0.1,0.1,0.9,0.9,0.1,0.1,0.9),nrow=6, ncol=2) 

#First model
xgb1 <- xgboost(data = data.matrix(X), 
               label = Y1,
               eta = 0.1,
               max_depth = 15, 
               nround=25, 
               subsample = 0.5,
               colsample_bytree = 0.5,
               seed = 1,
               eval_metric = "merror",
               objective = "multi:softprob",
               num_class = 2,
               nthread = 3
)
predict(xgb1, data.matrix(X[1,]))

#Desired model
xgb <- xgboost(data = data.matrix(X), 
               label = Y2,
               eta = 0.1,
               max_depth = 15, 
               nround=25, 
               subsample = 0.5,
               colsample_bytree = 0.5,
               seed = 1,
               eval_metric = "merror",
               objective = "multi:softprob",
               num_class = 2,
               nthread = 3
)

第一个模型是我习惯的模型,第二个模型是我想要的模型。唯一的区别是标签格式,但我不知道第二种选择是否可行。

谢谢!

0 个答案:

没有答案