Я использую svmlib для классификации линейно двумерных неразделимых данных. Я могу обучить svm и получить w и b, используя svmlib. Используя эту информацию, я могу построить границу решения вместе с векторами поддержки, но я не уверен в том, как рисовать поля, используя информацию, которую мне дает svmlib.Границы поля SVM с использованием MATLAB и libsvm
Ниже мой код:
model = svmtrain(Y,X, '-s 0 -t 0 -c 100');
w = model.SVs' * model.sv_coef;
b = -model.rho;
if (model.Label(1) == -1)
w = -w; b = -b;
end
y_hat = sign(w'*X' + b);
sv = full(model.SVs);
% plot support vectors
plot(sv(:,1),sv(:,2),'ko', 'MarkerSize', 10);
% plot decision boundary
plot_x = linspace(min(X(:,1)), max(X(:,1)), 30);
plot_y = (-1/w(2))*(w(1)*plot_x + b);
plot(plot_x, plot_y, 'k-', 'LineWidth', 1)
Маржа - это расстояние между границей решения и векторами поддержки. Как бы вы хотели это сделать? – hbaderts