giuseppeegentile / AppStatExams

1 stars 0 forks source link

AER by CV for KNN classifier #10

Closed giuseppeegentile closed 3 months ago

giuseppeegentile commented 3 months ago

Secondo voi è corretto questo script per stimare l'AER tramite CV per il KNN?

errorknn <- 0
for(i in 1:nrow(data)) {                     
  data.knn <- knn(train = data[-i,1:2], test = data[i,1:2], cl = data[-i,3], k = k)
  if(data.knn != data[i,3])
    errorknn <- errorknn + 1
}
APERknn <- errorknn/nrow(data)
AERcv
LuigiPagani commented 3 months ago

Io ho questo codice per AER con CV KNN

---------------------------------------------------------------------

library(class) #for KNN

n_obs<- dim(df)[1] #n k_range<- 10:30 #range of k to test, estremi inclusi

Aerr<-NULL set.seed(19) #run seed every time! for (k in k_range) { df.knn <- knn.cv(train = df, cl = group, k = k) errorsqCV <- (df.knn != group) Aerr <- c(Aerr,(sum(errorsqCV))/n_obs) #controllare che stiamo parlando di n_obs } min(Aerr) which(Aerr==min(Aerr))

best k

best.index=which.min(Aerr) kbest<-k_range[best.index] best_k

AERkCV

no priors!

AERkCV<-min(Aerr) AERkCV

Best model trained on best k

best <- knn.cv(train = df, cl = group, k = best_k)