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比较大,请自行下载
|