机器学习-SVM算法

经常遇到或用到SVM算法,不过都是用的别人的代码,并没有深入的研究理解过。感觉很不应该,今天记录一下自己的感受和理解。
之前对SVM的理解就是将数据映射到高维空间从而找到最优的分割平面。
处理二维数据时,为一条分割线,三维时就是一个超平面。当维度上升,那就是寻找更高维的超平面。

二维空间 线性可分

这里写图片描述
如何确定哪条分割线是最优的?我们希望这条线把两类分的越开越好,也就是它离两类的距离都很大。
这里写图片描述
如图所示,被圈起来的点就是所说的支持向量support vector。
当我们确定了支持向量,那分割函数也就可以确定下来了。两边的支持向量到分割线的距离和为M=2/||w||,最大化该值就可以得到分割直线了。
这里写图片描述

求解该方程可以用拉格朗日乘子法将约束条件加入式中进行计算得到。

线性不可分

这里写图片描述
遇到线性不可分的情况时,我们需要在当某些数据被错误分类时,加入相应的惩罚项。当犯的错误越多,惩罚项越大,上面提到的公式最小化的过程就会受阻,所以相应的会对分类错误的进行调整。
这里写图片描述
蓝色的为惩罚项。C为该项的重要程度,当我们把这个值设置的很大,那么算法就会努力降低这一项,这就导致训练结果对于我们选定的这个样本集出现一个overfitting的情况,这是不好的。C的选取要多次试验得到。

核函数

这里写图片描述
这是一种需要向高维映射的情况。
到了一定的维度,两组数据总归能够分开的,因为他们毕竟不是同一组数据。也就是说他们总会在某一个维度上是不一样的可以分开的,图像处理时就是说总归存在某个特征,在这个特征上这两幅图像是不一样的。
核函数就是用来将数据映射到高位的函数。

ref:
LeftNotEasy-机器学习中的算法(2)-支持向量机(SVM)基础

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值