SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

x_1

x1​,

x

2

x_2

x2​,

x

3

x_3

x3​,…

x

n

x_n

xn​。y 的取值只能有+1和-1.

欲将这些样本分为二类,则需要找到中间的超平面。该超平面表示为:

ω

T

x

b

=

0

\omega^Tx + b = 0

ωTx+b=0

其中

ω

\omega

ω 称为法向量,其决定了超平面的方向。

点到超平面的距离可以表示为

r

i

=

ω

T

x

i

b

ω

r_i = \frac{|\omega^Tx_i + b |}{||\omega||}

ri​=∣∣ω∣∣∣ωTxi​+b∣​

这里的

x

i

x_i

xi​指的不再是超平面上的点,而是样本点的向量。

以二维的情况中点与线的关系为例进行说明,假设有一个点 点A(m,n) 和一条线ax+by+c=0,则当点在线上时,直线的等号会刚好成立。当点分布于直线的两侧时,分别可写作am+bn+c>0,am+bn+c<0。多维情况下,也是同理。

再结合点到超平面的距离公式,

r

i

r_i

ri​也可以写为:

r

i

=

ω

T

x

i

b

ω

y

i

r_i =\frac{\omega^Tx_i + b}{||\omega||}y_i

ri​=∣∣ω∣∣ωTxi​+b​yi​

其中,位于超平面

ω

T

x

i

b

=

0

\omega^Tx_i + b = 0

ωTxi​+b=0 左右的标签对应的y_i的正负不要设定反了,只有设定正确该公式才可以保证得到正值。不然的话保证得到的就会是负值。

然后就是要寻找 支持向量。支持向量是距离超平面最近的点的向量,分布在超平面的两边,所以这样的点至少有两个,即支持向量至少有两个。(至少左右各一个)。

我们下一步要做的,即:求

r

i

r_i

ri​关于

x

i

x_i

xi​的极小值,再求该极小值关于

ω

\omega

ω和

b

b

b的极大值。

对该距离公式的分子,

ω

T

x

i

b

\omega^Tx_i + b

ωTxi​+b,即超平面的方程

ω

T

x

b

=

0

\omega^Tx + b = 0

ωTx+b=0 的一部分,考虑到超平立面的方程,就像二维的直线方程一样是可以放缩的(登号两边同乘以一个数),因此可以通过放缩,使得

ω

T

x

i

b

=

1

\omega^Tx_i + b =1

ωTxi​+b=1成立。以此作为限制条件,这样就可以把分母消去了。

该约束条件可表示为

r

i

=

ω

T

x

i

b

ω

y

i

1

ω

r_i =\frac{\omega^Tx_i + b}{||\omega||}y_i≥\frac{1}{||\omega||}

ri​=∣∣ω∣∣ωTxi​+b​yi​≥∣∣ω∣∣1​

提示:这里的限制条件只用了一个表达式表示,实际上有m个(m也是样本点的个数)。每个样本点对应一个限制条件。
当且仅目标当样本

x

i

x_i

xi​为支持向量时,等号成立,取得点到超平面的最小距离

1

ω

\frac{1}{||\omega||}

∣∣ω∣∣1​。

目标函数,即点到超平面的最小距离

1

ω

\frac{1}{||\omega||}

∣∣ω∣∣1​。要使该最小距离最大化,即

ω

||\omega||

∣∣ω∣∣最小,为了后边计算方便,进一步将研究问题及表达式转化为,求

1

2

ω

2

\frac{1}{2}||\omega||^2

21​∣∣ω∣∣2关于

ω

\omega

ω和

b

b

b的最小值。
目标函数即:

m

i

n

ω

,

b

1

2

ω

2

min_{\omega,b}\frac{1}{2}||\omega||^2

minω,b​21​∣∣ω∣∣2

进一步,限制条件可再转化为:

(

ω

T

x

i

b

)

y

i

1

0

(\omega^Tx_i + b)y_i-1 ≥ 0

(ωTxi​+b)yi​−1≥0


2.2 Part2 SVM拉格朗日乘子法求解

现在我们已经得到了目标函数表达式与限制条件的表达式,可以使用拉格朗日乘子法对其进行求解。
构建拉格朗日函数表达式如下:

