【问题标题】:How do I plot a classification graph of a SVM in R如何在 R 中绘制 SVM 的分类图
【发布时间】:2010-11-11 15:41:47
【问题描述】:

我在 R 中有一个 SVM,现在我想绘制这台机器的分类空间。我在互联网上找到了一些例子,但我似乎无法理解它们。

我的R脚本如下:

library(e1071)
day_of_week <- c(0,1,2,3,4,5,6)
holiday <- factor( c(T, F, F, F, F, F, T) )
model <- svm(day_of_week, holiday)
plot(model, day_of_week, holiday)

我无法让 plot 命令工作。我想要这样的图表http://bm2.genes.nig.ac.jp/RGM2/R_current/library/e1071/man/images/plot.svm_001.png

【问题讨论】:

    标签: r graph machine-learning svm


    【解决方案1】:

    首先,plot.svm 函数假设数据在两个维度上变化。您在示例中使用的数据只是一维的,因此必须将决策边界绘制在一条线上,这是不受支持的。其次,该函数似乎需要一个数据框作为输入,而您正在使用向量。

    这应该可以...

    library(e1071)
    
    day = c(0,1,2,3,4,5,6)
    weather = c(1,0,0,0,0,0,0)
    happy = factor(c(T,F,F,F,F,F,F))
    
    d = data.frame(day=day, weather=weather, happy=happy)
    model = svm(happy ~ day + weather, data = d)
    plot(model, d)
    

    【讨论】:

    • 谢谢,看来我需要熟悉与公式相关的 ~ 运算符。我假设给定一个 svm 对象,它可以在没有进一步方向的情况下渲染它的分类空间。
    • 有人能告诉我需要安装哪个软件包才能在 R 中使用 svm 吗?
    • 包是e1071。我在上面的代码中添加了加载包的命令
    【解决方案2】:

    或者,您可以使用kernlab 包:

    library(kernlab)
    
    model.ksvm = ksvm(happy ~ day + weather, data = d, type="C-svc")
    plot(model.ksvm, data=d)
    

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2015-01-09
      • 2011-01-20
      • 1970-01-01
      • 2016-07-20
      • 2015-12-30
      • 2012-10-13
      • 2016-04-06
      • 2019-03-28
      相关资源
      最近更新 更多