Я получаю сообщение об ошибке в коде R, в котором говорится, что «поезд» и «класс» имеют разную длину »? - PullRequest
0 голосов
/ 02 апреля 2020

* quantData - это набор данных, содержащий заданные c столбцы из набора данных cpsData со столбцом 15 в качестве зависимой переменной

* dataTrain - это фрейм данных, и когда я проверяю длину (datatrain), выводим равно 6. И cl = quantData [, 6] - это вектор длиной 32560, и когда я изменяю его на фрейм данных, он имеет длину 1.

quantData=cpsData[,c(1,3,5,11,12,15)]
for(i in 1:(ncol(quantData)-1)){ 
  quantData[,i]=(quantData[,i]-mean(quantData[,i]))/sd(quantData[,i])
}

x=sample(1:nrow(quantData),30000)
dataTrain=quantData[x,]
dataTest=quantData[-x,] 
Pred=knn(dataTrain[,-6], dataTest[,-6], cl=quantData[,6], k=20)

1 Ответ

0 голосов
/ 02 апреля 2020

В последней строке вашего кода третьим параметром для knn должны быть истинные классификации только для вашего учебного набора, а не для всего набора данных. Вы бы хотели dataTrain [, 6], а не QuantData [, 6].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...