Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rpart不';t构建一棵完整的树–;cp有问题吗?_R_Rpart_Cart Analysis - Fatal编程技术网

rpart不';t构建一棵完整的树–;cp有问题吗?

rpart不';t构建一棵完整的树–;cp有问题吗?,r,rpart,cart-analysis,R,Rpart,Cart Analysis,我试图通过将control设置为rpart.control(minsplit=2,minbucket=1,cp=0)来构建一个完整的树,但它不起作用。我认为原因可能是具有4个拆分的摘要树的cp=0,但此树未满,因此其cp应为>0。 我还检查了数据,可以进行更多拆分。 这是我的密码: ################# # libraries ##### library(datasets) library(rpart) library(rpart.plot) ##################

我试图通过将control设置为
rpart.control(minsplit=2,minbucket=1,cp=0)
来构建一个完整的树,但它不起作用。我认为原因可能是具有4个拆分的摘要树的
cp
=0,但此树未满,因此其
cp
应为>0。
我还检查了数据,可以进行更多拆分。 这是我的密码:

#################
# libraries #####
library(datasets)
library(rpart)
library(rpart.plot)
##################
# preparing data #
titanic_obs=c()
for (cl in c("1st", "2nd", "3rd", "Crew")) {
  for (se in c("Male","Female")) {
    for (ag in c("Child","Adult")) {
      for (sur in c("Yes","No")) {
        titanic_obs = rbind(titanic_obs,matrix(rep(c(cl,se,ag,sur),length.out=4*Titanic[cl,se,ag,sur]),ncol=4,byrow=T))    
      }
    }
  }
}

colnames(titanic_obs)= c("Class", "Sex", "Age","Survived")
titanic_data = data.frame(titanic_obs)
summary(titanic_data) 
#################
# fitting model #
titanic_rpart = rpart(Survived ~ Sex + Age + Class,
                  data = titanic_data,method="class",
                  control=rpart.control(minsplit=2, minbucket = 1,cp=0))
#################
# checking ######
summary(titanic_rpart)
prp(titanic_rpart, extra=1, uniform=F, branch=1, yesno=F, border.col=0, xsep="/")
#################
# data ##########
adult_men = titanic_data[titanic_data$Sex=="Male" & titanic_data$Age=="Adult",]
all_am = table(adult_men$Class)
    survived_am = table(adult_men[adult_men$Survived=="Yes",]$Class)
survived_am/all_am

现在无法检查,但我似乎记得设置cp=0.000001或类似的小值
数字在某个时候为我解决了这个问题。还请注意,有些参数(如minsplit和minbucket)可能会阻碍树的生长,因此您可能也希望为这些参数设置适当的值。

现在无法检查,但我似乎记得设置cp=0.000001或类似的小值
数字在某个时候为我解决了这个问题。还请注意,有些参数(如minsplit和minbucket)可能会阻碍树的生长,因此您可能还需要为这些参数设置适当的值。

如本问题的注释所示,设置
cp=-1
将构建完整的树。

如本问题的注释所示,设置
cp=-1
将构建完整的树。

可能是一些极小cp值的机器公差问题。尝试设置
cp=-1
只是为了确定。它成功了!非常感谢。可能是机器公差问题,有些cp值非常小。尝试设置
cp=-1
只是为了确定。它成功了!非常感谢。如果您阅读问题,您将看到OP将cp设置为小于您建议的值,并且适当地设置了minsplit和minbucket,但这些都不起作用。如果您阅读问题,您将看到OP将cp设置为小于您建议的值,并且适当地设置了minsplit和minbucket,那些东西都没用。