Plot Support Vectors, Margin and decision boundary using LIBSVM MATLAB interface

I am using Matlab-Libsvm Interface for binary classification using SVM. I have multi dimensional data. I need to plot decision boundary and margin along with support vectors.
Below is the code I used for this:
model = svmtrain(Y, X, sprintf('-c %f -w1 1 -w-1 5 -g %f', best_C, best_gamma));
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
figure
plot(sv(:,1:14),'ko', 'MarkerSize', 10);
hold on
% plot decision boundary
plot_x = linspace(min(X(:,1)), max(X(:,1)), 30);
plot_y = (-1/w(2))*(w(1)*plot_x + b);
plot_z = sign(w(1)*plot_x + b)/norm(w);
plot(plot_x, plot_y, 'k-', 'LineWidth', 1)
hold on
plot(plot_x, plot_z, 'kx', 'LineWidth', 1);
hold off
hold off
But I am unable to plot decision boundary and margin using this code. Also, support vectors are plotted inappropriately.
Please let me know where I am wrong.

1 个评论

Hi Astha I am facing the same problem with plotting of the decision boundary. Were you able to resolve this issue?
regards

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

标签

编辑:

2017-10-20

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by