matlab的支持向量机SVM怎么用

这篇文章主要介绍“matlab的支持向量机SVM怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“matlab的支持向量机SVM怎么用”文章能帮助大家解决问题。

创新互联服务项目包括西工网站建设、西工网站制作、西工网页制作以及西工网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,西工网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到西工省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

支持向量机(Support Vector Machine)名字听起来很炫,功能也很炫,但公式理解起来却有眩晕感。所以不用公式来说明SVM的原理,理解SVM有四个关键名词:分离超平面、最大边缘超平面、软边缘、核函数。

分离超平面(separating hyperplane):处理分类问题的时候需要一个决策边界,好象楚河汉界一样,在界这边我们判别A,在界那边我们判别B。这种决策边界将两类事物相分离,而线性的决策边界就是分离超平面。

最大边缘超平面(Maximal Margin Hyperplane):分离超平面可以有很多个,怎么找最好的那个呢,SVM的作法是找一个“最中间”的。换句话说,就是这个平面要尽量和两边保持距离,以留足余量,减小泛化误差,保证稳健性。或者用中国人的话讲叫做“执中”。以江河为国界的时候,就是以航道中心线为界,这个就是最大边缘超平面的体现。在数学上找到这个最大边缘超平面的方法是一个二次规划问题。

软边缘(Soft Margin):但世界上没这么美的事,很多情况下都是“你中有我,我中有你”的混杂状态。不大可能用一个平面完美的分离两个类别。在线性不可分情况下就要考虑软边缘了。软边缘可以破例允许个别样本跑到其它类别的地盘上去。但要使用参数来权衡两端,一个是要保持最大边缘的分离,另一个要使这种破例不能太离谱。这种参数就是对错误分类的惩罚程度C。

核函数(Kernel Function),为了解决完美分离的问题,SVM还提出一种思路,就是将原始数据映射到高维空间中去,直觉上可以感觉高维空间中的数据变的稀疏,有利于“分清敌我”。那么映射的方法就是使用“核函数”。如果这种“核技术”选择得当,高维空间中的数据就变得容易线性分离了。而且可以证明,总是存在一种核函数能将数据集映射成可分离的高维数据。看到这里各位不要过于兴奋,映射到高维空间中并非是有百利而无一害的。维数过高的害处就是会出现过度拟合。

所以选择合适的核函数以及软边缘参数C就是训练SVM的重要因素。一般来讲,核函数越复杂,模型越偏向于拟合过度。在参数C方面,它可以看作是LASSO算法中的lambda的倒数,C越大模型越偏向于拟合过度,反之则拟合不足。实际问题中怎么选呢?用人类最古老的办法,试错。

常用的核函数有如下种类:

Linear:使用它的话就成为线性向量机,效果基本等价于Logistic回归。但它可以处理变量极多的情况,例如文本挖掘。

polynomial:多项式核函数,适用于图像处理问题。

Radial basis,高斯核函数,最流行易用的选择。参数包括了sigma,其值若设置过小,会有过度拟合出现。

sigmoid:反曲核函数,多用于神经网络的激活函数。

最后分别解释“支持向量”和“机”

(1) “机” —— Classification Machine,分类器。

(2) “支持向量” —— 在maximum margin上的这些点就叫支持向量,最后的classification machine的表达式里只含这些“支持向量”的信息

%% 去除花萼的长度、宽度和其中一种鸢尾花

load fisheriris

inds = ~strcmp(species,'setosa');

X = meas(inds,3:4);

y = species(inds);

%% 使用处理后的数据集训练SVM分类器

SVMModel = fitcsvm(X,y);

% 显示类别

disp(SVMModel.ClassNames)

%% 绘制数据的散点图并圈出支持向量

sv = SVMModel.SupportVectors;

figure

gscatter(X(:,1),X(:,2),y)

hold on

plot(sv(:,1),sv(:,2),'ko','MarkerSize',10)

legend('versicolor','virginica','Support Vector')

hold off

matlab的支持向量机SVM怎么用  

使用的数据为MATLAB自带鸢尾花样本

关于“matlab的支持向量机SVM怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。


网页标题:matlab的支持向量机SVM怎么用
链接分享:http://csdahua.cn/article/jhehcd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流