ESL2章
figure 2.4について
library(MASS) blue_ave<-c(1,0) red_ave<-c(0,1) blue<-mvrnorm(100,blue_ave,diag(2)) red<-mvrnorm(100,red_ave,diag(2)) cl<-factor(c(rep("blue",100),rep("red",100))) train<-rbind(blue,red) test<-rbind(mvrnorm(5000,blue_ave,diag(2)/5),mvrnorm(5000,red_ave,diag(2))/5) test_answer<-c(rep("blue",5000),rep("red",5000)) test_error<-c() for (i in 1:200){ classres <- knn(train,test,cl,k=i,prob=T) test_error<-c(test_error,length(which(classres==test_answer))) } plot(1-test_error/10000) train_answer<-c(rep("blue",100),rep("red",100)) train_error<-c() for (i in 1:200){ classres <- knn(train,train,cl,k=i,prob=T) train_error<-c(train_error,length(which(classres==train_answer))) } plot(1-train_error/200) plot(1-test_error/10000,type="l",ylim=c(0,0.5),xlab="",ylab="") par(new=T) plot(1-train_error/200,col="red",type="l",ylim=c(0,0.5),xlab="赤=training 黒=test",ylab="間違えた割合") plot(blue,col="blue",xlim=c(-3,3),ylim=c(-3,3),xlab="",ylab="") par(new=T) plot(red,col="red",xlim=c(-3,3),ylim=c(-3,3),xlab="",ylab="")