机器学习算法系列(十六)-非线性支持向量机算法(Non-Linear Support Vector Machine)

本文介绍了非线性支持向量机的基本概念,包括模型的非线性转换、核技巧的应用、对偶模型和SMO算法。通过实例和Python代码演示了如何使用线性、多项式和径向基核函数。最后,与Scikit-learn库实现和实际应用案例相结合,探讨了不同核函数对分类效果的影响。

阅读本文需要的背景知识点:线性支持向量机、一丢丢编程知识

一、引言

  前面我们用两节介绍了两种支持向量机模型——硬间隔支持向量机、软间隔支持向量机,这两种模型可以统称为线性支持向量机,下面来介绍另一种支持向量机模型——非线性支持向量机1 (Non-Linear Support Vector Machine)。

二、模型介绍

  在介绍非线性支持向量机之前,让我们来看如下的线性不可分的数据集:
0.png

图 2-1

  图 2-1 中分别用圆和叉来代表不同的标签分类,很明显该数据集无法通过一条直线正确分类,但是如图 2-2 所示,该数据集可以被一条椭圆曲线正确的分类。
1.png

图 2-2

  但是想要求解如图 2-2 中的椭圆曲线这种非线性分类的问题,相对来说难度较大。既然线性分类问题相对容易求解,那么该数据能否通过一定的非线性变化转化为一个线性分类的数据呢,答案是可以的。
2.png

图 2-3

  如图 2-3 所示,将数据集进行非线性转换( Z = X ∗ X Z = X * X Z=XX),这时可以看到转换后的数据可以通过一条直线正确分类,原来图 2-2 中的椭圆曲线变换成了图 2-3 中的直线,原来非线性分类问题变换成了线性分类问题。

原始模型

  先来回顾一下前面软间隔支持向量机的原始模型:
min ⁡ w , b , ξ 1 2 w T w + C ∑ i = 1 N ξ i  s.t.  C > 0 ξ i ≥ 0 ξ i ≥ 1 − y i ( w T x i + b ) i = 1 , 2 , ⋯   , N \begin{array}{c} \underset{w, b, \xi}{\min} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } \quad C>0 \quad \xi_{i} \geq 0 \quad \xi_{i} \geq 1-y_{i}\left(w^{T} x_{i}+b\right) \quad i=1,2, \cdots, N \end{array} w,b,ξmin21wTw+Ci=1Nξi s.t. C>0ξi0ξi1yi(wTxi+b)i=1,2,,N

式 2-1

  假设存在一个 ϕ \phi ϕ 函数能对 x x x 进行变换,例如上面例子中的将 x x x 映射成 z z z,带入上面的软间隔支持向量机的原始模型中得:
min ⁡ w , b , ξ 1 2 w T w + C ∑ i = 1 N ξ i  s.t.  C > 0 ξ i ≥ 0 ξ i ≥ 1 − y i ( w T ϕ ( x i ) + b ) i = 1 , 2 , ⋯   , N \begin{array}{c} \underset{w, b, \xi}{\min} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } \quad C>0 \quad \xi_{i} \geq 0 \quad \xi_{i} \geq 1-y_{i}\left(w^{T} \phi(x_{i})+b\right) \quad i=1,2, \cdots, N \end{array} w,b,ξmin21wTw+Ci=1Nξi s.t. C>0ξi0ξi1yi(wTϕ(xi)+b)i=1,2,,N

式 2-2

  上式 2-2 就是非线性支持向量机的原始模型。

对偶模型

  同前面两节中所求解的对偶模型,可以得到非线性支持向量机的对偶模型:
max ⁡ λ ∑ i = 1 N λ i − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j ϕ ( x i ) T ϕ ( x j )  s.t.  ∑ i = 1 N λ i y i = 0 0 ≤ λ i ≤ C i = 1 , 2 , ⋯   , N \begin{array}{c} \underset{\lambda}{\max} \sum_{i=1}^{N} \lambda_{i}-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \lambda_{i} \lambda_{j} y_{i} y_{j} \phi(x_{i})^{T} \phi(x_{j}) \\ \text { s.t. } \quad \sum_{i=1}^{N} \lambda_{i} y_{i}=0 \quad 0 \leq \lambda_{i} \leq C \quad i=1,2, \cdots, N \end{array} λmaxi=1Nλi21

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值