机器学习|支持向量机SVM(二)

640?wx_fmt=png

  Spark推荐系统,干货,心得 

  点击上方蓝字关注~

 

上一章节学习了支持向量机的预备知识,本章主要通过硬间隔(SVM其中一种类型)来学习支持向量机SVM原理。

支持向量机是用于解决二分类问题的分类算法,同样多个svm模型也可以解决多分类问题

 


目录

支持向量机分类

确定分割超平面

点到超平面距离公式

确定损失函数

求最优解

总结


支持向量机分类

1、线性可分支持向量机

硬间隔最大化

2、线性支持向量机

软间隔最大化

3、非线性支持向量机

核函数(升维)

640?wx_fmt=png

假设给定一个特征空间上的数据集

{(x1,y1),(x2,y2),(x3,y3)....(xn,yn)}其中

640?wx_fmt=png

x1表示第一条样本的特征,y1表示第一条样本的label

正例:+1  负例:-1


确定分割超平面

svm模型的判别表示式为 

640?wx_fmt=png

sign函数解释: y =sign(x)  若x>0,则y=1  若x<0,则y=-1 ,若x=0,则y=0

性质:不能概率化输出

    本质上是高维空间中找到一个超平面,使其分隔效果最好

那么对于线性可分问题,有无数个超平面可供选择,如何定义最好的超平面?

640?wx_fmt=png

从直观上可以看出第三个超平面最好

why?

假设未来拿到的数据含有一部分噪声,那么不同的线对于噪声的容忍度是不同的最右面的线是最robust(鲁棒性),因为离最近的点越远越好

或者说找到最胖的超平面

640?wx_fmt=png

所以需要找到一个超平面:

1.能够完美分类正负例

2.距离最近的点越远越好 -> 硬间隔越大越好

 

那么超平面怎么确定:

640?wx_fmt=png


距离公式

目标:能正确分类的平面中,距离超平面最近的点越远越好

margin =min( distance((Xi,Yi),wx+b) )

如何计算任意(xi,yi)到某平面w的距离

二维平面中点(xi,yi)到直线ax+by+c=0的距离为:

640?wx_fmt=png

高维空间中任意一个点X0其标签为y0,到某超平面的距离

640?wx_fmt=png

640?wx_fmt=png

称上式这个距离公式为某点到平面的几何距离

640?wx_fmt=png


确定loss损失函数

找到一组最好的w和b固定一个超平面,使这个超平面在能完美区分正负例的基础上,且距离最近的点间隔最大

转换为有约束的函数最优化问题就是

640?wx_fmt=png

令γ’= 1 则原最优化问题变为(如下loss损失函数,且存在m个不等式约束条件)

640?wx_fmt=png

约束条件表示:其他点到超平面的距离均大于支持向量到超平面的距离

再详细的推导一遍怎么通过最近点的最大间隔,确定loss损失并进行化简

640?wx_fmt=png

进行如下化简

640?wx_fmt=png


求最优解

整理对偶函数

640?wx_fmt=png

通常使用SMO算法进行求解,可以求得一组a(m个a)使得函数最优;

(由于SMO算法只用于求解该对偶函数的a,在机器学习中不常用,也较为复杂。暂没有详细去了解)

b的求解过程:

对于任意支撑向量(xs,ys代表支撑向量)到分隔超平面距离为单位距离1,代入到距离公式得到

640?wx_fmt=png

那么如何找到支撑向量?根据KKT条件

640?wx_fmt=png

在m个a中,若a>0,则得到

640?wx_fmt=png

这时候的xi 和yi 就是支撑向量。有了支持向量(1个或多个)和支持向量到分隔超平面的距离为1就可以求解b(如果是多个支撑向量,对所有的b取平均值)

640?wx_fmt=png


总结(硬间隔SVM)

640?wx_fmt=png

图书推荐:

推荐阅读:

机器学习|支持向量机SVM(一)

机器学习-线性回归(一)

机器学习-线性回归(二)

机器学习|梯度下降法

机器学习|逻辑回归

640?wx_fmt=jpeg

长按识别二维码关注我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值