adabag和rpart之间的区别

时间:2018-10-22 10:32:38

标签: r rpart boosting

在R中使用rpart和adabag程序包时,我发现了一些奇怪的现象(至少对我而言)(R版本3.5.1(2018-07-02)-“羽毛喷射”))。

我想知道,即使参数化相同,使用两个软件包时获得不同树的原因是什么。看看下面的代码:

library(rpart); library(adabag);
set.seed(32323)

N<-1000
x<-rnorm(N)
y<-0.6^2*x+sqrt(1-0.6^2)*rnorm(N)
z<-rep(0,N)
for(i in 1:N){
  if(x[i]-y[i]+0.2*rnorm(1)>1.0){
    z[i]=1
  }
}

myData<-data.frame(x,y,z)

tree<-rpart(formula=z ~ .,myData, method="anova", cp=0,maxdepth=10,minbucket=30, xval=10)
plot(tree, uniform=TRUE, compress=TRUE)
text(tree, use.n = FALSE, all=FALSE)
print(tree)

myData.Ada<-myData
myData.Ada$z<-as.factor(myData$z)
adaboost <- boosting(z ~ .,data = myData.Ada, boos = F, mfinal=1, coeflearn="Breiman", control=rpart.control(method="anova", cp=0, maxdepth=10, minbucket = 30, xval=10))
plot(adaboost$tree[[1]], uniform=TRUE, compress=TRUE)
text(adaboost$tree[[1]], use.n = FALSE, all=FALSE)
print(adaboost$tree[[1]])
对我来说,参数化是相同的,但是树是不同的。只要我知道adabag使用rpart来创建树,那么这是什么原因?

问候 Wojtek

0 个答案:

没有答案