目录:
- 支持向量机概述
- 线性支持向量机
- SMO算法及其python实现
- 核方法
- 非线性支持向量机
支持向量机概述:
支持向量机是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器;支持向量机还包括核技巧,这使其可以用来解决非线性分类问题。支持向量机的学习策略是间隔最大化,可形式化为一个凸二次规划求解问题,求解凸二次规划的最优化算法就是支持向量机的学习算法,序列最小优化算法SMO常用于实现支持向量机模型
- 优点:泛化错误率低,计算开销较小,结果易解释
- 缺点:对参数调节和核函数选择敏感,原始分类器不加修改仅适用于二类分类问题
- 适用数据类型:数值型和标称型数据
线性支持向量机:
在样本空间,分隔超平面可以通过线性方程来表示:
支持向量:在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的数据点称为支持向量。假设超平面(w,b)能将样本正确分类,即对于样本点(xi,yi)满足以下关系:
满足的样本点即是支持向量。
间隔:两个异类支持向量点到分隔面的距离:
最大间隔法:如果样本点离决策界面越远,则分隔超平面的分类结果更好,支持向量就是离分隔超平面最近的样本点,最大化间隔等效于最大化支持向量到分隔面的距离。
对偶问题:等价于最小化
,使用
拉格朗日乘数法,对每条约束添加拉格朗日乘子,列写出其拉格朗日函数,推导过程:
并对其中分量求偏导,使其全为0:
然后消去w和b:
求
对
的极大,即是其对偶问题:
,
,
解出后,求出w和b即可得到分隔超平面的表达式:
上述需要满足KKT(karush-kuhn-tucker)条件:
由拉格朗日乘数法求L的极小值限制
由支持向量的性质决定
因为样本点总有
或者
,如果
,则该样本点是一个支持向量;如果
,则该样本点对分隔超平面的求解无影响。