2015-01-25 1 views
1

Получение вышеупомянутой ошибки с использованием следующего кода:«Ошибка в knn (train = trainset, test = testset, cl, k = 1, l = 0, prob = FALSE,:« train »и« class »имеют разную длину

install.packages("class") 
library("class") 

mydata <- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep=";", header=TRUE); 

index <- 1:nrow(mydata) 
testindex <- sample(index, trunc(length(index)/6)) 
trainset <-mydata[testindex,] 
testset <- mydata[-testindex,] 


cl <- factor(c(rep("quality",3),rep("residual.sugar",3))) 
knn(train = trainset, test = testset, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE) 

Пожалуйста посоветуйте. вы можете изменить так, как я настроить «сл». честно понятия не имею, что я делаю с этим. Я стремлюсь классифицировать «качество» на основе «residual.sugar»

ответ

1

Если вам необходимо классифицировать quality на основе residual.sugar, тогда quality - ваш аргумент cl. Это также указано в документации:

сл: коэффициент истинных классификаций обучающего множества

Итак, для того, чтобы запустить свой knn модель вам нужно сделать:

library("class") 

mydata <- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep=";", header=TRUE); 

index <- 1:nrow(mydata) 
testindex <- sample(index, trunc(length(index)/6)) 
trainset <-mydata[testindex,] 
testset <- mydata[-testindex,] 

knn(train = trainset['residual.sugar'], #you only need residual.sugar you said so just use that 
    test=testset['residual.sugar'],  #again test is the residual.sugar 
    cl=as.factor(trainset[['quality']]) , #your cl argument is quality 
    k=1, l=0, prob=F, use.all=T) 

И не определяют cl ранее вообще ,

Смежные вопросы