# przyklad 6.2 options(OutDec=",") library("ElemStatLearn") library("mlbench") library("rpart") library("gbm") library("ipred") data(Vehicle) m<-nrow(Vehicle) veh.bag.blad<-matrix(ncol=10,nrow=100) veh.bun.blad<-matrix(ncol=10,nrow=100) comb.lda <- list(list(model=lda, predict=function(obj, newdata) predict(obj, newdata)$x)) for (j in 1:100) { test <- sample(1:m, size = round(m/3), replace = FALSE) veh.ucz<-Vehicle[-test,] veh.test<-Vehicle[test,] y.test<-veh.test$Class ks<-seq(5,50,by=5) for (k in seq(along=ks)) { print(ks[k]) lmod<-ks[k] # liczba modeli pojedynczych do klasyfikacji # bagging veh.bag<-bagging(Class~.,data=veh.ucz,nbagg=lmod) Z.veh<-predict(veh.bag, newdata=veh.test, type="class",aggregation="majority") veh.bag.blad[j,k]<-1-(sum(as.numeric(Z.veh==y.test))/length(y.test)) # bundling veh.bun<- bagging(Class ~ .,data=veh.ucz,nbagg=lmod,comb=comb.lda) B.veh<-predict(veh.bun,newdata=veh.test, type="class",aggregation="majority") veh.bun.blad[j,k]<-1-(sum(as.numeric(B.veh==y.test))/length(y.test)) } } veh.bag<-numeric(length=10) for (k in 1:10) veh.bag[k]<-mean(veh.bag.blad[,k]) veh.bun<-numeric(length=10) for (k in 1:10) veh.bun[k]<-mean(veh.bun.blad[,k]) # rysunek 6.3 plot(ks,veh.bag,type="n",ylim=c(min(veh.bun),max(veh.bag)),xlab="Liczba modeli bazowych",ylab="Błąd predykcji",main="Zbiór Vehicle") lines(ks,veh.bag,type="l",lty=1) lines(ks,veh.bun,type="l",lty=2) points(ks,veh.bag,pch=19) points(ks,veh.bun,pch=19) legend("topright",lty=c(1,2),legend = c("Bagging", "Bundling"))