我正在尝试使用仅包含一种类型的训练数据集对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。
答案 0 :(得分:0)
我正在研究类似的问题。在阅读e1071作者在CRAN时所写的小插图时,我相信根据定义,SVM将绘制一个超平面,将其分成2类。换句话说,第三项最有可能是异常值。 SVM将始终定义至少一个异常值。
答案 1 :(得分:0)
我不确定传统的监督学习技术(例如SVM)是否适合培训只有1个班级的数据。数据中没有任何内容可告知模型如何区分A类和B类。
我认为,对您的一类训练数据,您能做的最好的事情就是从数据中学习概率密度/质量函数,然后找出新实例在学习到的概率密度下的可能性。有关更多信息,请参见关于一类分类的wikipedia article。