登录
首页 精彩阅读 在MATLAB中进行基于SVM的数据分析
在MATLAB中进行基于SVM的数据分析
2017-03-20
收藏

在MATLAB中进行基于 SVM的数据分析

MATLAB除了可以被用来进行信号处理之外,还可以用来完成一些 数据挖掘任务。而说到 数据挖掘,你脑海里一定会闪现过许多熟悉的算法,例如 决策树、 朴素贝叶斯、 逻辑回归,以及 支持向量机( SVM)等等。下面我们就以 SVM为例来看看利用MATLAB进行 数据挖掘是一种怎样的体验。

MATLAB中用来进行基于 SVM的 数据挖掘的核心函数是 svmclassify() 和 svmtrain()。从函数名就能很容易地看出来,后者是用来进行模型训练的,而前者则是用后者训练出来的模型来对数据进行分类。首先我们来看看线性可分的情况,后续我们还会讨论更复杂的线性不可分的例子。

这里所使用的数据是费希尔的鸢尾花数据,我们首先导入数据(数据一共有150行,取前2/3作为训练数据,对应的类别是setosa和versicolor)
[plain] view plain copy
>> load fisheriris  
>> xdata = meas(1:100,3:4);  
>> group = species(1:100);  

函数 svmtrain()的调用格式如下:
SVMStruct = svmtrain(Training,Group,Name,Value)
其中Training是feature向量,Group表示分属之类别。Name和Value是可选参数(也就是可以不写),而且必须成对使用,其中Name表示参数名,而Value则对应相应的参数取值。由于Name-Value的可取参数对非常之多,我们这里不一一列举(有需要的读者可以参阅MATLAB的帮助文档以了解更多),仅仅给出两个例子:比如,如果把Name置为'showplot',就可以通过紧跟其后的Value取值来控制是否将训练模型绘制成图,默认是'False',表示不会图。另外一个有用的参数是'kernel_function',如果你对 SVM算法比较了解的话应该知道,核函数主要是通过空间转换来将原本线性不可分的 数据,转换到另外一个线性可分的空间上,后续我们还会给出具体例子。
下面的代码就可以训练得到一个分类模型:
[plain] view plain copy
>> svmStruct = svmtrain(xdata,group,'ShowPlot',true);  

上述代码的执行结果如下图所示(注意因为我们为参数'showplot'赋值为True,所以系统会绘制出图):

下面我们用svmclassify() 来测试一下模型的分类能力:
[plain] view plain copy
<span style="font-size:18px;">>> testdata = [4 1.5;1.8 0.38];  
>> species = svmclassify(svmStruct,testdata,'ShowPlot',true)  
 
species =   
 
    'versicolor'  
    'setosa'</span>  

如果觉得文字表述的结果不够形象,还可以用图形来表示:
[plain] view plain copy
<span style="font-size:18px;">>> hold on;  
>> plot(testdata(:,1),testdata(:,2),'ro','MarkerSize',12);  
>> hold off</span>  

上述代码的执行结果如图所示(其中被圆周圈起来的就是我们引入的测试数据):

如果数据是线性不可分的, SVM是否能够应对呢?来看下面的例子,首先,我们生成两组数据data1和data2
[plain] view plain copy
>> rng(1); % For reproducibility  
r = sqrt(rand(100,1)); % Radius  
t = 2*pi*rand(100,1);  % Angle  
data1 = [r.*cos(t), r.*sin(t)]; % Points  
>> r2 = sqrt(3*rand(100,1)+1); % Radius  
t2 = 2*pi*rand(100,1);      % Angle  
data2 = [r2.*cos(t2), r2.*sin(t2)]; % points  

data1和data2是线性不可分的。用图形来表示或许更加一目了然,所以我们来绘图:
[plain] view plain copy
>> figure;  
plot(data1(:,1),data1(:,2),'r.','MarkerSize',15)  
hold on  
plot(data2(:,1),data2(:,2),'b.','MarkerSize',15)  
ezpolar(@(x)1);ezpolar(@(x)2);  
axis equal  
hold off  

上述代码的执行结果如下:

然后我们把两组数据组织到一起,并加上分类标签‘+1’和‘-1’。
[plain] view plain copy
>> data3 = [data1;data2];  
theclass = ones(200,1);  
theclass(1:100) = -1;  

然后分别用高斯核函数与多项式核函数来进行空间转换,并在此基础上进行基于 SVM的分类:
[plain] view plain copy
>> svmModel = svmtrain(data3, theclass, 'kernel_function','rbf','ShowPlot',true);  
>> svmModel = svmtrain(data3, theclass, 'kernel_function','polynomial','ShowPlot',true);  
 
下图基于高斯核函数的 SVM分类结果:

下图基于多项式核函数的 SVM分类结果:

可见原本不可分的 数据,现在已经被成功分类了。

SVM 数据挖掘 逻辑回归 朴素贝叶斯 支持向量机 决策树 数据分析

数据分析咨询请扫描二维码

上一篇 回归系列(一)| 怎样正确地理解线性回归
下一篇 2020美国总统竞选大戏开锣,川普当选的奇迹会再发生吗?
报考指南
  • 报考流程
  • 考试时间
  • 报名费用
  • 联系我们
热门栏目
  • 考试动态
  • 报考指南
  • 复习备考
  • 职业发展
  • 直播公开课
  • 经验分享
