##recall “knn.cv” from the package “class”
library(class)
##function-find best model of kNN based on v-fold cv
cv.k<-function(data,cl,k){
y<-(data)
knn.pred<-cv.err<-c()
for (i in 1:k){
knn.pred<-cbind(knn.pred,as.vector(knn.cv(y,cl,k=i)))
cv.err<-c(cv.err,sum(knn.pred[,i]!=class)/nrow(y))
}
opt.k<-which.min(cv.err)
print(opt.k)
}
opt.k<-cv.k(x,class,k=50)
opt.k
*****************************************************
##loop-find the best model of kNN method based on v-fold cv
knn.pred<-c()
cv.err<-c()
for (i in 1:50){
knn.pred<-cbind(knn.pred,as.vector(knn.cv(x,class,k=i)))
cv.err<-c(cv.err,sum(knn.pred[,i]!=class)/3364)
}
opt.k<-which.min(cv.err)
print(opt.k)
没有评论:
发表评论