我试图从libsvm绘制SVM的超平面。我的数据集有3个功能。所以参考代码here到目前为止,我有以下代码。
% now plot decision area
[xi,yi, zi] = meshgrid([min(d(:,1)):0.01:max(d(:,1))], [min(d(:,2)):0.01:max(d(:,2))],[min(d(:,3)):0.01:max(d(:,3))]);
dd = [xi(:),yi(:), zi(:)];
tic; [predict_label, accuracy, decision_values] = svmpredict(zeros(size(dd,1),1), dd, model);toc
pos = find(predict_label==1);
hold on;
redcolor = [1 0.8 0.8];
bluecolor = [0.8 0.8 1];
h1 = plot3(dd(pos,1),dd(pos,2), dd(pos,3),'s','color',redcolor,'MarkerSize',2,'MarkerEdgeColor',redcolor,'MarkerFaceColor',redcolor);
pos = find(predict_label==0);
hold on;
h2 = plot3(dd(pos,1),dd(pos,2), dd(pos,3),'s','color',bluecolor,'MarkerSize',2,'MarkerEdgeColor',bluecolor,'MarkerFaceColor',bluecolor);
我从中获得的内容如下:
我的问题:
我在这里做错了吗?为什么需要更改代码才能正确查看?
如果有超过3个功能,可视化超平面的推荐方法是什么?