libsvm–下载台湾林老师的版本,现在更新到libsvm3.21。当做一般的工具箱的使用方法就可以了。
1、保存路径,选择在D:\Program Files\MATLAB\R2015a\toolbox\libsvm-3.21。将这个路径以及子文件夹添加到matlab路径中。其实只要windows文件夹下的就可以,为了方便吧,要是自己写的一些扩展的相关库函数捏。
2、libsvm-3.21\matlab\make.m运行,生成的.mexw64剪切进windows文件夹。
3、运行自带有测试数据,为软件包根目录下的heart_scale文件,可以用来测试LIBSVM是否安装成功。这里的heart_scale文件不能用Matlab的load进行读取,需要使用libsvmread读取。
[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
%注,heart_scale用txt打开可以看到格式,这个格式和特征矩阵和标签之间的转换,可以使用同学给的exe工具https://yunpan.cn/cSHvRW8JCTaBX 访问密码 4fa6。转成libsvm的特征格式就可以使用libsvm-3.21\tools中grid.py(网格寻参)、checkdata.py、easy.py、subset.py。grid.py参数寻优,是用来寻找RBF核中的C,gamma参数的。固定gamma,即可用来对线性核寻优。如c从2的-4次到2的0次
grid.py -log2c -4,0,1 -log2g 1,1,1 -t 0 -svmtrain c:\svm-train.exe -gnuplot c:\gnuplot\binary\gnuplot.exe -v 4 hog1.dat
然而因为python不太懂,没有用libsvm自带的tools,主要是用matlab,以下就是用matlab,libsvm的方法。
一、libsvmtrain训练参数选择
用默认参数训练的效果如果不好的话(偶的数据集只有4.5%),就要试试寻参了,寻参之前先做归一化。从网上dang了一个normalization的小程序: