【发布时间】:2015-04-17 20:09:24
【问题描述】:
我正在使用 svmlib 对二维不可分离数据进行线性分类。我能够训练 svm 并使用 svmlib 获得 w 和 b。使用这些信息,我可以绘制决策边界以及支持向量,但我不确定如何使用 svmlib 给我的信息绘制边距。
下面是我的代码:
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)
【问题讨论】:
-
边距是决策边界和支持向量之间的距离。你想怎么画?
标签: matlab machine-learning svm libsvm