# przykład 6.8 options(OutDec=",") library("tree") library("ElemStatLearn") library("cluster") library("mlbench") library("rpart") mvote0<-function(x) { t<-table(x) ll<-length(t) tm<-as.matrix(t) m<-rownames(tm)[which.max(t)] if (sum(t==max(t))>1) { c<-which(t==max(t)) m<-rownames(tm)[sample(c,1)] } return(m) } ########################################### zip.ucz<-zip.train zip.test<-zip.test lzm<-ncol(zip.ucz)-1 lobs<-nrow(zip.ucz) lmod<-10 ks<-seq(1,lzm,by=1) iter<-1 blad.zip.c<-matrix(nrow=length(ks),ncol=iter) y.test<-zip.test$klasa klasa<-zip.ucz$klasa y<-as.data.frame(klasa) zip.ucz<-zip.ucz[,-1] m<-lzm for (j in 1:iter) { print(j) for (i in seq(along=ks)) { yklas<-NULL lz<-ks[i] # liczba zmiennych print(lz) for (k in 1:lmod) { zmienne <- sample(1:m, size = lz, replace = FALSE) zb.ucz<-as.data.frame(zip.ucz[,zmienne]) colnames(zb.ucz)<-colnames(zip.ucz)[zmienne] zb.ucz<-cbind(y,zb.ucz) zip.tr<-rpart(klasa~.,zb.ucz) Z.test<-predict(zip.tr,zip.test,type ="class") yklas<-cbind(yklas,as.matrix(Z.test)) } mm<-nrow(yklas) ypred<-numeric(length=mm) for (ii in 1:mm) ypred[ii]<-mvote0(yklas[ii,]) blad.zip.c[i,j]<-1-sum(y.test==ypred)/length(ypred) } } # rys. 6.7 plot(ks,rsm.blad.zip,type="n",xlab="Liczba zmiennych",ylab="Błąd predykcji",main="Zbiór Zip") lines(ks,rsm.blad.zip,type="l",lty=1) #points(ks,rsm.blad.zip,pch=19) # co 5-ty pp<-seq(1,256,by=5) plot(pp,rsm.blad.zip[pp],type="n",xlab="Liczba zmiennych",ylab="Błąd predykcji",main="Zbiór Zip") lines(pp,rsm.blad.zip[pp],,type="l",lty=1) points(pp,rsm.blad.zip[pp],pch=19)