使用交叉验证在 R 中带有插入符号的一类 SVM

机器算法验证 r 支持向量机 交叉验证 插入符号
2022-04-08 06:40:55

我正在使用一类 SVM 来训练和预测异常。我想以一种简单的方式使用交叉验证来训练模型,就像我在 R 中使用带有插入符号的多类 SVM 所做的那样。

现在,我训练模型:

svm.model<-svm(training,y=NULL,
               type='one-classification',
               nu=0.01,
               gamma=0.002,
               scale=TRUE,
               kernel="radial")

但是,我想使用插入符号,应用交叉验证并执行以下操作:

train_control <- trainControl(method="repeatedcv", number=10, repeats=3)

svm.model <- train(classe~., data=training, method="svmRadial", trControl=train_control)

但是,我不想训练多类 SVM,而是使用一类 SVM。

有没有办法用插入符号在 R 中做到这一点?

1个回答

简单的选择是不使用插入符号,而只使用 E1071 的调谐功能。

svm_model <- tune(svm(training,y=NULL, type='one-classification', nu=0.01, gamma=0.002, scale=TRUE, kernel="radial", tunecontrol = tune.control(nrepeat = 3))

tune 的默认设置是 10 倍 CV。使用 tune.control 您可以调整它以根据需要重复此操作。有关更多选项,请参见 ?tune.control

如果要使用插入符号,则必须构建自己的模型,因为目前没有单一分类模型。但是,如果您按照插入符号页面上的步骤使用您自己的模型,您可以调整第一个示例。

也看看这些例子(例子1例子2