|
|
|
|
移动端

2.1 算法原理

《大数据分析:数据挖掘必备算法示例详解》第2章SVM 算法,本书详细介绍了大数据分析,尤其是数据分类相关算法的原理及实现 细节,并给出了每个算法的编程实例。本节为大家介绍算法原理。

作者:张重生来源:机械工业出版社|2017-12-13 17:32

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


第2章 SVM 算法

2.1 算法原理

Vapnik早在 20世纪 60年代就提出了 SVM算法[1,2]的原理,但是直到 1992~1993年他移民美国之后这篇论文才公开在全世界范围内投稿 /发表。该论文在 1995年之前曾经一度被机器学习领域的著名期刊拒绝录用。后来,Vapnik等增加了手写识别的应用,最后,该论文直到 1995年才被著名期刊 《MachineLearning》接收并正式发表。

下面给出 SVM算法原理的推导。在图 2-1中,令 f(x,y)=y-wx-b=0。该直线上方的数据点为健康人士,下方的数据点为糖尿病患者。将 f(x,y)向上、向下各平移一个单位,分别得到两条新直线 g(x,y)和 h(x,y),则这两条直线的方程分别为:

g(x,y)=f(x,y)+1=y-wx-b-1=0

h(x,y)=f(x,y)-1=y-wx-b+1=0

即,g(x,y)表示的是 f(x,y)=1;h(x,y)表示的是 f(x,y)=-1。而且,g(x,y)上方的数据
点均满足 f(x,y)>=1;h(x,y)下方的数据点均满足 f(x,y)<=-1。

g(x,y)与 h(x,y)两条直线之间的垂直距离为:

SVM的目标是将上述两条直线之间的距离dis最宽(最大化)。而将dis最大化,等价地,就是将1+w22 最小化。同时,需要满足如下限制条件:直线g(x,y)上方的数据点均满足f(x,y)>=1;直线h(x,y)下方的数据点均满足f(x,y)<=-1。

然后,引入拉格朗日函数和对偶变量βi解决上述最优化问题。并代入各个数据点的坐标,求解各βi变量。进而求解数据分类的最佳直线方程。

将上述每个数据点都增加一个维度1,得到6个点:

p是一个三行一列的向量(列向量)。p向量的这三个值分别表示直线ax+cy+b=0的三个系数a,c,b。根据系数a,c,b,可以求解直线方程ax+cy+b=0,该直线即为对应数据进行分类的最佳直线方程。

当数据是线性不可分的情形时,如图2-3所示:

此时,需要对数据进行映射,在图2-3的例子中,可以将圆弧上的数据点(其坐标满足x2+y2=4) 进行映射:

映射后的数据点,满足线性可分。此时,就可使用上面的技术,求解数据分类的最佳直线方程。

这里,就引入了SVM的核函数,科学家们设计了多种SVM核函数,如高斯核。这些核函数将数据点进行映射,将原始数据点映射为线性可分的数据点。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码

 

51CTO读书频道活动讨论群:365934973
【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

软件工程:实践者的研究方法

20多年以来,《软件工程:实践者的研究方法》一书是最受学生和行业专业人员欢迎的软件工程指南。它在全面而系统、概括而清晰地介绍软件工程...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