一、 LIBSVM介绍
LIBSVM是台湾大学林智仁(Chih-Jen Lin)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross Validation)的功能。
二、 准备工作
2.1软件下载安装
使用的平台是Windows XP,从命令列执行。先把一些需要的东西装好,总共需要三个软件:libsvm, python, gnuplot。这里我选择的版本是libsvm-2.88,python26。
Libsvm:到http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载libsvm,然后解压缩就好了。 Python:到http://www.python.org/download/下载完直接安装就好了。 Gnuplot:下载ftp://ftp.gnuplot.info/pub/gnuplot/gp400win32.zip解压缩。 这里全部解压安装在c盘 c:\\libsvm-2.88 c:\\python26 c:\\gnuplot 2.2参数修改
(1)把c:\\libsvm-2.88\\tools中的easy.py和grid.py复制到c:\\libsvm-2.91\\python中 (2)在c:\\libsvm-2.88\\python中修改easy.py和grid.py的路径:
①点中easy.py在右键中选Edit with IDLE打开,将else下面的路径修改如下: else:
# example for windows
svmscale_exe = r\ svmtrain_exe = r\ svmpredict_exe = r\ gnuplot_exe = r\ grid_py = r\
②点中grid.py在右键中选Edit with IDLE打开,将else下面的路径修改如下: else:
# example for windows
svmtrain_exe = r\ gnuplot_exe = r\
三、 实验步骤
(1)按照LIBSVM软件包所要求的格式准备数据集; (2)对数据进行缩放操作; (3)选用适当的核函数;
(4)采用交叉验证选择惩罚系数C与g的最佳参数;
(5)采用获得的最佳参数对整个训练集进行训练获取支持向量机模型; (6)利用获取的模型进行测试与预测。 四、 实验操作
4.1.数据准备
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#breast-cancer 下载heart.txt作为此次分类的初始数据 heart
Source: Statlog / Heart # of classes: 2 # of data: 270 # of features: 13 Files: heart
heart_scale (scaled to [-1,1]) 4..2具体操作
(1)据归一化处理
将数据heart.txt保存在c:\\libsvm-2.88\\windows文件夹下 对原始数据进行归一化,步骤如下: 打开程序--附件—命令提示符,键入
cd c:\\libsvm\\windows 回车
再键入
svm-scale -l 0 -u 1 heart.txt > heart.scale.txt 回车
在c:\\ libsvm-2.88\\windows下出现一个heart.scale.txt文件
(2)然后将路径调整到
cd c:\\python27
接着输入:python C:\\libsvm\\python\\grid.py -log2c -10,10,1 -log2g 10,-10,-1
c:\\libsvm\\windows\\heart.scale.txt > test.txt 回车
就会产生一个test.txt文件,其中记录了参数寻优的结果
Libsvm分类实验报告



