关于libsvm分类结果的可视化及分类曲线的可视化-加权SVM相关论文.rar
关于libsvvm分类结果的可视化及分类曲线的可视化 by faruto
论坛里曾有多位朋友询问过,有关libsvvm分类结果的可视化及分类曲线的可视化(可能大家感觉这个放在自己的paper里面会比较拉风,个人感觉可视化这些东西真的很虚幻,看着拉风,实则无用)。整体过程我心中明了,但实在是对可视化这种东西的鄙视,所以一直未将关于libsvm分类结果的可视化及分类曲线的可视化的结果实现,并以插件函数的形式放在自己的faruto -libsvm工具箱里面。
本质其实就是用contour来实现。
今天下午把科学社会主义理论 翘掉了【我还记得代课老师说让大家查看一下科学社会主义理论和空想社会主义的区别。囧!】。在宿舍搞了一下。
原本想法是要搞就搞高级一点的,想把对于任意维的测试数据的任意两维(或任意三维)进行可视化,并给出分类超曲面,但最终未果,无法实现。【具体原因我就不说了,深入想过这个的应该会明的。】
【搞的我从下午一直搞到 晚上六点,晚饭都没吃,就直接去上的 《概率论的数学基础》课。囧!】你别看代码就几行。但里面的想法挺巧妙的。。
所以,我在这里要说的是,下面的函数插件 svmplot.m 只对两分类,且属性数据是两维的,给出的分类结果的可视化及分类曲线的可视化才是有意义和准确的。对于不是两分类或属性数据不是两维的,我这个也可以给出个图,但那个的没有实际意义!切记!!切记!!
{近期还想弄的就是专门对于 un-balanced data的处理的函数插件。!}
测试图:
1.jpg
代码:要的直接拿去【拿去在paper里面拉风吧!】。放在libsvm -faruto版本里面就能直接用。function svmplot
% svmplot by faruto
% 2009.12.03
% Email:patrick.lee@foxmail.com QQ:516667408
if nargin == 3
demension1 = 1;
demension2 = 2;
end
%%
minX = min);
maxX = max);
minY = min);
maxY = max);
gridX = ./ 100;
gridY = ./ 100;
minX = minX - 10 * gridX;
maxX = maxX 10 * gridX;
minY = minY - 10 * gridY;
maxY = maxY 10 * gridY;
[bigX, bigY] = meshgrid;
%%
model.Parameters = 3;
ntest=size * size;
test_dataset=[reshape, reshape];
test_label = zeros, 1);
[Z, acc] = svmpredict;
bigZ = reshape, size);
%%
clf;
hold on;
grid on;
ispos = );
pos = find;
neg = find;
h1 = plot, dataset, 'r ');
h2 = plot, dataset, 'g*');
h3 = plot,model.SVs,'o' );
legend;
[C,h] = contour;
clabel;
xlabel;
ylabel;
title;
复制代码代码的有一个小trick是参照了svmtoy的思路。
原本我也有思路,但这个更简便。
2021-07-10 20:04:39
809KB
matlab
1