因此,我正在处理虹膜数据集,无论我在knn算法中的k值是多少,都可以获得100%的准确度。我在哪里弄错了? 这是我使用内置虹膜数据框的代码。
library(caret)
set.seed(52)
irissplit <- createDataPartition(iris$Species, p=.8, list=FALSE, times=1)
train <- iris[irissplit, ]
test <- iris[-irissplit, ]
library(class)
model_knn <- list()
accuracy_knn <- numeric()
for (i in 1:10) {
model_knn[[i]] <- knn(train[,-5], test[,-5], train$Species, k=i, prob=TRUE)
accuracy_knn[i] <- sum(model_knn[[i]]==test$Species)/length(test$Species)*100
}
accuracy_knn