pca_model <- prcomp(training, center = TRUE, scale = TRUE)
eigenvectors = pca_model$rotation
eigenvalues = pca_model$sdev^2
acc = c()
for (i in 1:9){
training_pc <- as.data.frame(predict(pca_model, training)[, 1:i])
training_pc[, i+1:9] <- 0
testing_pc <- as.data.frame(predict(pca_model, testing)[, 1:i])
testing_pc[, i+1:9] <- 0
knn_model <- knn(train = training_pc, test = testing_pc, cl = trainingType, k = 3, prob = TRUE)
acc[i] = Accuracy(y_pred = knn_model, y_true = testingType)
}
Αρχικά θα μπορούσε να λείπουν οι εντολές
KAI
training_pc[, i+1:9] <- 0
. Πάλι θα ήταν ίδιων διαστάσεων όταν κάνεις τo knn και δεν θα κράσαρε.
Μετά αφού θες να τα βάλεις, τουλάχιστον βάλε και μια παρένθεση
testing_pc[, (i+1):9] <- 0
για να είσαι σωστός :Ρ. Γιατί αλλιώς σου βγαίνουν παραπάνω διαστάσεις. (Μετά προκύπτει και ένα θέμα για όταν i=9, οπότε βάζεις και μια συνθήκη να κάνει αυτήν την πράξη αν i<9)
Βασικά γενικά βγάλτα γιατί δεν χρειάζονται και μη μπλέκεις.
Τώρα να πω την γνώμη μου στον κασπα γιατί χρειάζεται. Γιατί δουλεύεις knn και δεν μπορώ να φανταστώ εγώ σαν lodi να ψάχνω γύρω από το σπίτι μου γείτονες που είναι σε άλλη διάσταση. :Ρ