开发者学堂课程【机器学习算法 :Svm 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7262
Svm 介绍
内容介绍
一、支持向量机
二、问题分析
三、超平面
四、间隔
一、支持向量机
1.支持向量机(Support Vector Machine,SVM):由 Vapnik 领导的 AT&T Bell 实验室研究小组在1995年提出的一种基于统计学习理论的模式识别的分类方法,主要应用于模式识别领域。拥有坚实的统计学理论基础,所谓“支持向量”是指那些在间隔区边缘的训练样本点,“机”是指算法。就是要找到具有最大间隔的分隔面,实际上解决的是一个最优分类器设计的问题。
2.假设有两类样本,我们去找一个分类平面将两类样本隔开,实际上有一些样本和分类平面比较接近,那这些样本会决定和分类平面是什么样式的。这些关键样本就是支持向量。其实这些样本集中真正能决定操平面位置及超平面方程的样本量是很少的。
3.例:在一个二维平面中,有红色正样本和蓝色负样本,这个例子是线性可分的例子,可以通过直线将这两类样本分开。分法有很多种,例如下图所示三条线。会有很多分类器,但哪一个分类器是最佳的分类器呢?
假设白色线是最佳分类器,但实际上,还可以画两条辅助虚线,这个虚线会穿过一些样本点,首先保证分类超平面中间的实线到两条虚线距离相等,假设实线到虚线距离叫 d。虚线到虚线的距离叫 margin,如果 margin 数值最大,是不是分类超平面效果最好?
4.实际上,SVM 就是通过 margin 间隔最大,去找分类超平面的过程。落在虚线上的点就是支持向量。虚线以及分类超平面都是由这几个支持向量所决定的。
5.分类超平面方程:w*x+b=0,将红色点带到超平面方程中结果大于等于正一,蓝色的点带到超平面方程中结果小于一,不是大于等于0,原因是支持向量机到分类操平面还有 margin 距离,支持向量到分类超平面距离 d,所以是1/-1而不是0,其实并没有本质区别,是为了后续方便计算。
二、问题分析
目的:找到一个最优的分类器,换言之,找到一个超平面,使得分类间隔最大。即 margin 最大。
优化的目标函数:分类间隔。需要使得分类间隔最大。
优化的对象:分类超平面(决策平面)。通过调整分类超平面的位置,使得间隔最大,实现优化目标。
三、超平面
超平面(Hyperplane)是 n 维欧氏空间中余维度等于1的线性子空间。二维空间中即为一条直线,三维空间中即为一个二维的平面。
n 维欧式空间中,那么他的分类超平面是n-1维的超平面方程,在二维空间中就变成一条直线 例:y=2x+7。变换成超平面的表达式写成一般的形式:2x1-x2+7=0,其中将 y 和 x 转换成 x1 和 x2 的方式来表达。
在三维空间中即为一个二维的平面表达式为:z=5x+6y+7,转换为一般形式为:5x1+6x2-x3+7=0
利用线性代数的知识改写表达式:将x前系数表达成列向量,系数分别为5、6、-1记成 w,将x1,x2,x3记成x,两个列向量。
四、间隔
间隔实际上是从支持向量对应的点到分类超平面的垂直距离的2倍,即有:W=2d
假设支持向量坐标为 A(x1a,x2a),用 d 表示支持向量到分类超平面的距离,但怎么求呢?将A点坐标带到分类超平面表达式中,再除以法向量的模。
现在要做的是,从所有的样本点中,找到合适的支持向量,在保证分类正确的前提下,让间隔 W=2d 最大。
保证分类正确:
(1)以红色为正类,有:
即将红色点坐标带到分类超平面方程中去,值要大于0,y结果是正1,
(2)以蓝色为负类,有:
即将蓝色点坐标带到分类超平面方程中去,值要小于0,y结果是负1
想判断样本点属于哪一类,就将样本点坐标带到分类超平面方程中去,根据结果是大于0还是小于0来判断正负类。