[转] 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  (没有选参数,默认为取RBF为核函数)

训练结束后会产生一个文件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

posted @ 2010-05-29 23:29  java程序员填空  阅读(169)  评论(0编辑  收藏  举报