版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。libsvm_训练后的模型参数讲解-libsvm训练后的模型参数讲解本帖子主要就是讲解利用libsvm-mat工具箱建立分类(回归模型)后,得到的模型model里面参数的意义都是神马?以及如果通过model得到相应模型的表达式,这里主要以分类问题为例子。测试数据使用的是libsvm-mat自带的heart_scale.mat数据(270*13的一个属性据矩阵,共有270个样本,每个样本有13个属性),方便大家自己测试学习。首先上一个简短的测试代码:%ModelDecryption%byfarutofar
2、utosStudio%/faruto%Email:%http:/www.mfun.la%lastmodifiedby2011.01.06%alittecleanworktic;closeall;clear;clc;formatcompact;%首先载入数据loadheart_scale;data=heart_scale_inst;label=heart_scale_label;%建立分类模型model=svmtrain(label,data,-s0-t2-c1.2-g2.8);model%利用建立的模型看其在训练集合上的分类效果PredictLabel,accuracy=svmpredict(
3、label,data,model);accuracy%toc;复制代码运行结果:model=Parameters:5x1doublenr_class:2totalSV:259rho:0.0514Label:2x1doubleProbA:ProbB:nSV:2x1doublesv_coef:259x1doubleSVs:259x13doubleAccuracy=99.6296%(269/270)(classification)accuracy=99.62960.01480.9851Elapsedtimeis0.040155seconds.复制代码这里面为了简单起见没有将测试数据进行训练集和测试集
4、的划分,这里仅仅是为了简单明了而已,分类结果估计可以不要管,参数优化也不要管,另有帖子讲解。下面我们就看看model这个结构体里面的各种参数的意义都是神马,model如下:model=Parameters:5x1doublenr_class:2totalSV:259rho:0.0514Label:2x1doubleProbA:ProbB:nSV:2x1doublesv_coef:259x1doubleSVs:259x13doublemodel.Parameters我们先来看一下model.Parameters里面承装的都是什么:model.Parametersans=02.00003.0000
5、2.80000复制代码重要知识点:model.Parameters参数意义从上到下依次为:-ssvm类型:SVM设置类型(默认0)-t核函数类型:核函数设置类型(默认2)-ddegree:核函数中的degree设置(针对多项式核函数)(默认3)-gr(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认类别数目的倒数)-rcoef0:核函数中的coef0设置(针对多项式/sigmoid核函数)(默认0)即在本例中通过model.Parameters我们可以得知s参数为0;-t参数为2;-d参数为3;-g参数为2.8(这也是我们自己的输入);-r参数为0。关
6、于libsvm参数的一点小说明:Libsvm中参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。model.Labelmodel.nr_classmodel.Labelans=1-1model.nr_classans=2复制代码重要知识点:model.Label表示数据集中类别的标签都有什么,这里是1,-1;model.nr_class表示数据集中有多少类别,这里是二分类。model.totalSVmodel.nSVmodel.totalSVans=259model
7、.nSVans=118141复制代码重要知识点:model.totalSV代表总共的支持向量的数目,这里共有259个支持向量;model.nSV表示每类样本的支持向量的数目,这里表示标签为1的样本的支持向量有118个,标签为-1的样本的支持向量为141。注意:这里model.nSV所代表的顺序是和model.Label相对应的。model.ProbAmodel.ProbB关于这两个参数这里不做介绍,使用-b参数时才能用到,用于概率估计。-bprobability_estimates:whethertotrainaSVCorSVRmodelforprobabilityestimates,0or1
8、(default0)model.sv_coefmodel.SVsmodel.rhosv_coef:259x1doubleSVs:259x13doublemodel.rho=0.0514复制代码重要知识点:model.sv_coef是一个259*1的矩阵,承装的是259个支持向量在决策函数中的系数;model.SVs是一个259*13的稀疏矩阵,承装的是259个支持向量。model.rho是决策函数中的常数项的相反数(-b)在这里首先我们看一下通过s0参数(C-SVC模型)得到的最终的分类决策函数的表达式是怎样的?这里如果有关于C-SVC模型不懂的地方,请看这个pdf文件:libsvm_libr
9、ary.pdf附件:最终的决策函数为:在由于我们使用的是RBF核函数(前面参数设置t2),故这里的决策函数即为:其中|x-y|是二范数距离;这里面的b就是-model.rho(一个标量数字);b=-model.rho;n代表支持向量的个数即n=model.totalSV(一个标量数字);对于每一个i:wi=model.sv_coef(i);支持向量的系数(一个标量数字)xi=model.SVs(i,:)支持向量(1*13的行向量)x是待预测标签的样本(1*13的行向量)gamma就是-g参数好的下面我们通过model提供的信息自己建立上面的决策函数如下:%DecisionFunctionfun
10、ctionplabel=DecisionFunction(x,model)gamma=model.Parameters(4);RBF=(u,v)(exp(-gamma.*sum(u-v).2);len=length(model.sv_coef);y=0;fori=1:lenu=model.SVs(i,:);y=y+model.sv_coef(i)*RBF(u,x);endb=-model.rho;y=y+b;ify=0plabel=1;elseplabel=-1;end复制代码有了这个决策函数,我们就可以自己预测相应样本的标签了:%plable=zeros(270,1);fori=1:270
11、x=data(i,:);plabel(i,1)=DecisionFunction(x,model);end%验证自己通过决策函数预测的标签和svmpredict给出的标签相同flag=sum(plabel=PredictLabel)over=1;复制代码最终可以看到flag=270,即自己建立的决策函数是正确的,可以得到和svmpredict得到的一样的样本的预测标签,事实上svmpredict底层大体也就是这样实现的。最后我们来看一下,svmpredict得到的返回参数的意义都是什么在下面这段代码中:%首先载入数据loadheart_scale;data=heart_scale_inst;l
12、abel=heart_scale_label;%建立分类模型model=svmtrain(label,data,-s0-t2-c1.2-g2.8);model%利用建立的模型看其在训练集合上的分类效果PredictLabel,accuracy=svmpredict(label,data,model);accuracy复制代码运行可以看到model=Parameters:5x1doublenr_class:2totalSV:259rho:0.0514Label:2x1doubleProbA:ProbB:nSV:2x1doublesv_coef:259x1doubleSVs:259x13doubl
13、eAccuracy=99.6296%(269/270)(classification)accuracy=99.62960.01480.9851复制代码这里面要说一下返回参数accuracy的三个参数的意义。重要的知识点:返回参数accuracy从上到下依次的意义分别是:分类准率(分类问题中用到的参数指标)平均平方误差(MSE(meansquarederror))回归问题中用到的参数指标平方相关系数(r2(squaredcorrelationcoefficient))回归问题中用到的参数指标其中mse和r2的计算公式分别为:插图:写在后面的话,至此关于model中相应参数的一些意义,以及到底如果得到决策函数的表达式或者计算方式的就算是说的很明了了。可能还有的同学会问,如何得到分类决策函数中的那个alpha系数【这个肯定会有人问】,还是再磨叽说一下吧:上面的wi其实是alpha和支持向量的类别标签(1或-1的乘积),原始决策函数的表达式如下:插图:上面的yi是支持向量的类别标签(1或者-1),在libsvm中将yi和alph
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025泉州市医学会招聘工作人员2人考试核心题库及答案解析
- 2025河南驻马店市直公益性岗位招聘16人考试核心试题及答案解析
- 2025年西安高新区第十一初级中学教师招聘考试核心试题及答案解析
- 2025甘肃兰州新区石化产业投资集团有限公司法务专干、造价工程师、会计岗位招聘6人备考核心试题附答案解析
- 2025江西省财通供应链金融集团有限公司第二批次社会招聘2人考试重点试题及答案解析
- 2026天津美术学院第一批招聘硕士研究生及以上人员备考核心题库及答案解析
- 我的刑侦笔记人物介绍
- 2025湖北省植物保护总站招聘1人笔试参考题库附带答案详解(3卷合一版)
- 2025浙江海港长兴港务有限公司招聘2人笔试参考题库附带答案详解(3卷合一版)
- 2025江西南昌东湖文化旅游发展有限公司招聘1人笔试参考题库附带答案详解(3卷)
- 医保科工作流程管理标准化方案
- 2025呼伦贝尔莫旗消防救援大队招聘消防文员(公共基础知识)综合能力测试题附答案解析
- 《国家赔偿法》期末终结性考试(占总成绩50%)-国开(ZJ)-参考资料
- 社会能力训练教程
- 广东省广州市番禺区2024-2025学年七年级上学期语文期末考试试卷(含答案)
- 2025年河南高二政治题库及答案
- 创新激励机制
- 产品成熟度评估标准文档
- 2025年浙江衢州龙游经济开发区下属国资公司公开招聘普通岗位合同制员工11人笔试考试参考题库附答案解析
- 城市给水管线工程初步设计
- 考研咨询师员工培训方案
评论
0/150
提交评论