我正在尝试在 R 中做一类 SVM。我一直在尝试使用 e1071/ksvm kernlab 包。但我不确定我是否做得正确。
R中的一类SVM是否有任何工作示例?
还,
- 我给出了一个很大的预测变量矩阵作为 X。由于它应该是一类,是否假设我给出的所有训练数据都形成了“正”类?如果是这样,我们不必给标签“Y”吗?
- 作为输出给出的预测标签是真/假。所以我假设,True 是“正”类。
编辑:附加示例代码。在这里,我对 60% 的“TRUE”类进行了抽样,并在完整的数据集上进行了测试。
library(e1071)
library(caret)
data(iris)
iris$SpeciesClass[iris$Species=="versicolor"] <- "TRUE"
iris$SpeciesClass[iris$Species!="versicolor"] <- "FALSE"
trainPositive<-subset(iris,SpeciesClass=="TRUE")
inTrain<-createDataPartition(1:nrow(trainPositive),p=0.6,list=FALSE)
trainpredictors<-iris[inTrain,1:4]
testpredictors<-iris[,1:4]
testLabels<-iris[,6]
svm.model<-svm(trainpredictors,y=NULL,
type='one-classification',
nu=0.5,
scale=TRUE,
kernel="radial")
svm.pred<-predict(svm.model,testpredictors)
confusionMatrixTable<-table(Predicted=svm.pred,Reference=testLabels)
confusionMatrix(confusionMatrixTable,positive='TRUE')