SVM支持向量机

SVM支持向量机

可以做分类(经典的二分类问题)也可以做回归

 

如上图,不能找到一个边界将×和○分开?可以使用核函数,将数据映射到高维进行分割

边界都必须是直线吗?可以是直线也可以是平面‘

无论选哪一个决策面,支持向量(雷区点)都不会改变(作垂线可以很清楚的发现),从而就涉及到下面的第一步,找点

 

决策边界:是中间的那条实线,不是雷区边界线

选择的决策边界是②

 

距离公式

点为x,平面为wx+b=0,平面的发向量为w

乘单位向量

在变量i的情况下,点到决策面的距离越小越好(选点的时候,只拿一个边界,但是拿了多个点)。当确定了i,即支持向量确定后后,在变量w,b的情况下,距离越大越好(选边界的时候,只拿了一个点,但拿了多个边界)

距离表达式中的绝对值可以直接去掉,只需要乘yi即可

 

SVM中正例为1,负例为-1,区别于LR中的1和0,这样的目的是方便化简

w为权重参数,b为偏置参数,x表示数据

通过决策方程值来判断正例还是负例,将数据点带入方程

找到一个决策边界使离边界最近的点到边界的距离最远

距离表达式中本来没有yi,为了去掉绝对值乘yi(yi值为1或-1)

xi表示数据,yi表示标签

 

目标函数

放缩变换:通过放缩,即乘上某个系数,总能是电到决策面的距离>=1

优化目标:选点(对xi)选面(对w,b)

①先找点:求点xi到所有决策边界的距离。

②再找面:根据找出的点,求出所有点到决策边界的距离,选择距离最大时决策边界对应的w,b两个参数(如上图,先选出黑色点,根据黑色点应该选出 红色边界)

放缩的目的:在求min时,不能让最小值为0。放缩后最小值取1,直接把求距离部分去掉

求解任何实际问题首先要找到目标函数,这里的目标函数是没有加约束条件的目标函数。带约束条件求极值方法使用的拉格朗日乘子法。

求最大值转化为求最小值(常规套路求最小)。模去掉转化为平方。为了求导方便加上系数1/2,这不影响求最小值

求w

接下来就是对式子求偏导

对偶出现在SVM中,求带约束条件的最小值

求λ

将所求w带入目标函数L中进一步求解λ

 

实例:根据这三个点怎么求出解决策边界

 

没有满足条件的解,则一定在边界上,α存在0

计算时只选择到边界上的点,边界外的点对应的α全为0

 

支持向量机中支持向量含义:点x1,x2将平面支持起来的,与其它点无关,即决策边界

只要决策边界上的点不变,在边界外加入任意数据点,决策边界不改变

 

软间隔:因为存在噪声点/离群点

表达式能脱口而出:y乘yi要大于等于1减松弛因子,yi表示将数据点带入决策边界的值

如果存在离群点,可能会将决策边界确定为图中的实线。为了避开这个特殊点的影响,使决策边界还是虚线,就可以引入松弛因子

之前的数据乘标签必须满足大于1,这个标准太严格了,现在引入松弛因子(用1减去松弛因子)

 

目标函数越小越好(给出了C值对目标函数的影响)

C惩罚因子,ξ为松弛因子。C就是配合松弛因子来使用的,便于调节隔离带的宽度,所以就引入了C

目标函数需要记清楚,不然怎么判断C对模型的影响

C越大,但要求目标函数越小,因此只能要求ξ尽可能小了,这样没松弛也就是更加严格了

C越大,要求严格,泛化能力也弱一些

到底C大好还是C小好,通过交叉验证来选C值(经验值不靠谱)

面试时问到就直接说通过交叉验证选择参数,再把训练集分成三份

SVM出现线性不可分的情况:

第一种方法当然是:引入松弛因子

第二种方法:引入核函数

核函数:低维不可分的,通过核函数弄一个层次感出来

Φ:通过某一函数关系进行维度映射

没有真正的把数据映射到高维,实际是在低维中计算的再映射到高维(两种计算结果相等)

想象映射到高维空间

这里的线性核函数还是没有把数据点分开

rbf/高斯核函数

cluster簇

 

C和γ对决策边界的影响

惩罚因子C对决策边界的隔离带宽度有影响,γ对决策边界的复杂程度也有影响

越复杂的边界,泛化能力越低

泛化能力越强越有实用价值,选右边的模型

 

人脸分类实例

sklearn中包含人脸数据集

图像数据:图像中每个位置都是一个像素点,每个点对应一个值。每个点都可以当做一个特征

PCA降维

分类结果对应的混淆矩阵:对角线上的数值表示分类正确的个数

纵轴最上面的名字和横轴第一个名字相同

 

手推过程

拉格朗日方程的构造规则是:用约束方程乘以非负的拉格朗日系数,然后再从目标函数中减去(这就决定了构造函数时,中的符号为负)

参考链接:https://blog.csdn.net/american199062/article/details/51322852

不懂为什么是取最小最大

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值