对svm的通俗解释

支持向量机(SVM)是一种二分类模型,旨在找到最大间隔的超平面进行分类。本文介绍了线性可分、软间隔和非线性支持向量机的概念,以及如何通过核技巧解决非线性问题。SVM的学习策略基于间隔最大化,可以转换为凸二次规划问题。

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

简介

这里引用李航老师《统计学习方法》里的介绍。
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
SVM就是寻找可以区分两个类别并且能使边际(margin)最大的超平面(hyper plane),即划分超平面。**而边际(margin)是什么呢?**边际就是某一条线距离它两侧最近的点的距离之和,这条线就是下面两张图中的实心线,两条虚线构成的带状区域就是 margin,虚线是由距离中央实线最近的两个点所确定出来的。从图中可以看出,第二张图的margin大于第一张图,更加接近我们的目标。
在这里插入图片描述

一、svm分类

1、线性可分支持向量机(或称硬间隔支持向量机)
这个用括号里的叫法更加容易理解,就是需要保证所有的点都被分到margin之外,不能出现的margin内。但是这样的硬性条件,要求训练时所有的点都分类在margin外,却让模型容易出现过拟合问题。
2、线性支持向量机(或称软间隔支持向量机)
这个是为了解决硬间隔支持向量机过拟合问题,而进一步优化的模型。就是通过松弛硬条件,在训练时,允许有些点落在margin区域内,也即允许犯错误,只是回对犯的错误做惩罚,那么要怎么做呢?这个在下面会进一步用数学推导说明。
3、非线性支持向量机
当训练数据不能用线性分类时,那么就需要将数据映射到高维空间中,然后再用超平面分类,如下图所示。
在这里插入图片描述
但是,如果我们将数据映射到高维空间中,将会带来两个方面的时间复杂度的增加。
(1)数据映射过程中,会增加时间复杂度。
(2)映射到高维空间中,例如原来的数据向量是10维的,现在映射到1000的维度上,那么在分类时将会带来100倍的计算量的增加。
所以,为了解决时间复杂度增加的问题,我们需要使用到核技巧(kernel trick)。

二、线性可分支持向量机(或称硬间隔支持向量机)

在这里插入图片描述假设给定一个特征空间上的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={ (x1,y1),(x2,y2),...,(xN,yN)}其中, x i ∈ R n x_i\in\R^n xiRn y i ∈ { + 1 , − 1 } y_i\in\{+1,-1\} yi{ +1,1} i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N x i x_i xi为第i个样本, y i y_i yi x i x_i xi的类标记。至于为什么 y i ∈ { + 1 , − 1 } y_i\in\{+1,-1\} yi{ +1,1}呢?这个只是两个类别的类标记,也可以像one-hot那样标记为{1,0},也可以标记为{10,-10},最终我们要学习的是w,b,也可由w,b调整。再通俗讲的话,在 w ∗ x + b = y w*x+b=y wx+b=y中,x是样本,是已知的,y是什么可由w,b来调整,只是现在我们限定了y的值,从而来学习出符合目标的w,b值。
这里提供另一个角度的解释博客:https://blog.youkuaiyun.com/v_JULY_v/article/details/7624837
所以,我们可以得到以下公式: w T ∗ x + b = 1 (1) w^T*x+b=1 \tag{1} wTx+b=1(1) w T ∗ x + b = − 1 (2) w^T*x+b=-1 \tag{2} wTx+b=1(2) w T ∗ x + b = 0 (3) w^T*x+b=0 \tag{3} wTx+b=0(3) w T ∗ x + b = 0 w^T*x+b=0 wTx+b=0为超平面。假设在超平面上有两个点 x 1 , x 2 x_1,x_2 x1,x2,得: w ∗ x 1 + b = 0 (4) w*x_1+b=0 \tag{4} wx1+b=0(4) w ∗ x 2 + b = 0 (5) w*x_2+b=0 \tag{5} wx2+b=0(5)所以,公式(4)减公式(5)得: w ( x 1 − x 2 ) = 0 (6) w(x_1-x_2)=0 \tag{6} w(x1x2)=0(6)所以 w ⊥ ( x 1 − x 2 ) w\bot(x_1-x_2) w(x1x2)
假设在 w T ∗ x + b = 1 、 w T ∗ x + b = − 1 w^T*x+b=1、w^T*x+b=-1 wTx+b=1wTx+b=1上分别有两个点 x + , x _ x_+,x\_ x+x_,且 x + , x _ x_+,x\_ x+x_的连线垂直于超平面,即 ∣ x + − x _ ∣ = m a r g i n |x_+-x\_|=margin x+x_=margin,则得: w T ∗ x _ + b = 1 (7) w^T*x\_+b=1 \tag{7} wTx_+b=1(7) w T ∗ x _ + b = − 1 (8) w^T*x\_+b=-1 \tag{8} wTx_+b=1(8) x + = x _ + λ w (9) x_+=x\_+\lambda w \tag{9} x+=x_+λw(9)这是由于前面得出的w垂直于超平面得出。
将公式(9)代入公式(7),得: w T ( x _ + λ w ) + b = 1 (10) w^T(x\_+\lambda w)+b=1 \tag{10} wT(x_+λw)+b=1(10) w T ∗ x _ + λ w T w + b = 1 (11) w^T*x\_+\lambda w^Tw+b=1 \tag{11} wTx_+λwTw+b=1(1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值