机器学习和生物信息学实验室论坛联盟MAchine Learning And Bioinformatics, MALAB
查看: 9551|回复: 3

libSVM

[复制链接]
发表于 2011-5-14 22:23:59 | 显示全部楼层 |阅读模式
libsvm使用总结——初级
1.
首先,如果你使用windows的话,要从cmd中进入到该文件夹下,然后依次运行svmscale, svmtrain, svmpredict。(和blast等软件相似)
2.
然后说输入的数据(包括训练集和测试集)的格式。每一行是一个样本,格式如下:
1 1:0.2 2:0.6 3:-0.5 4:13
其中第一位是类别标记,也就是该样本的类别,通常用1和0或-1来标记。此例后面表示有4个属性,依次是0.2,0.6,-0.5,13。前面需要用一个序号+冒号。(参考heart_scale文件)
每一行都是这种格式,我还是喜欢excel表的格式。我已经用java写了一个转化的程序。谁需要可以管我要。
3.(这一步不是必须的,如果你的特征变化范围不大,尽量不要归一化)
首先要进行“归一化”。在cmd中运行svmscale会显示它的格式的。如果你的训练集和测试集分别是train.txt和test.txt,那么运行的语句是:
svmscale train.txt >train.scale
svmscale test.txt >test.scale
红色的是生成的归一化后文件,下面的训练和预测都是处理归一化后的文件。
注意:svmscale还可以更改上下界的范围,默认是[-1,。带参数的svmscale命令这里就不介绍了。另外,有的版本(新版本)的libSVM需要>,有的(老版本)不需要,自己试试看即可。
4.
归一化之后就可以训练了。和svmscale一样,svmpredict也可以带很多参数,这里只介绍最简单的(默认的)。命令如下:
svmtrain train.scale train.model
这里要再生成一个文件train.model,它用来存放训练出的“规则”,后面要用到该文件。
5.
训练之后就是预测了。预测语句如下:
svmpredict test.scale train.model output.txt
第一个文件是归一化的测试集,第二个文件是从训练集中训练后得到的规则文件,第三个是用来存放结果的文件(如果没有系统会自动生成)。
同时屏幕上会显示预测的准确率,在output.txt中会有预测结果。

//*******************下面的步骤很重要,是为了找到最优的参数g和c*******************

6.
安装python。(有的版本会报错,请到服务器ftp,share/软件 目录下下载我上传的python)
7.
修改grid.py. 改gp373w32/pgnuplot.exe的路径,也要改svmtrain的路径(../windows/svm-train.exe虽然也对,但在有的windows系统中..不好使,最好还是改成绝对路径)。(最上面2行)
8.
在python/bin的目录下运行python + grid.py(绝对路径)+train.scale(绝对路径)。如果成功的话,会自动弹出画了一圈一圈的图,dos黑屏会显示最优的g和c,以及最优的准确率


python比较大,请自行下载
libsvm-2.86.zip (545.75 KB, 下载次数: 2547)
gp373w32.rar (632.91 KB, 下载次数: 2405)

回复

使用道具 举报

发表于 2011-7-23 20:22:11 | 显示全部楼层
本帖最后由 xmubingo 于 2011-7-23 20:22 编辑

cite:  @zouquan

原始.libsvm归一化之后做的最优参数和没有归一化之后的最优参数是不一样的。

归一化适合那些特征属性值波动非常大的情况。

不做归一化:在python/bin的目录下运行python + grid.py(绝对路径)+train.arff.libsvm
回复

使用道具 举报

 楼主| 发表于 2011-7-23 23:04:52 | 显示全部楼层
是的,菜鸟还经常犯的错误是:

对训练数据进行归一化(svmscale),训练;
对测试数据进行归一化(svmscale),测试;

这是错误的,如果要归一化,那么测试数据和训练数据要放到一起归一化,或者测试数据按照训练数据的上下界进行归一化(有可能超出1,没有关系)

因此,除非是特征波动过大,尽量不要用svmscale;如果用了svmscale,那么就svmtrain -v 5进行交叉验证,不要再svmpredict了
回复

使用道具 举报

 楼主| 发表于 2012-6-12 19:28:26 | 显示全部楼层
关于给样本设权重,参考
http://datamining.xmu.edu.cn/bbs ... wthread&tid=607
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注公众号
机器学习和生物信息学实验室联盟

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部