【问题标题】:Plot SVM trained by caret绘制由插入符号训练的 SVM
【发布时间】:2020-10-01 10:45:16
【问题描述】:

我正在尝试获得与本文Plot SVM linear model trained by caret package in R中获得的情节相似的情节

如果我在控制台上运行此代码,它可以工作,但如果我用我的数据执行它,它就不起作用,所以我想知道这是否是我的数据的问题。这是对我不起作用的示例:

library(wakefield)
X <- r_sample_factor(c("low", "high"), n=232)
MAMAMA<-r_sample_factor(c("C/C", "C/G", "G/G"), n=232)
MEMEME<-r_sample_factor(c("C/C", "C/T", "T/T"), n=232)
MIMIMI<-r_sample_factor(c("A/A", "A/T", "T/T"), n=232)

datos<-data.frame(X,MAMAMA,MEMEME, MIMIMI)

sv<-caret::train(X~., datos, method="svmRadial", trControl= trainControl(method='cv', number=5))

kernlab::plot(sv$finalModel)

【问题讨论】:

  • 这是最小的可重现示例。我创建了一个数据集、一个模型,但我不知道如何继续绘制。
  • 我们缺少-r_sample_factor。这个函数哪里来的?

标签: r plot svm r-caret


【解决方案1】:

情节在链接页面中有效但在您的情况下无效的原因有两个:

(1) 在链接页面中,X 只有两个预测变量,因此可以在一个二维平面。在你的情况下,你有三个分类预测变量,如果你对它们进行虚拟化,会有更多的预测变量,我也在网上搜索过,但迄今为止我还没有找到任何解决方案 kernlab::plot 处理超过 2 个预测变量。

(2) 在链接页面中,代码使用 linear 内核,因此可以获得超平面的显式表达式,但在您的情况下,您使用的是映射预测变量的 radial 内核进入一个无限的特征空间,因此超平面不能在有限维图中明确表达。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 2016-03-09
    • 2020-09-01
    • 2018-06-24
    • 1970-01-01
    • 2015-05-04
    • 2015-07-25
    • 2017-10-19
    相关资源
    最近更新 更多