library(caret)
library(class)
data(iris)
set.seed(42)
index <- createDataPartition(iris$Species, p = 0.7, list = FALSE)
train <- iris[index, ]
test <- iris[-index, ]
prop <- sum(test$Species == "setosa") / nrow(test)
print(paste("Setosa Proportion:", prop))
accuracies <- numeric(20)
for (k in 1:20) {
preds <- knn(train[,1:4], test[,1:4], train$Species, k = k)
accuracies[k] <- mean(preds == test$Species)
}
plot(1:20, accuracies, type = "b", main = "KNN Accuracy")
print(paste("Best K is:", which.max(accuracies)))
