поезд и класс имеют разную длину - PullRequest
0 голосов
/ 07 февраля 2020

NN модель для прогнозирования новых данных, но ошибка говорит: «Поезд» и «класс» имеют разную длину »

Может кто-то повторить и решить эту ошибку?

weather <- c(1, 1, 1, 0, 0, 0)
temperature <- c(1, 0, 0, 1, 0, 0)
golf <- c(1, 0, 1, 0, 1, 0)
df <- data.frame(weather, temperature, golf)
df_new <- data.frame(weather = c(1,1,1,1,1,1,1,1,1), temp = c(0,0,0,0,0,0,0,0,0), sunnday= c(1,1,1,0,1,1,1,0,0))
pred_knn <- knn(train=df[, c(1,2)], test=df_new, cl=df$golf, k=1)

Большое спасибо!

1 Ответ

1 голос
/ 07 февраля 2020

Функция knn в R требует, чтобы обучающие данные содержали только независимые переменные, поскольку зависимая переменная вызывается отдельно в параметре "cl". Изменение строки ниже исправит эту конкретную ошибку.

pred_knn <- knn(train=df[,c(1,2)], test=df_new, cl=df$golf, k=1)

Однако обратите внимание, что выполнение вышеуказанной строки вызовет еще одну ошибку. Поскольку knn вычисляет евклидово расстояние между наблюдениями, для всех независимых переменных требуется число c. Эти страницы содержат полезную информацию. Я бы рекомендовал использовать другой классификатор для этого конкретного набора данных.

https://towardsdatascience.com/k-nearest-neighbors-algorithm-with-examples-in-r-simply-explained-knn-1f2c88da405c https://discuss.analyticsvidhya.com/t/how-to-resolve-error-na-nan-inf-in-foreign-function-call-arg-6-in-knn/7280/4

Надеюсь, это поможет.

...