本系列文章由 @YhL_Leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/50112477
官方Web: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
GitHub: https://github.com/cjlin1/libsvm
Tutorial: http://ntu.csie.org/~piaip/svm/svm_tutorial.html
1 库组成
Dos下运行程序有编译好的exe
文件可以直接运行。例如本人的libSVM
(版本为3.20)解压在E:\ClassTask\libsvm-3.20
目录下:
其中
heart_scale
文件是一个libSVM库提供的训练示例样本,打开后可以发现里面是一堆这样的数据:
很容易看出,数据集结构是:
label vec{(index_1,value_1), ...(index_13, value_13)}
即两类观测值+1
和-1
,后面的13维向量是每个样本某一特征的特征值。
进入windows
子文件夹下有:
其中包含四个exe
文件:
svm-predict
:依照已经训练好的model ,输入新的数据,并输出预测新数据的类别。svm-scale
:有时候特征值的波动范围比较大需要对特征数据进行缩放,范围可以自己定,一般是[0,1]或[-1,1]。svm-toy
:图形界面,可以自己画点,产生数据,并显示/保存分类结果。svm-train
:会接受特定格式的训练输入文件,产生一个model 文件。
2 svm-train
首先来看svm-train
,在Dos下切换到windows
目录下(Win+R
->cmd
->切换盘符,cd
切换文件夹),后输入命令:
> E:\ClassTask\libsvm-3.20\windows> svm-train ..//heart_scale ..//train.model
这里并没把heart_train
文件拷入到windows
下,而是在其前一层父目录中。如果已经拷到windows
目录下,就无需..//
。
回车后很快就会出现:
其中:
#iter
为迭代次数nu
是选择的核函数类型的参数obj
为SVM文件转换为的二次规划求解得到的最小值rho
为判决函数的偏置项b
nSV
为标准支持向量个数<