libsvm使用详细说明
-
一,简介
LibSVM是台湾林智仁(Chih-Jen Lin)教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的,因此成为目前国内应用最多的SVM的库。详细的使用说明及博主博客见下链接:
http://endual.iteye.com/blog/1267442。
这套库可以从http://www.csie.ntu.edu.tw/~cjlin/免费获得,解压后可以看到,主要有5个文件夹和一些c++源码文件。
Java——主要是应用于java平台;
Python——是用来参数优选的工具
svm-toy——一个可视化的工具,用来展示训练数据和分类界面,里面是源码,其编译后的程序在windows文件夹下;
tools——主要包含四个python文件,用来数据集抽样(subset),参数优选(grid),集成测试(easy),数据检查(checkdata);
windows——包含libSVM四个exe程序包,我们所用的库就是他们,里面还有个heart_scale,是一个样本文件,可以用记事本打开,用来测试用的。
-
二,我的使用心得:使用windows 下的工具:
-
打开cmd 命令行,定位到windows文件夹的目录下。
-
进行libsvm训练,输入命令 svm-train[参数的选择] file_name。
参数的选择:根据你的任务,选择分类或者回归模型等,命令行中有提示。
file_name,是训练的文件名称,文件格式如下:
Label 1:value 2:value ….
Label:是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15。当然,如果是回归,这是目标值,就要实事求是了。
Value:就是要训练的数据,从分类的角度来说就是特征值,数据之间用空格隔开
比如: -15 1:0.708 2:1056 3:-0.3333
需要注意的是,如果特征值为0,特征冒号前面的(姑且称做序号)可以不连续。如:
-15 1:0.708 3:-0.3333
我采用4w维的向量做训练,libsvm 速度还可以,支持向量的稀疏表示。
训练结束后,可以看到原来训练文件目录下,多了个model 文件,记录了训练后的结果。
3.svmpredict的用法
svmpredict是根据训练获得的模型,对数据集合进行预测。
用法:svmpredict [options] test_file model_file output_file
其中,options为操作参数,可用的选项即表示的涵义如下所示:
test_file——是要进行预测的数据文件,格式也要符合libsvm格式,即使不知道label的值,也要任意填一个,svmpredict会在output_file中给出正确的label结果,如果知道label的值,就会输出正确率;
output_file ——是svmpredict的输出文件,表示预测的结果值。