[转] libsvm的使用
首先下载:
http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html
将下载到的zip文件解压后有许多文件,包括源文件和可执行文件.我们选择windows子目录.
该目录下面有四个可执行文件,其中的svm-toy是图形化界面,svm-scale是对数据进行格式化(正规化到[0,1]区间或[-1,1]区间)
我们使用最多的是svm-predict.exe和svm-train.exe这两个命令,在DOS窗口下执行.
1.格式化数据,所有数据按以下格式:
-1 1:0.06428426 2:-0.0008847414 3:7.168048E-05 4:-0.2637875 5:0.003891345 6:-2.925959E-05
其中第一列为类,如果两类,就只有-1和1或者也可以取0和1;第二列为数据序号;第三列为:;第四列为真实数据(一般要求正规化到[0,1]或[-1,1],否则采用svm-scale命令执行正规化).
2.训练数据,比如训练数据集:train.1.txt数据,命令如下:
svm-train train.1.txt
训练结束后会产生一个文件train.1.txt.model.
3.预测数据,比如预测数据集:test.1.txt数据,命令如下:
svm-predict test.1.txt train.1.txt.model test.1.predict
执行完成后输出结果:
Accuracy=66.925%(2677/4000)(classification)
4.使用python来进行盲搜索:
1) 下载两个软件:python和gnuplot.
网址如下:http://www.python.org/download/ 和http://www.gnuplot.info/
第一个软件下载后直接安装.后面一个软件下载后可不安装.
在libsvm-2.86/tools/目录下找到grid.py目录,用写字板打开,在文件的一开头修改目录路径,或者直接把你下载到的软件放到相应的目录下面.
2) 到DOS状态下,写命令:
grid.py train.1.scale
程序启动,会自动进行参数搜索.
采用5-fold进行预测的命令如下:
svm-scale -l -1 -u 1 trainData.txt > trainData.scale
svm-train -v 5 trainData.scale