【问题标题】:Classification with One Class SVM in RR中的一类SVM分类
【发布时间】:2018-02-08 08:09:10
【问题描述】:

我正在尝试使用仅包含一种类的训练数据集编写用于分类的 SVM。所以,我想预测某些数据是否与我的数据集不同。

我使用与训练相同的数据集进行预测,但不幸的是,SVM 的预测效果不佳。

library(e1071)

# Data set
high  <- c(10,5,14,12,20)
temp  <- c(12,15,20,15,9)
x <- cbind(high,temp)

# Create SVM
model <- svm(x,y=NULL,type='one-classification',kernel='linear')

# Predict training data-set
pred <- predict(model,x)
pred

它返回: 真真假假真

对所有这些都应该是 TRUE。

【问题讨论】:

  • 可能重复:stackoverflow.com/questions/27375517/…。但实际上这个问题更多的是关于建模而不是编码。您可能应该在Cross ValidatedData Science 询问。
  • 谢谢,但是这个使用的是结构化数据,我不知道“iris”的结构。我已经在 python 中完成了一个 SVM,并且它工作得很好,但现在我必须使用 R。
  • 我使用了“可能重复”,它与我的错误相同。支持向量机没有正确预测训练数据集。当我使用与训练中使用的相同数据时,函数 predict 返回 50% 的 TRUE 和 50% 的 FALSE。

标签: r statistics svm


【解决方案1】:

我正在解决类似的问题。在阅读 e1071 作者在 CRAN 的小插图时,我相信根据定义,SVM 将绘制一个超平面,将其分为 2 个类。换句话说,第 3 项最有可能是异常值。 SVM 将始终定义至少一个异常值。

【讨论】:

    【解决方案2】:

    我不确定传统的监督学习技术(例如 SVM)是否适合训练只有 1 个类的数据。数据中没有任何内容可以告知模型如何区分 A 类和 B 类。

    我认为您可以对 1 类训练数据做的最好的事情是从数据中学习概率密度/质量函数,然后找出新实例在学习的概率密度下的可能性有多大。有关更多信息,请参阅wikipedia article on one-class 分类。

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 1970-01-01
      • 2015-02-07
      • 2016-08-13
      • 2019-04-02
      • 2016-07-15
      • 2021-06-02
      • 2016-03-16
      • 2014-01-09
      相关资源
      最近更新 更多