K-NN в R: Ошибка в Summary.factor (c (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,: 'sum' не имеет значения для факторов - PullRequest
0 голосов
/ 13 июля 2020

Я запускаю 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)
...