目录
扫描二维码关注公众号,回复:
10355708 查看本文章
一 算法概述
1 点到超平面的几何距离公式
注意:分母为点到超平面的函数距离
2 算法核心思想
- 第一点:在数据中找到一个超平面,让尽可能多的数据分布在超平面两侧
- 第二点:距离超平面比较近的点近可能的远离这个超平面
注意:第一点感知器模型也可以做到,但是第二点才是SVM算法的最核心思想
3 算法中几个重要概念
1)线性可分
可以在数据中找到一个超平面将尽可能多的数据二元分开(目标属性标记+1或者-1)
2)线性不可分
无法在数据中找到一个超平面将尽可能多的数据二元分开
注意:但是可以通过低维映射高维空间,使之成为线性可分
3)间隔
样本距离超平面的距离
4)划分超平面
将数据划分开的超平面
5)支持向量
一般认为是距离超平面最近的样本(默认函数距离为1)
二 算法理论
1 线性可分SVM
1)硬间隔SVM算法流程
注意:硬间隔要求样本到分割超平面的函数距离大于等于1,对于异常数据很敏感
第一步:假定条件(超平面、支持向量、支持向量距离)
- 第一点:超平面
- 第二点:支持向量
- 第三点:支持向量的间隔
第二步:目标函数
第三步:对于有条件约束的目标函数采用泛拉格朗日乘子法进行凸优化
- 第一点:构建泛拉格朗日函数(泛拉格朗日乘子),并将原始问题转化为对偶问题
- 第二点:
- 第三点:
第四步:使用SMO算法得到最优解
第五步:根据关系以及支持向量集合(S个),更新
第六步:构建最终分类器
2)软间隔SVM算法流程
注意:软间隔要求每个样本都引入松弛因子,使得样本的函数距离加上松弛因子之后大于等于1,样本的函数距离要求放松了,对异常样本敏感度下降
第一步:假定条件(超平面、支持向量、支持向量距离、松弛因子、惩罚项)
- 第一点:超平面
- 第二点:支持向量(松弛因子)
- 第三点:支持向量的间隔
- 第四点:松弛因子
松弛因子越大,意味者样本的函数距离越小(越接近超平面,甚至越过超平面),但是过大的松弛因子会导致分类错误可能性上升,松弛因子的引入是有代价的,需要对其进行惩罚
- 第五点:惩罚项
对松弛因子进行L1惩罚,加入惩罚系数C(超参C>0)
第二步:目标函数
第三步:对于有条件约束的目标函数采用泛拉格朗日乘子法进行凸优化
- 第一点:构建泛拉格朗日函数(泛拉格朗日乘子),并将原始问题转化为对偶问题
- 第二点:
- 第三点:
第四步:使用SMO算法得到最优解
第五步:根据关系以及支持向量集合(S个),更新
注意:支持向量满足如下关系推导
第六步:构建最终分类器