版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
班级:电信111.掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等;labelindex1:valuelindex2:value2...其中对于分类来说label为类标识,指定数据的种类;对于回归来说label为目的值。(我重要要用到回归)Index是从1开始的自然数,value是每一维的特性值。先将数据按照下列格式寄存(注意label放最背面):valuelvalue2labvaluelvalue2lab然后将以上数据粘贴到FormatDataLibsvm.xls中的最左上角单元格,接着工具->宏执行行FormatDataToLibsvm宏。就可以得到libsvm规定的数据格式。将该数据寄存到文本文献中进行下一步的处理。该过程要用到libsvm软件包中的svm-scale.exe=1,没有对y进行缩放)其中,-1:数据下限标识;lower:缩放后数据下限;-u:数据上限标识;upper:缩放后数据上限;-y:与否对目的值进行缩放,因此该参数可以设定为-y-11)-ssave_:表达将缩放的规则保留为文献save_;-rrestore_:表达将缩放规则文献restore_载入后按此缩放;:待缩放的数据文献(规定满足前面所述的格式)。y其中的lower与upper与使用时所设置的lower与upper含义相似;index表示特性序号;min转换前该特性的最小值;max转换前该特性的最大值。数据集的缩放成果在此状况下通过DOS窗(Value-lower)*(max-min)/(upper-lower)+lower其中value为归一化后的值,其他参数使用方法:svmtrain[options]training_set_file[其中,options(操作参数):可用的选项即表达的涵义如下所示-ssvm类型:设置SVM类型,默认值为0,可选类型有(对于回归只能选3或4):0--C-SVC1--n-SVC2--one-class-SVM3--e-SVR核函数类型:设置核函数类型,默认值为2,可选类型有:0--线性核:u'*v1--多-gg:设置核函数中的g,默认值为1/k;-rcoef0:设置核函数中的coef0,默认值为0;-ccost:设置C-SVC、e-SVR、n6-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是训练结束后产生的模型文献,该参数假如本试验中的参数-s取3,-t取2(默认)还需确定的参数是-c,-g,-p另,试验中所需调整的重要参数是-c和-g,-c和-g的调整除了自己根据经验试之外,还可以使用gridregression.py对这两个参数进行优化。(需要补充)该优化过程需要用到Python(2.5),Gnuplot(4.2),gridregression.py(该文献需要修改途径)。python.exegridregression.py-log2c-10,10,1-log2g-10,10E:\libsvm\libsvm-2.86\windows\svm--gnuplotE:libsvmlibsvm-2.86\gnuplot\bin\pgnuplot.exeE:\libsvm\libsvm-2.86\windows\train.txt>gridregression_feature.p-log2c是给出参数c的范围和步长-log2g是给出参数g的范围和步长-log2p是给出参数p的范围和步长上面三个参数可以用默认范围和步长-s选择SVM类型,也是只能选3或者4-t是选择核函数-v10将训练数据提成10份做交叉验证。默认为5为了以便将gridregression.py是寄存在python.exe安装目录下搜索结束后可以在gridregression_feature.parameter中最终一行看到最其中,最终一行的第一种参数即为-c,第二个为-g,第三个为-p,最终一种参数为均方误差。前三个参数可以使用方法:svmpredict[options]test_output_(操作参数):-bprobability_estimates:与否需要进行概率估计预测,可选值为0或者1,默认值为0。model_file是由svmtrain产生的模型文献;test_file是要进行预测的数据文献;output_file是svmpredict的输出成果包括均方误差(Meansquarederror)和有关系数(Squaredcorrelationcoefficient)。2.Matlab仿真软件一7.0/7.1/a等版本的Matlab软件。四、试验原理使用svm-scale对数据进行缩放是必要的。由于合适的scale有助于参数的选用和建svm模型的速度。svm-scale会对value做scale。范围用-1,-u指定,一般是[0,1],或是[-1,1]。(文本分类一般选[0,1])。翰出在stdout。此外要注意的是testingdata和trainingdata要一起scale。而svm-scale最难用的地方就是没措施指定testingdata/trainingdata为同一文档,然后一起scale。因此为了背面测试,还要对测试集进行scale。五、试验数据及成果分析:训练样本识别率1(%)测试样本识别$/(%)Svmtoy输出图形clear;%清屏n=length(X);%总样本数量y=X(:,4);%类别标志b=0;%初始设置截距bfori=1:50%设置类别标志为1或者-1a=zeros(n,1);%参数a%为简化计算,减少反复计算进行的计算fori=1:n%求出K矩阵,便于之后的计算sum(k)=sum(k)+a(i)*%启发式选点nl=1;%初始化,n1,n2代表选择的2个点%n1按照第一种违反KKT条件的点选择whilenl<=nify(n1)*(sum(n1)+b)==1&&a(n1)>=C&&a(n1)<=0ify(n1)*(sum(n1)+b)>1&&a(n1)~=0ify(n1)*(sum(n1)+b)<1&&a(n1)~=CE1=sum(n1)+b-y(n1);%n1的误差ifabs(E1-tempSum)>maxDiffmaxDiff=abs(E1-temp%如下进行更新KK=K(n1,n1)+K(n2,n2)-2*K(n1a2new=a2old+y(n2)*(E1-E2)/KK;%计算新的a2%a2必须满足约束条件ifS==-1U=max(0,alold+a2oldifa2new>Vifa2new<Ualnew=alold+S*(a2old-a2new);%计算新的ala(n1)=alnew;%更新a%更新部分值sum(k)=sum(k)+a(i)*tempSum=tempSum+y(i)*y(j)*a(i)*a(j)%如下更新b:通过找到某一种支持向量来计算support=1;%支持向量坐标初始化whileabs(a(support))<le-4b=1/y(support)-sum(support%判断停
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论