支持向量机
支持向量机(SVM)
支持向量机是一种用于分类的算法。如果数据是线性可分的,只需要将直线放置在让点距离平面距离最大的位置,寻找这个最大间隔的过程叫做最优化;如果数据不是线性可分的,需要用核函数改变维度,用超平面做分类……
线性SVM
如图,数据显然是线性可分的,这些将它们分类的直线称为决策面,每个决策面对应一个线性分类器。但是将它们分开的直线显然不止一条。目前
图中虚线的位置由决策面的方向和距离决策面最近的几个样本位置决定,虚线穿过的样本点称为支持向量,中间的部分是分类间隔。具有最大间隔的决策面就是SVM要找的最优解。
数学建模
- 目标函数:希望使得什么指标最好,即分类间隔
- 优化对象:可以改变的影响因素,即决策面
优化对象(决策面)
在二维空间中,一条直线可以表示为
目标函数(分类间隔)
分类间隔的大小是支持向量的样本点到决策面距离的二倍,二维平面中,点到直线的距离公式是
约束条件
- 判断决策面将样本点正确分类
- 选出支持向量上的点
图中有两类点,分别对它们做标记,蓝色的标记为
两边同除
最终最优化问题的建模为
最优化问题
Lagrange乘数法
Lagrange乘数法
- 等式约束优化问题
令
,函数 称为 函数, 为 乘子 其中 和 均为优化变量。
- 不等式约束优化问题
上一部分得出的优化问题的约束条件是一个不等式,现在需要引入松弛变量,将其转化为等式约束条件,同时松弛变量也是一个优化变量。
原优化问题
并得到
此时最优化问题转化为
对偶性
最大的里面挑出个最小的比最小的里面的最大的大~
当等号成立时满足强对偶关系,
SVM最优化流程
目标函数与约束条件:
SMO算法
由
,选择 和 ,设 ,其中 ,由此得出
此时,相当于将问题转化为只有一个约束条件
再由
对于验证集的点,带入决策函数即可得到其分类。
未完待续……