L

(

ω

,

b

,

λ

)

=

1

2

ω

2

i

=

1

m

λ

i

[

1

(

ω

T

x

i

b

)

y

i

]

L(\omega,b,\lambda)=\frac{1}{2}||\omega||2+\sum_{i=1}{m}{\lambda_i}{[1-(\omega^Tx_i+b)y_i]}

L(ω,b,λ)=21​∣∣ω∣∣2+∑i=1m​λi​[1−(ωTxi​+b)yi​]

=

1

2

ω

T

ω

i

=

1

m

λ

i

[

1

(

ω

T

x

i

b

)

y

i

]

=\frac{1}{2}\omega^T \omega+\sum_{i=1}{m}{\lambda_i}{[1-(\omegaTx_i+b)y_i]}

=21​ωTω+∑i=1m​λi​[1−(ωTxi​+b)yi​]

目标问题是一个凸二次规划问题:目标函数是二次型函数,且约束函数是仿射函数。所以该问题有全局最小值。

其中,

λ

\lambda

λ是拉格朗日乘子,这里的m是样本的个数,每个样本对应一个拉格朗日算子,共计m个拉格朗日算子,对应m个限制条件。

F

(

ω

,

b

,

λ

)

对F(\omega,b,\lambda)

对F(ω,b,λ)求关于

ω

\omega

ω 和

b

b

b的偏导,并令其为0,再求解:

L

(

ω

,

b

,

λ

)

ω

=

ω

i

=

1

m

λ

i

y

i

x

i

=

0

\frac{∂L(\omega,b,\lambda)}{∂\omega}=\omega-\sum_{i=1}^{m}\lambda_iy_ix_i=0

∂ω∂L(ω,b,λ)​=ω−∑i=1m​λi​yi​xi​=0

L

(

ω

,

b

,

λ

)

b

=

i

=

1

m

λ

i

y

i

=

0

\frac{∂L(\omega,b,\lambda)}{∂b}=-\sum_{i=1}^{m}\lambda_iy_i=0

∂b∂L(ω,b,λ)​=−∑i=1m​λi​yi​=0

解得

ω

=

i

=

1

m

λ

i

y

i

x

i

\omega=\sum_{i=1}^{m}\lambda_iy_ix_i

ω=∑i=1m​λi​yi​xi​

0

=

i

=

1

m

λ

i

y

i

0=\sum_{i=1}^{m}\lambda_iy_i

0=∑i=1m​λi​yi​

将求解结果带回原

L

(

ω

,

b

,

λ

)

L(\omega,b,\lambda)

L(ω,b,λ),并进一步化简得:

L

(

ω

,

b

,

λ

)

=

1

2

ω

T

ω

i

=

1

m

λ

i

ω

T

i

=

1

m

λ

i

y

i

x

i

b

i

=

1

m

λ

i

y

i

L(\omega,b,\lambda)=\frac{1}{2}\omega^T \omega+\sum_{i=1}^{m}\lambda_i -\omegaT\sum_{i=1}{m}\lambda_iy_ix_i-b\sum_{i=1}^{m}\lambda_iy_i

L(ω,b,λ)=21​ωTω+∑i=1m​λi​−ωT∑i=1m​λi​yi​xi​−b∑i=1m​λi​yi​

=

i

=

1

m

λ

i

1

2

ω

T

ω

=\sum_{i=1}{m}\lambda_i-\frac{1}{2}\omegaT\omega

=∑i=1m​λi​−21​ωTω

=

i

=

1

m

λ

i

1

2

(

i

=

1

m

λ

i

y

i

x

i

)

T

(

i

=

1

m

λ

i

y

i

x

i

)

=\sum_{i=1}^{m}\lambda_i - \frac{1}{2}( \sum_{i=1}{m}\lambda_iy_ix_i)T (\sum_{i=1}^{m}\lambda_iy_ix_i)

=∑i=1m​λi​−21​(∑i=1m​λi​yi​xi​)T(∑i=1m​λi​yi​xi​)

=

i

=

1

m

λ

i

1

2

i

=

1

m

j

=

1

m

λ

i

λ

j

y

i

y

j

