首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘图错误,使用svm时缺少公式

绘图错误,使用svm时缺少公式
EN

Stack Overflow用户
提问于 2014-09-08 11:16:57
回答 1查看 18.2K关注 0票数 11

我正在尝试绘制我的svm模型。

代码语言:javascript
复制
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中的内置数据文件。

但是,现在我在尝试绘制模型时遇到错误。

代码语言:javascript
复制
 plot(model, x)
Error in plot.svm(model, x) : missing formula.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-08 11:42:50

问题是,在你的模型中,你有多个协变量。只有当data=参数正好有三列(其中一列是响应)时,plot()才会自动运行。例如,在?plot.svm帮助页中,可以调用

代码语言:javascript
复制
data(cats, package = "MASS")
m1 <- svm(Sex~., data = cats)
plot(m1, cats)

因此,由于一张图上只能显示两个尺寸,因此当有多个尺寸可供选择时,需要指定要用于xy的尺寸

代码语言:javascript
复制
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

这就是为什么你会得到“缺少公式”的错误。

还有另一个问题。plot.svm将仅沿xy轴绘制连续变量。隐形眼镜data.frame只有分类变量。据我所知,plot.svm函数根本不支持这一点。您必须决定如何在您自己的可视化中总结这些信息。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25716998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档