Matlab中的SVM硬边距和软边距

时间:2019-04-06 00:11:39

标签: matlab classification svm

我正在使用fitcsvm函数比较matlab中几个SVM模型的性能, 我想再次检查我使用的是正确的语法 用于坚硬的软胶和内核: 硬保证金的语法应如下所示,其中硬保证金成本的超参数(boxConstraint)应该是无限的

%Hard Margin
SVMModel = fitcsvm(x_train,y_train,'BoxConstraint',Inf);

例如,在调整软边距的同时,应调整boxConstraint(这是软边界所需的唯一超参数),并为其指定适当的值,例如

 %soft Margin
    SVMModel = fitcsvm(x_train,y_train,'BoxConstraint', 7);

或保留为默认值(框约束为1)

SVMModel = fitcsvm(x_train,y_train);

对于内核模型,例如RBF,应该同时调整和使用boxconstrains和KernelScale(gamma)

    SVMModel = fitcsvm(x_train,y_train, KernelFunction, 'RBF',...
'BoxConstraint', 7,'KernelScale', '0.3');

假设所有超参数均已调整,那么在Matlab中具有硬,软和内核模型的先前语法是否正确?

此外,在对模型进行交叉验证的情况下,如何在对SVM模型进行交叉验证的同时获得最佳超参数?还是选择hyperparamters步骤应该在交叉验证模型之前?

0 个答案:

没有答案