0

在 R (R 版本 3.5.1 (2018-07-02) -- “Feather Spray”)中使用 rpart 和 adabag 包时,我发现了一些奇怪的东西(至少对我而言)。

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

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

4

0 回答 0