Я сравниваю производительность нескольких моделей SVM в matlab, используя функцию fitcsvm
, и я хочу дважды проверить, что я использую правильный синтаксис для жестких мягких amragins и ядра: синтаксис жесткого поля должен быть следующим, в котором гиперпараметр жесткой маржинальной стоимости (boxConstraint) должен быть бесконечным
%Hard Margin
SVMModel = fitcsvm(x_train,y_train,'BoxConstraint',Inf);
, в то время как мягкий маркер, boxConstraint (который является единственным гиперпараметром, необходимым для мягкого маржа), должен быть настроен и получить подходящее значениеНапример,
%soft Margin
SVMModel = fitcsvm(x_train,y_train,'BoxConstraint', 7);
или оставьте его по умолчанию (который имеет ограничение box как 1)
SVMModel = fitcsvm(x_train,y_train);
и для модели ядра, скажем, RBF, оба boxconstrains и KernelScale (гамма)должны быть настроены и использованы
SVMModel = fitcsvm(x_train,y_train, KernelFunction, 'RBF',...
'BoxConstraint', 7,'KernelScale', '0.3');
при условии, что все гиперпараметры настроены, считается ли предыдущий синтаксис правильным, чтобы иметь жесткие, мягкие и ядерные модели в Matlab?
Кроме того, в случае перекрестной проверки модели, как получить наилучшие гиперпараметры при перекрестной проверке модели SVM?или выбор шага гиперпараметра должен быть перед перекрестной проверкой модели?