如何理解SVM算法

如何理解SVM算法

1. SVM算法概述

SVM算法(support vector machine,支持向量机),是一种二分类算法,可以分为线性SVM算法和非线性SVM算法,线性SVM指的是通过高维空间的超平面做分类,非线性SVM指通过高维空间中的曲面做分类。关于线性SVM又可以分为线性可分SVM算法和线性不可分SVM算法,对于线性可分的样本,采用的分割方法为间隔最大化,对于线性不可分的样本,如果使用线性分类方法,那么无法避免要产生错误的分类,这时候需要在容许一定误差的情况下做到间隔最大化。非线性SVM算法其实是通过低维空间向高维空间的映射来完成的,映射的过程需要用到核函数。

2. 线性可分SVM算法

给定线性可分训练数据集,通过间隔最大化来寻找分离超平面,如下图所示

SVM 示意图
分类函数为

(2.1) f ( x ) = s i g n ( ω ∗ ⋅ x + b ) f(x) = sign(\pmb \omega^* \cdot \pmb x + b) \tag{2.1} f(x)=sign(ωωωxxx+b)(2.1)
待判别的类型取值为{-1, 1}
间隔距离指的是正样本到分类超平面的距离与负样本到超平面的距离之和,距离如下
d = 2 ∣ ω ∣ d = \frac{2}{|\pmb\omega|} d=ωωω2
因此对于解决线性可分SVM算法,等价于最大化d,既有下式
(2.2) max ⁡ ω , b 2 ∣ ω ∣ \max_{\omega, b} \frac{2}{|\pmb\omega|} \tag{2.2} ω,bmaxωωω2(2.2)
(2.3) s . t .                     y i ( ω ∗ x i + b ) ≥ 1 s.t. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y_i(\pmb \omega * x_i + b) \ge 1 \tag{2.3} s.t.                   yi(ωωωxi+b)1(2.3)
上式通过等价可以转换为
(2.4) min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ \min_{\omega, b}\frac{1}{2}||\pmb\omega|| \tag{2.4} ω,bmin21ωωω(2.4)
(2.5) s . t .                     y i ( ω ∗ x i + b ) ≥ 1 s.t. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y_i(\pmb \omega * x_i + b) \ge 1 \tag{2.5} s.t.                   yi(ωωωxi+b)1(2.5)
通过拉格朗日法,可以将上面最优化式子转化为
(2.6) max ⁡ α min ⁡ ω , b L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ − ∑ i = 1 N α i y i ( ω ⋅ x i + b ) + ∑ i = 1 N α i \max_{\alpha}\min_{\omega, b}L(\pmb\omega, b, \pmb\alpha) = \frac{1}{2}||\pmb\omega|| - \sum_{i=1}^N{\alpha_iy_i(\pmb\omega\cdot x_i + b)} + \sum_{i=1}^{N}\alpha_i \tag{2.6} αmaxω,bminL(ωωω,b,ααα)=21ωωωi=1Nαiyi(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值