классификация kknn: как определить значение kmax?

#r #classification #knn

#r #классификация #knn

Вопрос:

Как я могу определить значение kmax для использования? Когда я его удаляю, R выводит сообщение об ошибке, а когда я его добавляю, R выводит другое сообщение об ошибке. Я продолжаю ходить вокруг да около с этим, но ничего не добиваюсь. Эти сообщения сбивают с толку. Я искал похожие вопросы в stackoverflow, но не увидел ни одного, отсюда и этот вопрос. Вы знаете, почему kmax = 7 неверно? Как я узнаю, каково правильное значение kmax? Спасибо за любую помощь, которую вы можете предоставить.

 #works
output1 <- train.kknn( as.factor(myParam)~., data <- trainingData)
output1

#works
output1 <- train.kknn( as.factor(myParam)~., data <- trainingData, distance <- 2)
output1

# does not work
#error message: Error in train.kknn(as.factor(myParam) ~ ., data <- trainingData, kmax <- 7,  : 
  NA/NaN/Inf in foreign function call (arg 9)
In addition: Warning message:
In train.kknn(as.factor(myParam) ~ ., data <- trainingData, kmax <- 7,  :  
NAs introduced by coercion

output1 <- train.kknn( as.factor(myParam)~.,  data <- trainingData, kmax <- 7, distance <- 2,kernel <- "rectangular")
output1


# does not work, 
# error message: Error in kmax   2L : non-numeric argument to binary operator

output1 <- train.kknn( as.factor(myParam)~., data <- trainingData,  distance <- 2, kernel <- "rectangular")
output1
  

Мне нужно, чтобы это работало:

 output1 <- train.kknn( as.factor(myParam)~.,  data <- trainingData,
                     kmax <- ???,    <-  whatever this value should be
                     distance <- 2, kernel <- "rectangular")
output1
  

Комментарии:

1. KNN нужны все числовые переменные (не факторные, фиктивные, индикаторные и т.д.). Как минимум, это то, на что указывает ваше последнее сообщение.

2. вы правы, я предполагаю, что именно поэтому происходит принуждение. Спасибо, что помогли мне увидеть это.

3. Как мне отметить ваш комментарий как решение?

Ответ №1:

ответом lmo был ответ Спасибо, lmo, за то, что помогли мне увидеть свет.