Я пытаюсь использовать набор данных iris
, и хотя я получил svm
для работы из библиотеки e1071
, я продолжаю получать ошибку «с переменной длиной» при попытке сделать tune
работа:library (e1071), tune Переменная длина отличается
library(e1071)
data <- data.frame(iris$Sepal.Width,iris$Petal.Length,iris$Species)
svm_tr <- data[sample(nrow(datasvm), 100), ] #sample 100 random rows
tuned <- tune(svm, svm_tr$iris.Species~.,
data = svm_tr[1:2],
kernel = "linear",
ranges = list(cost=c(.001,.01,.1,1,10,100)))
Я проверил длину каждого из столбцов в svm_tr[1:2]
и они имеют одинаковую длину. Я знаю, что функция не принимает данные, а может быть, я что-то упускаю?
Ваша вторая строка создает переменную 'data', но ваша третья строка использует' datasvm'. Это то же самое? – G5W
только что отремонтировано - да. – jmb277
Я могу заставить его работать с 'tune (svm, iris.Species ~., Data = svm_tr [1: 3], kernel =" linear ", range = list (cost = c (.001, .01, .1 , 1,10,100))) '- если это интерфейс формулы, вы не должны ссылаться на переменную с помощью' $ '. Обратите внимание, что я также сделал 'data = svm_tr [1: 3]' вместо '1: 2', чтобы найти столбец' iris.Species'. – thelatemail