svm使用详解.docx
- 文档编号:20976187
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:10
- 大小:49.28KB
svm使用详解.docx
《svm使用详解.docx》由会员分享,可在线阅读,更多相关《svm使用详解.docx(10页珍藏版)》请在冰豆网上搜索。
svm使用详解
1.文件中数据格式
labelindex1:
value1index2:
value2...
Label在分类中表示类别标识,在预测中表示对应的目标值
Index表示特征的序号,一般从1开始,依次增大
Value表示每个特征的值
例如:
31:
0.1220002:
0.792000
31:
0.1440002:
0.750000
31:
0.1940002:
0.658000
31:
0.2440002:
0.540000
31:
0.3280002:
0.404000
31:
0.4020002:
0.356000
31:
0.4900002:
0.384000
31:
0.5480002:
0.436000
数据文件准备好后,可以用一个python程序检查格式是否正确,这个程序在下载的libsvm文件夹的子文件夹tools下,叫checkdata.py,用法:
在windows命令行中先移动到checkdata.py所在文件夹下,输入:
checkdata.py你要检查的文件完整路径(包含文件名)
回车后会提示是否正确。
2.对数据进行归一化。
该过程要用到libsvm软件包中的svm-scale.exe
Svm-scale用法:
用法:
svmscale[-llower][-uupper][-yy_lowery_upper][-ssave_filename][-rrestore_filename]filename(缺省值:
lower=-1,upper=1,没有对y进行缩放)
其中,-l:
数据下限标记;lower:
缩放后数据下限;
-u:
数据上限标记;upper:
缩放后数据上限;
-y:
是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;(回归需要对目标进行缩放,因此该参数可以设定为–y-11)
-ssave_filename:
表示将缩放的规则保存为文件save_filename;
-rrestore_filename:
表示将缩放规则文件restore_filename载入后按此缩放;
filename:
待缩放的数据文件(要求满足前面所述的格式)。
数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的文件重定向符号“>”将结果另存为指定的文件。
该文件中的参数可用于最后面对目标值的反归一化。
反归一化的公式为:
(Value-y_lower)*(max-min)/(y_upper-y_lower)+min
其中value为归一化后的值,max,min分别是归一化之前所有目标值的最大值和最小值,其他参数与前面介绍的相同。
注意:
将训练数据集与测试数据集放在同一个文本文件中一起归一化,然后再将归一化结果分成训练集和测试集。
3.训练数据,生成模型。
用法:
svmtrain[options]training_set_file[model_file]
其中,options(操作参数):
可用的选项即表示的涵义如下所示
-ssvm类型:
设置SVM类型,默认值为0,可选类型有(对于回归只能选3或4):
0--C-SVC1--n-SVC2--one-class-SVM3--e-SVR4--n-SVR
-t核函数类型:
设置核函数类型,默认值为2,可选类型有:
0--线性核:
u'*v
1--多项式核:
(g*u'*v+coef0)degree
2--RBF核:
e(uv2)g-
3--sigmoid核:
tanh(g*u'*v+coef0)
-ddegree:
核函数中的degree设置,默认值为3;
-gg:
设置核函数中的g,默认值为1/k;
-rcoef0:
设置核函数中的coef0,默认值为0;
-ccost:
设置C-SVC、e-SVR、n-SVR中从惩罚系数C,默认值为1;
-nn:
设置n-SVC、one-class-SVM与n-SVR中参数n,默认值0.5;
-pe:
设置n-SVR的损失函数中的e,默认值为0.1;
-mcachesize:
设置cache内存大小,以MB为单位,默认值为40;
-ee:
设置终止准则中的可容忍偏差,默认值为0.001;
-hshrinking:
是否使用启发式,可选值为0或1,默认值为1;
-b概率估计:
是否计算SVC或SVR的概率估计,可选值0或1,默认0;
-wiweight:
对各类样本的惩罚系数C加权,默认值为1;
-vn:
n折交叉验证模式。
其中-g选项中的k是指输入数据中的属性数。
操作参数-v随机地将数据剖分为n部分并计算交叉检验准确度和均方根误差。
以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数不在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。
training_set_file是要进行训练的数据集;model_file是训练结束后产生的模型文件,该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。
另,实验中所需调整的重要参数是-c和–g,-c和-g的调整除了自己根据经验试之外,还可以使用grid.py对这两个参数进行优化。
注意:
经过实测,在用于分类时,grid.py能得到较好参数值,但用于回归时得到的参数值效果很差。
该优化过程需要用到Python(2.5),Gnuplot(4.2),grid.py(该文件需要修改路径)。
然后在命令行下面运行:
grid.py-log2c-10,10,1-log2g-10,10,1-log2p-10,10,1-s3-t2-v5-svmtrainE:
\libsvm-2.86\windows\svm-train.exe-gnuplotE:
\gnuplot\bin\pgnuplot.exeE:
\libsvm\libsvm-2.86\windows\train.txt以上三个路径根据实际安装情况进行修改。
-log2c是给出参数c的范围和步长
-log2g是给出参数g的范围和步长
-log2p是给出参数p的范围和步长上面三个参数可以用默认范围和步长
-s选择SVM类型,也是只能选3或者4
-t是选择核函数
-v5将训练数据分成5份做交叉验证。
默认为5
搜索结束后可以在最后一行看到最优参数。
其中,最后一行的第一个参数即为-c,第二个为-g,第三个为-p,前三个参数可以直接用于模型的训练。
然后,根据搜索得到的参数,重新训练,得到模型。
命令行会出现以下内容:
optimizationfinished,#iter=162
nu=0.431029
obj=-100.877288,rho=0.424462
nSV=132,nBSV=107
TotalnSV=132
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- svm 使用 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)