[R] knn - 10 fold cross validation

Liaw, Andy andy_liaw at merck.com
Wed Jun 7 03:52:18 CEST 2006


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>



More information about the R-help mailing list