机器学习算法之支持向量机(SVM)

SVM恐怕大家即使不熟悉,也听说过这个大名吧,这一节我们就介绍这相爱相杀一段内容。

前言: 在介绍一个新内容之SVM前,我们不觉映入眼帘的问题是为什么要引入SVM?吃的香,睡的着的情况下,肯定不会是没事干吧~首先,SVM是一个二分类模型【图1】,实质是定义在特征空间的判别模型,其实我们大家应该比较熟悉感知机算法了(我们前面有讲过),也就是找一个超平面来划分特征空间,可是满足该条件的超平面有无穷无尽呀!我们需要的模型肯定是鲁棒性要超级棒的才好!而SVM恰恰是为了完成这种使命而向阳而生的产物;它的核心点便是寻找在特征空间中间隔最大的超平面。童鞋们一定在想间隔是啥?最大又意味着什么?接下来,我们娓娓道来。


线性可分支持向量机:

我们先来介绍比较低阶的线性可分支持向量机,顾名思义:给定的训练样本,我们可以恰好的找一个超平面直接将数据分为正负两类,形成了井水不犯河水的趋势。前面说了,对于线性可分的情况下,这种超平面有许多,因此我们选择那个间隔最大的超平面【唯一的】。超平面长什么样呢

在二维空间下,我们就把它理解为一条直线就好;不失一般性:该超平面定义为:

图1

其中是一个多维向量,和输入同维度;那好了,现在有决策超平面了,你说的间隔最大的间隔是什么?我们先看一下图一,A,B,C三个样本都被分到了正类一侧,但是A距离超平面较远,C距离最近,那么我们想想,是不是A被分别正类的置信度比其它两个样本都要高,因为,A被分为正类的感觉很严格呀,至于C,是不是因为噪声或者什么因素,它也很可能是属于负类的;即使它被分为了正类。因此,我们把样本到超平面的距离远近可以表示为分类预测的置信程度。那样本到平面的距离公式是啥,这个我们应该最清楚的,小学内容还是可以手拿把掐滴【公式1】。忽略分母常数项不看,我们可以把相对的表示为点到超平面的远近,而与类标签的符号是否一致就能够表示分类是否正确。因此我们用就可以表示为分类的正确性和置信度,我们就把这个量称作函数间隔


公式1:其中A,B,C,是平面的法向量系数

还没完,这个是我们给出了单个样本到超平面的函数间隔表示。而我们在SVM中所说的函数间隔表示为, 在所有样本的函数间隔中,函数间隔最小的那个值是整个训练集的函数间隔。有点拗口对不对,我们给出公式化的表达:

根据我们对超平面的认识,算了,咱就说平面吧,挂个超字总显的高大上;描述一个平面其实就是确定w和b,不过平面是很大的一个物体呀,经过同比例的扩大或缩小w,b;其实表示的是一个平面。如果这样的话,函数间隔就是一个变量了;这对后续的处理很不友好。况且前面我们说了,严格的点到平面的距离公式,分母是有一个规范化的值的;现在我们再把它完整的描绘出来就会得到公式2:而它的专业描述称作**几何间隔;**而我们后面要间隔最大化,其实就是指最大化几何间隔。

公式2

SVM核心的概念我们大致介绍了一下,剩下的就是用带约束的不等式求解参数,拉格朗日乘子顶上等等,这个我们后面再聊聊,对了今年2023年的最后一天了,就让SVM向量机划分时空区域,对2023说拜拜~

相关推荐
是小Y啦13 分钟前
leetcode 106.从中序与后续遍历序列构造二叉树
数据结构·算法·leetcode
liuyang-neu23 分钟前
力扣 42.接雨水
java·算法·leetcode
y_dd31 分钟前
【machine learning-12-多元线性回归】
算法·机器学习·线性回归
m0_6312704031 分钟前
标准c语言(一)
c语言·开发语言·算法
万河归海42831 分钟前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio
小周的C语言学习笔记35 分钟前
鹏哥C语言36-37---循环/分支语句练习(折半查找算法)
c语言·算法·visual studio
y_dd36 分钟前
【machine learning-七-线性回归之成本函数】
算法·回归·线性回归
小魏冬琅1 小时前
K-means 算法的介绍与应用
算法·机器学习·kmeans
aWty_1 小时前
机器学习--K-Means
人工智能·机器学习·kmeans
凌肖战2 小时前
力扣上刷题之C语言实现(数组)
c语言·算法·leetcode