机器学习理论篇之SVM(python实现)

本文深入探讨了支持向量机(SVM)的理论,包括硬间隔和软间隔的概念。在硬间隔中,目标是找到最大间隔的超平面以无噪声地划分数据。而在软间隔中,考虑到现实世界中的噪声,通过引入损失函数来容忍一定程度的误分类。文章介绍了如何通过优化问题寻找最大几何间隔的超平面,并强调了支持向量在SVM中的关键作用。此外,还提供了SVM在Python中的实现思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVM就是试图寻找能将训练样本区分开的最优划分超平面,直观上我们可以看出H3才是做好的,到样本两边距离相等且最大,,这里的最好是划分的超平面对训练样本的“容忍性”最好。。。
在样本空间中,划分的超平面可以用如下方程来描述:
 W(T)x+b=0,
其中,w位法向量,决定里超平面的方向,b为位移项,决定了超平面与原点的距离。
我们这次使用的结果标签是y=-1,y=1,替换在logistic回归中使用的y=0和y=1。同时将替换成w和b。以前的,其中认为。现在我们替换为b,后面替换(即)。这样,我们让,进一步。也就是说除了y由y=0变为y=-1,只是标记不同外,别的与logistic回归的形式化表示没区别
    再明确下假设函数
    上面提到过我们只需考虑的正负问题,而不用关心g(z),因此我们这里将g(z)做一个简化,将其简单映射到y=-1和y=1上。映射关系如下:


样本空间中任意点x到超平面的(W,b)的距离可以写为:

clip_image070

参考:


那如何寻找超平面,确定w和b呢?答案是寻找两条边界端或极端划分直线中间的最大间隔(之所以要寻最大间隔是为了能更好的划分不同类的点。

Hard-margin:(无噪声点情况,硬分隔)

        如果训练数集是线性可分的,我们可以选择两个平行的线,来分开两个数据集,因此我们要确保,这两条平行线的距离尽可能的大,两条平行线组成的区域就是叫做Margin

我们可以定义分类函数:

显然,如果 f(x)=0 ,那么 x 是位于超平面上的点。我们不妨要求对于所有满足 f(x)<0 的点,其对应的 y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值