我试图绘制我的svm模型.
library(foreign) library(e1071) x <- read.arff("contact-lenses.arff") #alt: x <- read.arff("http://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/contact-lenses.arff") model <- svm(`contact-lenses` ~ . , data = x, type = "C-classification", kernel = "linear")
隐形眼镜arff是weka中的内置数据文件.
但是,现在我遇到了一个错误,试图绘制模型.
plot(model, x) Error in plot.svm(model, x) : missing formula.
MrFlick.. 19
问题是在您的模型中,您有多个协变量.plot()
如果您的data=
参数只有三列(其中一列是响应),则只会自动运行.例如,在?plot.svm
帮助页面中,您可以致电
data(cats, package = "MASS") m1 <- svm(Sex~., data = cats) plot(m1, cats)
因此,由于您只能在绘图上显示两个维度,因此您需要指定要用于的内容x
以及y
何时可以选择多个维度
cplus<-cats cplus$Oth<-rnorm(nrow(cplus)) m2 <- svm(Sex~., data = cplus) plot(m2, cplus) #error plot(m2, cplus, Bwt~Hwt) #Ok plot(m2, cplus, Hwt~Oth) #Ok
这就是为什么你得到"Missing Formula"错误的原因.
还有另一个问题.该plot.svm
只绘制沿连续变量x
和y
轴.隐形眼镜data.frame只有分类变量.plot.svm
据我所知,该功能根本不支持这一点.您必须决定如何在自己的可视化中汇总该信息.