Hi, I was trying to get the optimal 'k' for the knn. To do this I was using the following function : knn.cvk <- function(datmat, cl, k = 2:9) { datmatT <- (datmat) cv.err <- cl.pred <- c() for (i in k) { newpre <- as.vector(knn.cv(datmatT, cl, k = i)) cl.pred <- cbind(cl.pred, newpre) cv.err <- c(cv.err, sum(cl != newpre)) } k0 <- k[which.min(cv.err)] print(k0) return(k0) } However, the knn.cv function does a 'leave one out' cross validation. I checked the documentation to see if I could change this, but it appears that I cannot. Since I have large datasets, I would like to do 10 fold cross validation, instead of the 'leave one out'. Is there some other function that I can use that will give me a 10 fold cross validation for KNN ? many thanks. __________________________________________________ [[alternative HTML version deleted]]
You might want to check out the function tune.knn() in the e1071 package. Andy _____ From: r-help-bounces at stat.math.ethz.ch on behalf of Tim Smith Sent: Tue 6/6/2006 8:29 PM To: r-help at stat.math.ethz.ch Subject: [R] knn - 10 fold cross validation [Broadcast] Hi, I was trying to get the optimal 'k' for the knn. To do this I was using the following function : knn.cvk <- function(datmat, cl, k = 2:9) { datmatT <- (datmat) cv.err <- cl.pred <- c() for (i in k) { newpre <- as.vector(knn.cv(datmatT, cl, k = i)) cl.pred <- cbind(cl.pred, newpre) cv.err <- c(cv.err, sum(cl != newpre)) } k0 <- k[which.min(cv.err)] print(k0) return(k0) } However, the knn.cv function does a 'leave one out' cross validation. I checked the documentation to see if I could change this, but it appears that I cannot. Since I have large datasets, I would like to do 10 fold cross validation, instead of the 'leave one out'. Is there some other function that I can use that will give me a 10 fold cross validation for KNN ? many thanks. __________________________________________________ [[alternative HTML version deleted]] ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help <https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html <http://www.R-project.org/posting-guide.html>