【机器学习300问】26、什么是SVM支持向量机?

〇、小卖部二分类的例子

地图上有两个小卖部A和B,地图上的点代表一个人,调查这些人去A或者B小卖部的可能性,根据可能性将人群分为A派和B派。假设我们只考虑人们距离小卖部的距离这一个特征,比如距离A小卖部近的人去A的概率大。
图1

有监督的二分类模型,就是希望找到这样一个决策边界,使得正类数据和负类数据尽可能的分开。于是找到这个决策边界的策略不同,诞生了很多机器学习算法。

假如我有这样一个策略,找到距离小卖部最远的人,并在与他相隔一段距离的位置画一条线当做决策边界。便可以区分开两种人群,像下图这样:
图2

一、支持向量机是什么?

定义:支持向量机(Support Vector Machine, SVM)是一种监督学习模型,在机器学习领域中主要用于分类和回归分析,但其在分类任务上的表现尤为突出。

基本思想:SVM的基本思想是通过构建一个最大间隔决策边界来划分不同类别的数据点,这个决策边界能够最大化两个类别之间的边界距离,也就是最大化分类的"间隔"。

看上面这个很专业的定义和基本思想会有这样几个问题:

  1. 什么是支持向量?
  2. 两个类别之间的边界距离(也就是"间隔")怎么确定?
  3. SVM的目的是什么?

(1)什么是支持向量?

支持向量机SVM名字就带有"支持向量",所以弄懂什么是支持向量非常重要!我先简单一句话说:支持向量的本质就是一些特殊的样本点,特殊在他们距离边界最近。

换个说法:支持向量(Support Vectors)是指在训练集中的那些对构建分类决策边界起决定性作用(又可以说是支撑作用)的样本点。

它们还有一个特点这里必须提到:支持向量直接决定了决策边界的位置,并且只有这些点对最终模型有直接影响;改变其他非支持向量的样本位置不会改变最优决策边界。

(2)两个类别之间的边界距离怎么确定?

这里的"边界距离"通常指的是支持向量到决策边界(超平面)的距离,也称为间隔。

在SVM中,决策边界是通过最大化两类之间的间隔来确定的。这个间隔是支持向量(即最接近决策边界的数据点)到决策边界的距离的两倍。

(3)SVM的目的是什么?

对于线性可分的数据集,SVM的目标是在二维空间中找到一条直线,使得这个直线不仅能够将不同类别的样本分开,而且两类样本距离该直线的距离(即间隔)最大。
图3

三、什么是软间隔SVM?

(1)硬间隔SVM与软间隔SVM

有软间隔SVM,那你肯定会问有没有硬间隔SVM?当然有!实际上如果你不强调软间隔SVM的话,默认就是在说硬间隔SVM。硬间隔是说,决策边界必须将所有的样本都分开!有着很强硬的一个间隔!我要把每一个都分开!实际上这是一种理想情况,对应的是线性可分样本空间,例如上面图2的情况。
图4

所谓软间隔SVM,就是容忍误差的存在,允许一些正类样本点跑到负类中去。但"容忍"意味着有个限度,这个容忍限度就叫做松弛变量(或称为惩罚变量)。

这样做有一些好处,比如在**硬间隔SVM中,模型要求所有训练样本都能够被超平面正确且最大化地分开,即所有的样本都必须位于决策边界的同侧,并且离边界有一定的最小距离。**然而,在现实世界的应用场景中,数据往往不是完全线性可分的,强行寻找一个能够将所有样本严格分开的超平面可能会导致过拟合问题,即模型对训练数据表现得过于完美而丧失了泛化能力。所以软间隔SVM可以:

  1. 处理非线性可分的数据
  2. 提高模型的泛化能力

(2)软间隔SVM是怎么做到惩罚的呢?

软间隔SVM引入了一个松弛变量,允许某些样本点可以跨越决策边界而不严格满足分类条件,同时通过引入惩罚项来控制这种"违规"的程度。这个惩罚项通常体现在目标函数中,通过一个参数C(惩罚系数)来控制模型对误分类样本的容忍度和对间隔大小的重视程度

四、什么是内核函数?

之前在讲硬间隔的时候说到了,现实世界的数据往往不是完全线性可分的,那么对于无法线性分离的情况,除了软间隔SVM还有什么别的方法吗?有的!

现在我们把小卖部二分类的例子,做一点点改变,如果人们的位置用经度和维度来表示,例如下面这样的样本空间:

如果只有经度和维度两个特征量来标注样本的话,那么这个训练集就是一个非线性的,但是假设我们再加上一个海拔特征量,也许就可以将样本区分开!像是这样:

常用的核函数包括线性核、多项式核、高斯核(径向基函数核,RBF)和Sigmoid核等。这些核函数具有不同的特性和适用场景。例如,线性核主要用于线性可分的数据集,而多项式核和高斯核则可以处理非线性可分的数据集。Sigmoid核在某些情况下也与神经网络有关。 具体这个核函数长什么样子?怎么用?就不在这篇文章里阐述了。后续有机会单独写文章为大家介绍。

五、什么是核技巧?

核技巧(Kernel Trick)是支持向量机(SVM)中的一项重要技术。它允许在解决非线性分类或回归问题时,将低维空间中的数据通过某种映射函数 \(\phi\) 映射到高维特征空间,在这个新空间中原本不可分的数据可能变得线性可分。

然而,直接计算高维空间中的内积或距离运算往往非常复杂或者计算成本高昂,尤其是当映射后的维度非常高时。核技巧的关键在于,它不是直接进行这种高维映射,而是通过定义一个核函数,使得在原始低维空间中可以直接计算两个样本在高维特征空间上的内积

利用核函数,可以在不显式地执行高维映射的情况下求解优化问题,从而大大简化了算法的实现,并且保持了良好的计算效率和泛化能力。在支持向量机中,核技巧被广泛应用于训练阶段,特别是在构建最大化间隔超平面时,以及在预测阶段评估新样本类别时。

相关推荐
林的快手25 分钟前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
千天夜35 分钟前
多源多点路径规划:基于启发式动态生成树算法的实现
算法·机器学习·动态规划
从以前40 分钟前
准备考试:解决大学入学考试问题
数据结构·python·算法
.Vcoistnt1 小时前
Codeforces Round 994 (Div. 2)(A-D)
数据结构·c++·算法·贪心算法·动态规划
Anlici1 小时前
模型训练与数据分析
人工智能·机器学习
ALISHENGYA1 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战训练三)
数据结构·c++·算法·图论
我码玄黄4 小时前
正则表达式优化之算法和效率优化
前端·javascript·算法·正则表达式
Solitudefire4 小时前
蓝桥杯刷题——day9
算法·蓝桥杯
三万棵雪松5 小时前
1.系统学习-线性回归
算法·机器学习·回归·线性回归·监督学习
Easy数模5 小时前
基于LR/GNB/SVM/KNN/DT算法的鸢尾花分类和K-Means算法的聚类分析
算法·机器学习·支持向量机·分类·聚类