你们好,最近小活发现有诸多的小伙伴们对于libsvm怎么读,libsvm这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 下载libsvm的zip包,解压到一个文件夹就行了(随便什么D:\gjs\libsvm)。
2、
3、 Install python
4、 下载gnuplot,直接解压就好,不用安装(C:\gnuplot)。数据格式描述
5、 01: 5.12: 3.53: 1.44: 0.221: 4.92: 3.03: 1.44: 0.211: 4.72: 3.23: 1.34: 0.2 [Label] [Index 1]:[ Value 1][ Index 2]:[ Value 2].
6、 您可能需要自己转换训练和测试数据的格式。
7、 1.windows cmd命令窗口
8、 已下载libsvm包已经为我们编译好了(windows)。
9、 转到libsvm\windows,可以看到这些exe文件:
10、 1.SVM-预测:svmprecittest _ file mode _ file output _ file根据已经训练好的模型,输入新数据,输出预测的新数据的类别。
11、 2.svm-scale:有时候特征值波动范围比较大,需要对特征数据进行缩放,可以缩放到0-1(自己定义)。
12、 3.svm-toy:好像是图形界面,可以自己画点,自己生成数据。
13、 4. SVM-train: SVM train [option] train _ file [model _ file] train will accept input in a specific format and generate a model file.
14、 第一步:你可以自己生成数据,使用svm-toy:
15、 双击svm-toy,然后单击更改在画布上绘制点:
16、 点击运行,实际上是训练的过程,划分的区域:
17、 点击保存保存数据(假设保存的数据在d:/D://libsvm.txt中)。
18、 第二步:使用训练数据libsvm.txt进行建模,使用svm-train:
19、 使用cmd命令进入解压缩后的windows目录libsvm目录,并使用svm-train,如下所示:
20、 其中,
21、 #iter是迭代次数,
22、 Nu是您选择的核函数类型的参数。
23、 Obj是由SVM文件转换成的二次规划得到的最小值。
24、 是决策函数的偏差项b,
25、 NSV是标准支持向量的数量(0a[i]c),
26、 NBSV是边界上支持向量的数量(a[i]=c),
27、 Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV=nSV,但是对于多类,这个是各个分类模型的nSV之和
28、 同时在该目录下会生成一个训练好的model(libsvm.txt.model)可以打开文件查看里面的内容,主要包括一些参数和支持向量等
29、 第三步:使用建好的model进行预测,使用svm-predict
30、 同时会生成一个输出文件(libsvm.txt.out),每行代表该行的预测值类别。
31、 参数优化:
32、 svm的参数优化很重要,libsvm包里面包含了参数的优化函数,主要是暴力求解参数。一般来说我们会使用高斯核函数,包含两个参数(c 和g)
33、 使用gird.py文件进行参数优化选择:
34、 grid.py在libsvm/tools里面,首先需要修改gird.py中的gnuplot文件路径问题,把文件里的路径改成gnuplot 存放的目录:
35、 进入grid.py的相应目录,执行grid.py D://libsvm.txt
36、 前面两个分别是c 跟g的值,这时候我们重新训练模型(加上参数c g)
37、 可以看到,准确率有了显著的提升, 其实这些步骤完全可以使用easy.py进行实现,同理也需要修改eays.py里面的gnuplot文件路径问题,把文件里的路径改成gnuplot 存放的目录:
38、 步骤总结如下:
39、 1.转换训练数据为相应的格式。
40、 2.有时候可能需要使用svm-scale对数据进行相应的缩放,有利于训练建模。
41、 3.使用grid.py或者easy.py进行参数优化。
42、 4.使用svm-train建模和svm-predict进行预测。
以上就是libsvm这篇文章的一些介绍,希望对大家有所帮助。
标签:
免责声明:本文由用户上传,如有侵权请联系删除!