利用libsvm-mat建立分类模型model参数解密.doc
上传人:sy****28 上传时间:2024-09-15 格式:DOC 页数:10 大小:52KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

利用libsvm-mat建立分类模型model参数解密.doc

利用libsvm-mat建立分类模型model参数解密.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

=======================================================本帖子主要就是讲解利用libsvm-mat工具箱建立分类(回归模型)后,得到的模型model里面参数的意义都是神马?以及如果通过model得到相应模型的表达式,这里主要以分类问题为例子。测试数据使用的是libsvm-mat自带的heart_scale.mat数据(270*13的一个属性据矩阵,共有270个样本,每个样本有13个属性),方便大家自己测试学习。首先上一个简短的测试代码:%%ModelDecryption%byfaruto@faruto'sStudio~%http://blog.sina.com.cn/faruto%Email:faruto@163.com%http://www.matlabsky.com%http://www.mfun.la%http://video.ourmatlab.com%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(label,data,model);accuracy%%toc;复制代码运行结果:model=Parameters:[5x1double]nr_class:2totalSV:259rho:0.0514Label:[2x1double]ProbA:[]ProbB:[]nSV:[2x1double]sv_coef:[259x1double]SVs:[259x13double]Accuracy=99.6296%(269/270)(classification)accuracy=99.62960.01480.9851Elapsedtimeis0.040155seconds.复制代码这里面为了简单起见没有将测试数据进行训练集和测试集的划分,这里仅仅是为了简单明了而已,分类结果估计可以不要管,参数优化也不要管,另有帖子讲解。下面我们就看看model这个结构体里面的各种参数的意义都是神马,model如下:model=Parameters:[5x1double]nr_class:2totalSV:259rho:0.0514Label:[2x1double]ProbA:[]ProbB:[]nSV:[2x1double]sv_coef:[259x1double]SVs:[259x13double]model.Parameters我们先来看一下model.Parameters里面承装的都是什么:>>model.Parametersans=02.00003.00002.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。关于libsvm参数的一点小说明:Libsvm中参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。model.Labelmodel.nr_class>>model.Labelans=1-1>>model.nr_classans=2复制代码重要知识点:model.Label表示数据集中类别的标签都有什么,这里是1,-1;model.nr_class表示数据集中有多少类别,这里是二分类。model.totalSVmodel.nSV>>model.totalSVans=259>>model.nSV