最新资讯
更多
  • 政府、国央企、科研单位——中国航信-面向测试度量 ...

    CDA数据分析师在中国航信高科技产业园进行了面向测试度量的数据分析培训课程,培训人数近2 ...

    2024-05-01
  • CDA内训丨深圳迈瑞生物医疗数据分析统计思维培训 ...

    CDA数据分析师走进深圳迈瑞生物医疗电子股份有限公司,在迈瑞总部展开了为期两天的培训,本次课程参训人员线上及线下近百人, ...

    2024-05-01
  • CDA数据分析师应合肥阳光新能源科技有限公司邀约开 ...

    CDA数据分析师在合肥市对合肥阳光新能源科技有限公司开展了为期8天的企业内训。 合肥阳光新能源科技 ...

    2024-05-01
  • CDA走进海尔大学

    CDA数据分析师走进海尔大学,进行了《数据治理与数据中台建设的道与术》专题培训,培训现场爆满,近百人参加了此次培训。 ...

    2024-05-01
  • 苏州中行&CDA数据分析师开展数据分析师培训 ...

    在中国银行苏州分行培训中心开始数据分析师培训,此次培训课程共10天内容,包括Excel、MySQL、概率论与数理统计、SPSS等内容, ...

    2024-05-01
  • 中国银行江苏分行-大数据应用培训

    从实际的业务需求出发,结合行业的典型应用特点,围绕实际的商业问题,探讨数据挖掘、机器学习模型在金融领域的应用,包括获客、信用评分、细分画像、交叉销售、反欺诈、违规识别、时序预测、运筹优化、流程挖掘九个方面,形成 ...

    2024-05-01
  • 浙江农信数据建模及案例应用培训

    本次培训课程为线上+线下的模式,由于学员编程能力不一、部分学员没有编程基础,故提供统计学、python基 ...

    2024-05-01
  • 华夏银行信用卡中心-机器学习培训

    华夏银行信用卡中心-机器学习培训 1、课程亮点 取材于业界一流企业和顶级咨询公司的行业实践;已经被证明是人人 ...

    2024-05-01
  • 字节跳动-CDA案例实操及行业分析

    主 题:数据中台建设及数据分析应用主题分享 1. 数据中台市场洞察 2. 主流数据中台产品比较 3. 某企业数据中 ...

    2024-05-01
  • 长沙银行-Python集训营

    围绕“数据驱动”战略,全力打造我行 300 人数字化人才梯队,着力培养数字化管理人才、大数据专业团队 ...

    2024-05-01
  • 数据分析在业务中的三大应用场景

    在当今数据驱动的商业环境中,数据分析成为了企业决策的重要依据。通过对大量数据的收集、处理和分析,企业能够更好地理解市场 ...

    2024-04-29
  • AI提示词的使用方法详解及示例

    在人工智能(AI)的世界里,提示词(Prompt)是一种强大的工具,它能够引导AI按照用户的需求产生特定的输出。本文将深入探讨AI ...

    2024-04-29
  • CDA立足未来职场,拓展前沿视野

    CDA立足未来职场,拓展前沿视野——对外经贸大学保险学院举办“三全育人大讲堂”分享行业最新动态。 ...

    2024-04-29
  • CDA 塑造未来职涯:构筑未来职业发展的数字基石 ...

    4月2日,CDA数据分析师创始发起人兼协会理事长赵坚毅博士受邀在浙江万里学院举办了一场以“数字化能力在职场中的作用” ...

    2024-04-29
  • 随机森林(Random Forest)算法的优点和缺点都有哪 ...

    随机森林(Random Forests)现在机器学习中比较火的一个算法,是一种基于Bagging的集成学习方法,能够很好地处理分类和回归的问 ...

    2022-12-23
  • 方差分析的基本思想和原理是什么?

    方差分析是数据分析中常用的一种统计分析方法,接下来让我们简单了解一下方差分析的基本思想和原理吧。 方差分析(Analysis ...

    2022-12-23
  • 发现了一个好用到爆的数据分析利器

    来源:关于数据分析与可视化 关于streamlit-aggrid 数据排序 表格样式的调整 数据 ...

    2022-08-03
  • 自从搞懂了回调函数,我对Python的理解上了一个台阶 ...

    作者:麦叔 定义 「把上面晦涩的概念汇成一句话就是:」 ❝ 回调函数就是一个被作为参 ...

    2022-08-03
  • 2020在学硕士达300万,失去学历光环的新生代何去何 ...

    现今,高学历人群日益增多,物以稀为贵的高学历光环淡去。无论本科生还是研究生,甚至博士生,求职竞争力都大不如前,就业压力越来越大。

    2022-06-01
  • 缓解就业焦虑的利器,证书真的越多越有保障吗? ...

    某家企业10个人面试,有9个本科生……如何脱颖而出,除得体的举止和良好的沟通力外,证书成重要筹码,这也是很多人考证的关键所在。

    2022-04-14
客服在线
立即咨询

深圳SEO优化公司德阳关键词按天计费价格大庆网络营销价格咸阳营销型网站建设哪家好丹竹头seo网站优化金华网站建设设计哪家好龙华SEO按效果付费多少钱德阳企业网站改版公司鄂州SEO按效果付费哪家好辽源模板推广多少钱咸宁网站关键词优化报价黔西南网站优化肇庆建网站安庆百度网站优化排名推荐临夏网站推广方案推荐渭南企业网站建设烟台百姓网标王推广多少钱常德网站改版公司松岗seo优化多少钱南阳网站优化按天计费哪家好海南seo永州网站优化按天收费报价百色百姓网标王推广公司自贡SEO按效果付费哪家好罗湖网站排名优化推荐柳州百度关键词包年推广公司惠州阿里店铺运营价格淮北阿里店铺托管价格山南seo排名哪家好鄂州网站优化按天计费诸城百度网站优化推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化