R 库(e1071),调谐变量长度不同
我一直在尝试利用R 库(e1071),调谐变量长度不同,r,svm,R,Svm,我一直在尝试利用iris数据集,尽管我已经从e1071库中获得了svm,但当我尝试进行调优工作时,我不断得到一个“可变长度差异”错误: 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
iris
数据集,尽管我已经从e1071
库中获得了svm
,但当我尝试进行调优
工作时,我不断得到一个“可变长度差异”错误:
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)))
库(e1071)
数据我可以使用它:
tune(svm, iris.Species ~ ., data = svm_tr[1:3],
kernel = "linear", ranges = list(cost=c(.001,.01,.1,1,10,100)))
如果是公式接口,则不应使用$
引用变量,因为所有必需的变量都来自data=
参数指定的对象。请注意,我还制作了data=svm\u tr[1:3]
而不是1:2
,因此包含了iris.Species
列 你的第二行创建了变量data
,但是你的第三行使用了datasvm
它们是一样的吗?刚刚修复-是的。我可以让它与tune一起工作(svm,iris.Species~,data=svm\u tr[1:3],kernel=“linear”,ranges=list(cost=c(.001,.01,.1,10100)))
-如果是公式接口,则不应使用$
引用变量。请注意,我还制作了data=svm\u tr[1:3]
而不是1:2
,这样就可以找到iris.Species
列。是的-这很有效!是的,我只有它1:2
b/c我在另一个答案上读到它不能与直接的数据帧一起工作-问题可能是公式界面中的$
。此外,我删除了[1:3]
,因为数据帧现在可以直接工作。谢谢你,最近的邮件!就是这样!非常感谢。