一个实例搞定libsvm分类(《Learn-SVM-Step-by-Step》by-faruto20

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

——打造昀优秀、专业和权威的MATLAB技术交流平台!分类《LearnSVMStepbyStep》byfaruto1MATLAB技术论坛|Simulink仿真论坛|专业MATLAB技术交流平台!网址:邮箱:matlabsky@gmail.com客服:1341692017(QQ)技术论坛:函数百科:电子期刊:官方博客:读书频道:视频教程:有偿编程:软件汉化:——打造昀优秀、专业和权威的MATLAB技术交流平台!分类《LearnSVMStepbyStep》byfaruto2内容:《LearnSVMStepbyStep》系列视频作者:faruto时间:2011.6-9版权:AllRightsPreservedByMatlabSky.com声明:严厉谴责和鄙夷一切利用本论坛资源进行任何牟利或盗版的行为!更多MATLAB精彩视频详见技术论坛视频教学——打造昀优秀、专业和权威的MATLAB技术交流平台!分类《LearnSVMStepbyStep》系列视频目录•《LearnSVMStepbyStep》应用篇•Libsvm的下载、安装和使用•Libsvm参数实例详解•一个实例搞定libsvm分类•一个实例搞定libsvm回归•Libsvm分类参数优化•Libsvm回归参数优化•Libsvm-FarutoUltimate版本介绍与使用•Libsvm-FarutoGUI版本介绍与使用•使用libsvm分类&回归的整体过程•……•Lssvm的下载、安装和使用•一个实例搞定lssvm分类•一个实例搞定lssvm回归•……•《LearnSVMStepbyStep》理论篇•具体内容待定。《LearnSVMStepbyStep》byfaruto3——打造昀优秀、专业和权威的MATLAB技术交流平台!分类《LearnSVMStepbyStep》byfaruto4内容:一个实例搞定libsvm分类《LearnSVMStepbyStep》系列视频——应用篇作者:faruto时间:2011.7版权:AllRightsPreservedByMatlabSky.com声明:严厉谴责和鄙夷一切利用本论坛资源进行任何牟利或盗版的行为!更多MATLAB精彩视频详见技术论坛视频教学——打造昀优秀、专业和权威的MATLAB技术交流平台!分类本讲视频内容目录•一个实例搞定libsvm分类•关于数据标签的注意事项•分类模型model参数解密•本讲涉及到的MATLAB使用技巧总结《LearnSVMStepbyStep》byfaruto5——打造昀优秀、专业和权威的MATLAB技术交流平台!分类本讲视频内容目录•一个实例搞定libsvm分类•关于数据标签的注意事项•分类模型model参数解密•本讲涉及到的MATLAB使用技巧总结《LearnSVMStepbyStep》byfaruto6——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(1)•使用libsvm进行分类过程很简单,只需要有属性矩阵和标签,然后就可以建立分类模型(model),然后利用得到的这个model进行分类预测了。•难点在libsvm的参数调节,关于参数寻优的问题在这里姑且不谈,重点是讲解会用libsvm进行分类,效果好坏暂且不论。•利用svmtrain来建立模型•利用svmpredict来进行预测《LearnSVMStepbyStep》byfaruto7——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(2)•svmtrain的调用格式•model=svmtrain(train_label,train_data,‘options’);•输入–train_data训练集属性矩阵,大小n*m,n表示样本数,m表示属性数目(维数),数据类型double;–train_label训练集标签,大小n*1,n表示样本数,数据类型double;–options参数选项,比如‘-c1–g0.1’,详见视频《LearnSVMStepbyStep》系列视频-应用篇:Libsvm参数实例详解•输出–model训练得到的模型,是一个结构体。»注意:当使用-v参数时,返回的model不再是一个结构体,分类问题返回的是交叉验证下的平均分类准确率;回归问题返回的是交叉检验下的平均mse(均方根误差)。《LearnSVMStepbyStep》byfaruto8——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(3)•svmpredict的调用格式•[predict_label,accuracy/mse,dec_value]=svmpredict(test_label,test_data,model);•输入–test_data测试集属性矩阵,大小N*m,N表示测试集样本数,m表示属性数目(维数),数据类型double;–test_label测试集标签,大小N*1,N表示样本数,数据类型double;»注意:如果没有测试集标签,可以用任意的N*1的列向量代替即可,此时的输出accuracy/mse,就没有参考价值。–modelsvmtrain训练得到的模型•输出–predict_label预测的测试集的标签,大小N*1,N表示样本数,数据类型double;–accuracy/mse一个3*1的列向量,第一个数表示分类准确率(分类问题使用),第二个数表示mse(回归问题使用),第三个数表示平方相关系数(回归问题使用);»注意:如果测试集的真实标签事先无法得知,此返回值没有参考意义。–dec_value决策值《LearnSVMStepbyStep》byfaruto9——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(4)•一个分类例子•一个班级里面有两个男生(男生1、男生2),两个女生(女生1、女生2)•男生1身高:176cm体重:70kg;男生2身高:180cm体重:80kg;女生1身高:161cm体重:45kg;女生2身高:163cm体重:47kg;•将男生定义为1,女生定义为-1,并将上面的数据放入矩阵data中•data=[17670;18080;16145;16347];•在label中存入男女生类别标签(1、-1)•label=[1;1;-1;-1];•上面的data矩阵就是一个属性矩阵,行数4代表有4个样本,列数2表示属性有两个,label就是标签(1、-1表示有两个类别:男生、女生)。《LearnSVMStepbyStep》byfaruto10——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(5)•有了上面的属性矩阵data,和标签label就可以利用libsvm建立分类模型了。•model=svmtrain(label,data,'-s0-t2-c1-g0.1');•有了model我们就可以做分类预测,比如此时该班级又转来两个新学生:•身高190cm,体重85kg•身高161cm,体重50kg•通过上面建立的model给出其标签(想知道其是男【1】还是女【-1】)•令testdata=[19085;16150]•由于新来的同学的标签,我们并不知道,假设其全为1(也可以假设全为-1)•令testdatalabel=[1;1]•然后利用libsvm来预测新来的学生是男生还是女生•[predictlabel,accuracy]=svmpredict(testdatalabel,testdata,model)•看一下整体的运行《LearnSVMStepbyStep》byfaruto11——打造昀优秀、专业和权威的MATLAB技术交流平台!分类(6)–data=–17670–18080–16145–16347–label=–1–1–-1–-1–testdata=–19085–16150–testdatalabel=–1–1–Accuracy=50%(1/2)(classification)此时这个指标没有参考价值–predictlabel=–1–-1《LearnSVMStepbyStep》byfaruto12——打造昀优秀、专业和权威的MATLAB技术交流平台!分类本讲视频内容目录•一个实例搞定libsvm分类•关于数据标签的注意事项•分类模型model参数解密•本讲涉及到的MATLAB使用技巧总结《LearnSVMStepbyStep》byfaruto13——打造昀优秀、专业和权威的MATLAB技术交流平台!分类关于数据标签的注意事项(1)•上面我们将男生定义为1,女生定义为-1,那定义成别的有影响吗?–答曰:没有影响,但标签必须是数值类型的,不可以是字符类型的。–这里面的标签定义就是区分开男生和女生,怎么定义都可以的,只要定义成数值型的就可以。比如我可将将男生定义为2,女生定义为5;–后面的label相应为label=[2;2;5;5];比如我可将将男生定义为18,女生定义为22;–后面的label相应为label=[18;18;22;22];–将男生定义为1,女生定义为-1和将男生定义为2,女生定义为5本质是一样的,应为可以找到一个映射将(2,5)转换成(1,-1),所以本质都是一样的,后面的18、22本质也是一样的。–如果你原本的数据集合的标签不是数值型的(比如a、b、c)那么你完全可以通过某种转换映射将不是数值型的标签转换成数值型的。《LearnSVMStepbyStep》byfaruto14——打造昀优秀、专业和权威的MATLAB技术交流平台!分类关于数据标签的注意事项(2)•关于测试集合的标签•测试集合的标签本来就应该没有,否则还预测什么啊?!•前面的例子中并不知道测试集的标签,所以假设其全为1,此时得到的测试集的分类准率就没有参考价值了,因为

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功