我正在使用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步骤应该在交叉验证模型之前?