【问题标题】:Error in plot, formula missing when using svm绘图错误,使用 svm 时缺少公式
【发布时间】:2014-11-01 05:51:38
【问题描述】:

我正在尝试绘制我的 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.

【问题讨论】:

    标签: r svm


    【解决方案1】:

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

    data(cats, package = "MASS")
    m1 <- svm(Sex~., data = cats)
    plot(m1, cats)
    

    因此,由于您只能在绘图上显示两个维度,因此当您有多个维度可供选择时,您需要指定要用于 xy 的内容

    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 函数根本不支持这一点。您必须决定如何在自己的可视化中总结这些信息。

    【讨论】:

      猜你喜欢
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2011-01-20
      • 1970-01-01
      相关资源
      最近更新 更多