Spark推荐系统,干货,心得
点击上方蓝字关注~
上一章节通过线性可分-硬间隔了解了SVM基本原理,线性可分SVM中要求数据必须是线性可分的,才可以找到分类的超平面,但是有的时候线性数据集中存在少量的异常点,由于这些异常点导致了数据集不能够线性划分;直白来讲就是:正常数据本身是线性可分的,但是由于存在异常点数据,导致数据集不能够线性可分,可通过软间隔SVM进行处理。
目录
1、硬间隔SVM
2、引入松弛变量-软间隔
3、软间隔目标函数
4、分析软间隔问题的支持向量
5、软间隔模型算法流程
6、SVM的软间隔模型总结
01 硬间隔SVM
对于之前讲述的线性可分SVM可通过构造超平面令硬间隔最大化,从而求得最好的分隔超平面
条件:
1.正负例完美分开(体现在约束条件>=1上)
2.找到能使间隔最大化的点(有约束条件的函数优化问题)
如果数据集线性不可分,意味着找不到一个合格的超平面
体现在优化问题上,任何的w和b都无法满足优化条件
02 引入松弛变量-软间隔
对于之前的问题,硬间隔不可分,体现在满足不了约束条件上,于是提出松弛变量ξi>=0(每个数据点自己有一个ξi)
我们将约束条件放松为: yi(w·xi+b) >= 1 - ξi
这样就至少肯定有好多的w和b满足条件了,但是这相当于没有约束条件了,只要ξi 无穷大,那么所有的w和b都满足条件
ξ代表异常点嵌入间隔面的深度,我们要在能选出来符合约束条件的最好的w和b的同时,让嵌入间隔面的总深度越少越好
03 线性不可分支持向量机的目标函数
经过上面的论述,定义线性支持向量机的目标函数最优化问题如下:
目标函数的优化
1.根据f(x)和约束条件构造拉格朗日函数:
其中要求μi和αi >= 0
2.优化原始问题
3.对偶问题
先求L函数对w,b,ξ的极小值,再求其对α和μ的极大值
对三个参数分别求偏导得到
将求偏导结果反带回去拉格朗日函数得:
所以目标函数变为:
由于目标函数中并没有出现C,可将约束条件2,3,4项合并
最终优化后的目标函数/损失函数和线性可分SVM(硬间隔)模型基本一样,除了约束条件不同而已,也就是说可以使用SMO算法来求解。
04 分析软间隔问题的支持向量
αi=0 该点为分类正确的点
0<αi<C 该点为软边界上的点
αi=C 该点嵌入了软边界内
此时如果ξ<1,该点被正确分类
此时如果ξ=1,该点刚好落在超平面上 此时如果ξ>1,该点被错误分类
05 SVM的软间隔模型算法流程
输入线性可分的m个样本数据{(x1 ,y1 ),(x2 ,y2 ),...,(xm ,ym )},其中x为n维的特征向量,y为二元输出,取值为+1或者-1;SVM模型输出为参数w、b以及分类决策函数
1.选择一个惩罚系数C>0,构造约束优化问题
2.使用SMO算法求出上式优化中对应的最优解α
3.计算w
4.找到全部的支持向量,计算出 bs
5.根据所有的bs的平均值得到最终的b
6.构建最终的分类器,进行二分类
06 SVM的软间隔模型总结
1.可以解决线性数据中携带异常点的分类模型构建的问题
2.通过引入惩罚项系数(松弛因子),可以增加模型的泛化能力,即鲁棒性
3.如果给定的惩罚项系数越小,表示在模型构建的时候,就允许存在越多的分类错误的样本,也就是表示此时模型的准确率会比较低;如果惩罚项系数越大,表示在模型构建的时候,就越不允许存在分类错误的样本,也就是表示此时模型的准确率会比较高
往期精选
机器学习-线性回归(一)
长按识别二维码关注我