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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Statistics and Machine Learning Toolbox finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 28 Jan. 2017

Bearbeitet:

am 20 Okt. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by