SVM
一、基本知识
1、分隔超平面(separating hyperplane)
分隔超平面,也就是分类的决策边界,分布在超平面一侧的所有数据点属于某个类别,而分布在另一侧的数据属于另一个类别
2、间隔(margin)
数据点到超平面的距离
(1)函数间隔
用z标记:z=0时,是超平面上的点; 如果z>0,则为正类;如果z<0,则为负类
y:类标签
为什么乘上类标签?因为y的值为+1或者-1,所以只要是非超平面上的点,均能保证函数间隔是一个正值
函数间隔存在一个问题:如果成比例的改变w和b的值,比如w和b均变成了原来的2倍,超平面还是原来的超平面,但是函数间隔却变为了原来的2倍
(2)几何间隔
几何间隔便是我们直观上点到超平面的距离,假设一个二维平面,则点到直线的距离为:
3、支持向量(support vector)
支持向量就是离分隔超平面最近的那些点
4、支持向量机的任务?
找到“最适合”的超平面:数据点到超平面的距离最大,即具有最大间隔的超平面
间隔越大,分类的确信度越大,为什么呢?如果间隔大,则说明两类之间的区别大,所以再出现一个数据点的话,正确分类的可能性就相对较高
5、最大间隔
(1)目标函数:
(2)约束条件
即,我们要找到这样一个超平面,使得数据点与超平面的间隔最大,这些数据点就是我们所说的支持向量,同时需要满足一个约束条件,就是使得这些支持向量以外的数据点与超平面的距离都 大于,即此问题可以看做是一个带约束的优化问题
6、如何解决带约束的最优化问题?
(1)如果约束条件为等式,则采用拉格朗日乘子法
(2)如果约束条件为不等式,则采用KKT条件,KKT条件可以看做是对拉格朗日乘子法的泛化
7、线性可分与线性不可分
线性可分:可以用一个超平面将数据一分为二
线性不可分:无法用一个超平面将数据一分为二
二、线性可分的支持向量机
为了方便后续的推导,设置函数间隔为1,则目标函数化为:
优化问题:
---->
拉格朗日乘子法: