# przyklad 1.3. library("kknn") l<-15 p<-15 n<-1000 bu<-numeric(length=p) bt<-bu yy<-numeric(length=n) w<-0 # generowanie danych - zbior uczacy xd<-matrix(nrow=n,ncol=l) yd<-matrix(nrow=n,ncol=1) for (i in 1:l) xd[,i]<-runif(n,min=-1,max=1) #jednostajny rozklad for (j in 1:n) { w<-sum(xd[j,]^2) yd[j]<-exp(-5*w) # funkcja regresji - prawdziwa } colnames(xd)<-colnames(xd, do.NULL = FALSE, prefix = "x") colnames(yd)<-"y" xd<-cbind(yd,xd) ducz<-as.data.frame(xd) w<-0 # generowanie danych - zbior testowy xd<-matrix(nrow=n,ncol=l) yd<-matrix(nrow=n,ncol=1) for (i in 1:l) xd[,i]<-runif(n,min=-1,max=1) #jednostajny rozklad for (j in 1:n) { w<-sum(xd[j,]^2) yd[j]<-exp(-5*w) # funkcja regresji - prawdziwa } colnames(xd)<-colnames(xd, do.NULL = FALSE, prefix = "x") colnames(yd)<-"y" xd<-cbind(yd,xd) dtest<-as.data.frame(xd) for (s in 2:(l+1)) { # modele i predykcja kk<-kknn(formula=y~.,ducz,dtest,k=s) yy<-fitted(kk) bt[(s-1)]<-mean((dtest$y-yy)^2) kk<-kknn(formula=y~.,ducz,ducz,k=s) yy<-fitted(kk) bu[(s-1)]<-mean((ducz$y-yy)^2) } # dla k=1:15 plot(1:p,bt,xaxt="n",ylim=c(0,1.2e-08), xlab="Liczba najbliższych sąsiadów",ylab="MSE",type="n") axis(1,labels=rev(1:p),at=1:p) #axis(2,labels=round(bu*(100^5),digits=3),at=NULL) lines(1:p,rev(bt),type="l",col='blue',pch=2) lines(1:p,rev(bu),type="l",col='red',pch=3) points(rev(bt),cex=.7,col='blue',pch=2) points(rev(bu),cex=.7,col='red',pch=3) legend("topleft",lty=1,col=c("blue","red"),pch=c(2,3),legend = c("zbiór testowy","zbiór uczący"))