x

i

T

x

j

=\sum_{i=1}{m}\lambda_i-\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j

=∑i=1m​λi​−21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​

上边已经说到,将这两个表达式带入

L

(

ω

,

b

,

λ

)

L(\omega,b,\lambda)

L(ω,b,λ)后,我们得到的新的表达式中已经没有了

ω

\omega

ω和

b

b

b,只剩下的参数为

λ

\lambda

λ,这个新表达式的限制条件即为我们带入的两个式子,这两个式子表示该表达式关于

ω

\omega

ω和

b

b

b的极小值。

进而求关于

λ

\lambda

λ的极值,到此要求解的函数已经转化为:

i

=

1

m

λ

i

1

2

i

=

1

m

j

=

1

m

λ

i

λ

j

y

i

y

j

x

i

T

x

j

\sum_{i=1}{m}\lambda_i-\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j

∑i=1m​λi​−21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​

要求解的是该式关于

λ

\lambda

λ的极大值,所以也即求解

1

2

i

=

1

m

j

=

1

m

λ

i

λ

j

y

i

y

j

x

i

T

x

j

i

=

1

m

λ

i

\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j-\sum_{i=1}{m}\lambda_i

21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​−∑i=1m​λi​

的极小值。

限制条件为:

s

.

t

.

s.t.

s.t.

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0

λ

i

0

\lambda_i≥0

λi​≥0, i=1,2,…,m


2.3 Part3 求解超平面

目标函数:

m

i

n

ω

,

b

min_{\omega,b}

minω,b​

1

2

i

=

1

m

j

=

1

m

λ

i

λ

j

y

i

y

j

x

i

T

x

j

i

=

1

m

λ

i

\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j-\sum_{i=1}{m}\lambda_i

21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​−∑i=1m​λi​

限制条件:

s

.

t

.

s.t.

s.t.

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0

λ

i

0

\lambda_i≥0

λi​≥0, i=1,2,…,m

然后接下来,不难发现这是一个二次规划问题,将每个样本点的

x

i

x_i

xi​、

y

i

y_i

yi​替换为样本值数字,然后求目标函数关于

λ

1

\lambda_1

λ1​,

λ

2

\lambda_2

λ2​,… ,

λ

n

\lambda_n

λn​的偏导数,并令其等于0,从而得到m个等式,联立这 m 个等式,以及

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0进行求解。理论上即可以求出

λ

1

\lambda_1

λ1​,

λ

2

\lambda_2

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

i

T

x

j

i

=

1

m

λ

i

\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j-\sum_{i=1}{m}\lambda_i

21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​−∑i=1m​λi​

的极小值。

限制条件为:

s

.

t

.

s.t.

s.t.

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0

λ

i

0

\lambda_i≥0

λi​≥0, i=1,2,…,m


2.3 Part3 求解超平面

目标函数:

m

i

n

ω

,

b

min_{\omega,b}

minω,b​

1

2

i

=

1

m

j

=

1

m

λ

i

λ

j

y

i

y

j

x

i

T

x

j

i

=

1

m

λ

i

\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}{m}\lambda_i\lambda_jy_iy_jx_iTx_j-\sum_{i=1}{m}\lambda_i

21​∑i=1m​∑j=1m​λi​λj​yi​yj​xiT​xj​−∑i=1m​λi​

限制条件:

s

.

t

.

s.t.

s.t.

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0

λ

i

0

\lambda_i≥0

λi​≥0, i=1,2,…,m

然后接下来,不难发现这是一个二次规划问题,将每个样本点的

x

i

x_i

xi​、

y

i

y_i

yi​替换为样本值数字,然后求目标函数关于

λ

1

\lambda_1

λ1​,

λ

2

\lambda_2

λ2​,… ,

λ

n

\lambda_n

λn​的偏导数,并令其等于0,从而得到m个等式,联立这 m 个等式,以及

i

=

1

m

λ

i

y

i

=

0

\sum_{i=1}^{m}\lambda_iy_i=0

∑i=1m​λi​yi​=0进行求解。理论上即可以求出

λ

1

\lambda_1

λ1​,

λ

2

\lambda_2

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-MHUjZLuh-1713327599184)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值