1
我一直在试图利用iris
数据集,尽管我已经从e1071
库获得svm
的工作,但是当我尝试制作时,我总是收到'可变长度差异'错误tune
工作:库(e1071),调谐可变长度不同
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”,ranges = list(cost = c(.001,.01,.1 ,1,10,100)))' - 如果它是一个公式接口,您不应该使用'$'来引用变量。请注意,我也制作了'data = svm_tr [1:3]'而不是'1:2',这样就找到了'iris.Species'列。 – thelatemail