您的位置:首页 > 大数据

svm理论与实验之12: Hello World

2013-10-12 10:19 302 查看
徐海蛟博士 Teaching.

我教学学习的libsvm版本是3.17最新版。应用3.17最新版自带的训练集heart_scale来完成第一个实验,该训练集样本数:270,特征数:13。童鞋们跟我一起玩。

1. 把LibSVM包解压到相应的目录,比如 D:/lab/libsvm/。

2. 在电脑“开始”的“运行”中输入cmd,进入DOS命令提示符环境。定位到d:/lab/libsvm/windows/下。

3. 进行libsvm训练,输入命令:
    svm-train ../heart_scale ../heart.model

    heart_scale ——是目录下的已经存在的样本文件,要换成自己的文件,只需改成自己的文件名就可以了

    heart.model ——是创建的结果文件,保存了训练后的结果

   可以看到结果:

     *

optimization finished, #iter = 162

nu = 0.431029

obj = -100.877288, rho = 0.424462

nSV = 132, nBSV = 107

      Total nSV = 132

其中,#iter为迭代次数,nu 是你选择的核函数类型的参数,obj为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的偏置项b,nSV 为标准支持向量个数(0<a[i]<c),nBSV为边界上的支持向量个数(a[i]=c),Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。

在目录下,还可以看到产生了一个train.model文件,可以用记事本打开,记录了训练后的结果:
svm_type c_svc// 所选择的svm类型,默认为c_svc
kernel_type rbf // 训练采用的核函数类型,此处为RBF核
gamma 0.0769231 // RBF核的参数γ
nr_class 2
// 类别数,此处为两分类问题
total_sv 132    // 支持向量总个数: 132
rho 0.424462    // 判决函数的偏置项b
label 1 -1      // 原始文件中的类别标识
nr_sv 64 68     // 正类支持向量个数:64,反类sv个数:68
SV // 以下为各个类的权系数及相应的支持向量
1 1:0.166667 2:1 3:-0.333333 … 10:-0.903226 11:-1 12:-1 13:1
0.5104832128985164 1:0.125 2:1 3:0.333333 … 10:-0.806452 12:-0.333333 13:0.5
… …
-1 1:-0.375 2:1 3:-0.333333…. 10:-1 11:-1 12:-1 13:1
-1 1:0.166667 2:1 3:1 …. 10:-0.870968 12:-1 13:0.5

    到现在,第一次体验libsvm到这就基本结束了,其他的两个(svm-predict、svm-scale)的使用过程类似。怎么样,挺爽的吧。对于个别参数你还不理解,没关系,下面我们会具体讲到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息