预测R

时间:2017-02-07 20:48:05

标签: r decision-tree predict

我正在使用R中的C50软件包。这个算法通过可定制的试验数量来训练提升的决策树,我希望预测每个试验的结果。

该软件包具有“预测”算法,但它仅预测所有试验,或使用前n次试验进行预测。但是,它不允许单独预测每个试验。

我发现解决此问题的一种方法是执行以下操作:

#Load libraries
library(C50)
library(party)
library(rpart)

#Load data
data(churn)

#Train model with more four trials
set.seed(10)
tree.model <- C5.0(x = churnTrain[, -20], 
             y = churnTrain$churn, 
             trials = 4,
             control = C5.0Control(noGlobalPruning = TRUE,
                                   earlyStopping=FALSE))

#Convert each trial to a separate a class party object
A <- list()
for (i in 1: tree.model$trials["Actual"]){

  A[[i]]<-partykit::as.party(tree.model,trial=i-1)   
}

#Predict the outcome of each separate trial

Z <- list()
for (i in 1: tree.model$trials["Actual"]){
  Z[[i]]<-predict(A[[i]],churnTest[,-20], type = "prob")
  print(Z[[i]][1,])
}

然而,有一种训练C5.0树的替代方法,由下式给出:

formula2 <- churn ~ .
set.seed(10)
tree.model <- C5.0(formula2, 
             data=churnTrain, 
              trials = 4,
              control = C5.0Control(noGlobalPruning = TRUE,
                                    earlyStopping=FALSE))

当我训练像这样的C5.0树时,我无法将每个试验转换为单独的一个派对对象:

z1<-partykit::as.party(tree.model,trial=1)
Error in `[.data.frame`(mf, rsp) : undefined columns selected

因此,这提出了两个主要问题:

  1. 是否有其他方法可以预测r?
  2. 中C5.0对象的个别试验结果
  3. 为什么我建议的方法适用于C5.0模型的一个配方,而不适用于第二个? (当尝试使用包的方法“plot”绘制每个试验时,也会出现同样的问题,包括相同的错误。)
  4. 谢谢

0 个答案:

没有答案