在数据和计算机程序的世界里,机器学习这个概念可能听起来很难掌握,充满了复杂的数学和思想。
因此,我将通过一个机器学习基础教程系列,用更直观的方式向大家解释机器学习中的一些关键概念,帮助大家更好更轻松地入门机器学习。
今天的主题是理解支持向量机(Support Vector Machines, SVM)。这个强大的工具帮助我们将数据分为不同的类别,但是它的工作原理是什么呢?
接下来就让我们尝试简化支持向量机(以下简称 SVM)模型吧👇🏻
支持向量机(SVM)是一种监督式机器学习算法,旨在找到一个最佳超平面(hyperplane)将数据点分为两个不同的类别。
问题在于,可能有无数个超平面都可以完成这个任务。因此,SVM 的目标是找到一个最佳超平面,使两个类别间的边界间隔最大化。
在我们更深入地探讨之前,让我们先理解一些关键术语:
支持向量:距离超平面最近的数据点,并且高度影响其位置和方向。
边界间隔:边界间隔是超平面与任一类别最近数据点之间的距离。边界间隔越大,分类器的泛化能力越好。
超平面:在二维空间中,这是一条分隔数据的直线。而在在高维空间中,则一个平面或更高维的类似物。
假设你有一个包含两种类型数据点的数据集:
你想把新的数据点分类为蓝色或黄色。这个任务的主要挑战是,有无数个可能的超平面可以将这两个类别分开,所以关键问题在于:
最佳超平面是与两个类别之间距离最大的那一个。这是通过找到多个不同的超平面,然后选择与两个类别距离最大的那一个来实现的。
要了解 SVM 如何对数据进行分类,首先让我们深入探讨一些数学知识。
点积是一个向量沿另一个向量的投影。所以我们可以利用它来确定一个点是在超平面的哪一侧。
如果我们考虑一个随机点 X:
很简单,对吧?
OK,让我们回顾一下这些方程式从何而来:
为了得到"分割线",首先我们需要计算支持向量与超平面之间的距离 d。边界间隔是超平面到最近支持向量的距离的两倍,因为不应该有任何点落在这个边界间隔之内。
距离 d 可以通过将两个支持向量的差投影到超平面的法向量 w 的方向上来获得。
我估计你们中的很多人都不知道我们是如何到达这一步的,所以让我们退一步,从头开始更好地理解这个函数的含义。
假设我们有两个向量:A 和 B,它们之间的夹角为 θ。我们可以使用标量积很容易地找到 A 在 B 上的投影。
这意味着,只要知道 A 和 B 这两个向量,我们就可以找到 A 在 B 上的投影,正如你在以下公式中所观察到的那样。
现在我们已经理解了这些基础知识,让我们回到我们的 SVM 模型。我们可以将同样的数学概念应用到 SVM 上,其中 A 是由支持向量机定义的向量,B 是我们分割超平面的法向量。
现在我们可以使用我们的边界来定义约束条件。我们知道,最大边界超平面必须遵循一个线性方程(在我们的二维例子中)。
这意味着,任何位于超平面上方的东西都将有一个正值(对应于正超平面),而任何位于其下方的东西都将有一个负值(对应于负超平面)。
这两个超平面之间的分隔就是我们所知的"边界间隔"。
边界间隔是 SVM 中一个关键的概念,它作为环绕在超平面周围的一个缓冲区域,没有任何数据点位于其中。这个边界间隔越宽,模型就越能够推广到未见过的数据(即模型的泛化性能越好),降低过拟合的可能性。
为了将点划分为正类或负类,我们根据它们相对于超平面的位置建立一个决策规则。
通过最大化边界间隔,SVM 可以确保决策边界被定位到最优的位置,以尽可能高的置信度分隔这些类别。
那么我们如何最大化边界间隔呢?
SVM 主要是解一个最大化边界间隔的优化问题。这需要确保所选择的超平面与每个类别最近的数据点(称为支持向量)保持足够远的距离。
我们已经根据之前找到的线性方程建立了分类算法。所以我们可以将输出定义为:
但是我们仍然需要找到向量 w 和参数 b。
那么我们应该做些什么呢?
我们知道,位于边界上的支持向量满足以下约束条件,因为它们包含在正负超平面之中。
所以我们可以很容易地将其概括为...
为了确保没有任何正类或负类数据点跨越边界,所有数据点(x,y) 的约束条件可以总结为:
还差最后一步...
现在我们有了一般的约束方程,我们可以在满足约束条件的情况下最小化向量 w 的绝对值。
这可以用数学方式表述为:
通过解决这个优化问题,我们可以找到定义具有最大边界间隔的超平面的最优向量 w 和 b 的值,确保类别之间的最佳分离。
支持向量机是数据科学家武器库中的一个强大工具,它提供了一种有效的二分类方法。
通过专注于最大化类别之间的边界间隔,SVM 创建了能很好推广到新数据的强大分类器,从而降低了过拟合的风险。
SVM 的数学基础确保了最佳超平面的识别,使它们成为各种分类任务的可靠选择。
无论你正在处理复杂的数据集还是寻求提高模型的性能,了解和实现 SVM 都可以显著增强你的机器学习工具箱。
感谢你的阅读!👏👏👏
推荐阅读👇👇👇
- END -
🌟 喜欢这篇文章吗?给个赞支持一下吧!🌟
如果你发现今天的内容对你有帮助,不妨点个赞并关注我,第一时间接收更多关于Python、数据分析和机器学习的深入分析和最新趋势。我们一起探索数据的力量,解锁AI的潜能。你的每一次互动都是对我的极大鼓励,也是我们共同成长的动力!

👇👇👇 关注并开启星标提醒,让知识与技能的火花不断在你的职业道路上燃烧吧!
想要学习理解更多机器学习模型背后的数学原理,可以阅读下面这本南瓜书。周志华老师的《机器学习》(俗称「西瓜书」)是机器学习领域的经典入门教材之一。本书(俗称「南瓜书」)基于 Datawhale 成员自学「西瓜书」时记下的笔记编著而成,旨在对「西瓜书」中重难点公式加以解析,以及对部分公式补充具体的推导细节。从基础公式解析到难点探讨,无论你数学功底如何,都可以在南瓜书里找到你想要的。
原文作者:数据派探险家;如有侵权,请联系管理员删除。