Я запускаю K-NN в R и продолжаю получать следующую ошибку при попытке запустить For l oop для разных значений 'k':
Ошибка в Summary.factor ( c (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,: 'sum' не имеет значения для факторов.
Моя переменная 'Class' в этот код (class_pred_valid $ Class) представляет собой фактор с двумя уровнями «используется» и «не используется». Может ли это быть причиной того, что он выдает ошибку? Если да, как мне решить эту проблему. Я потратил два дня на попытки чтобы решить эту проблему, но не смог. Спасибо за любую помощь.
test.pred<-knn(class_pred_train[,-1], class_pred_test[,-1], class_pred_train[,1], k=25)
table(class_pred_test[,1],test.pred)
CrossTable(x=class_pred_test[,1] ,y=test.pred,prop.chisq = FALSE) # create a X-table
corr.class.rate<-numeric(25)
for(k in 1:25)
{
pred.class<-knn(class_pred_train[,-1], class_pred_valid[,-1], class_pred_train[,1], k=k)
corr.class.rate[k]<-sum((pred.class=class_pred_valid$Class))/length(pred.class)
}
corr.class.rate
plot(c(1:25),corr.class.rate,type="l",
main="Correct Classification Rates for the Test Data for a range of k",
xlab="k",ylab="Correct Classification Rate",cex.main=0.7)
which.max(corr.class.rate)
pred<-knn(class_pred_train[,-1], class_pred_test[,-1], class_pred_train[,1], k=1)
sum((pred==class_pred_train$Class))/length(pred)