ITPub博客

首页 > 数据库 > 数据库开发技术 > 机器学习基础:一文搞懂“二分类之王”—支持向量机(SVM)背后的数学原理

机器学习基础:一文搞懂“二分类之王”—支持向量机(SVM)背后的数学原理

原创 数据库开发技术 作者:jackzhang 时间:2024-07-02 18:57:38 0 删除 编辑

在数据和计算机程序的世界里,机器学习这个概念可能听起来很难掌握,充满了复杂的数学和思想。

因此,我将通过一个机器学习基础教程系列,用更直观的方式向大家解释机器学习中的一些关键概念,帮助大家更好更轻松地入门机器学习。

今天的主题是理解支持向量机(Support Vector Machines, SVM)。这个强大的工具帮助我们将数据分为不同的类别,但是它的工作原理是什么呢?

接下来就让我们尝试简化支持向量机(以下简称 SVM)模型吧👇🏻

1. 什么是 SVM?

支持向量机(SVM)是一种监督式机器学习算法,旨在找到一个最佳超平面(hyperplane)将数据点分为两个不同的类别。

问题在于,可能有无数个超平面都可以完成这个任务。因此,SVM 的目标是找到一个最佳超平面,使两个类别间的边界间隔最大化。

2. SVM 中的关键概念

在我们更深入地探讨之前,让我们先理解一些关键术语:

  • 支持向量:距离超平面最近的数据点,并且高度影响其位置和方向。

  • 边界间隔:边界间隔是超平面与任一类别最近数据点之间的距离。边界间隔越大,分类器的泛化能力越好。

  • 超平面:在二维空间中,这是一条分隔数据的直线。而在在高维空间中,则一个平面或更高维的类似物。

3. SVM 的工作原理是什么

假设你有一个包含两种类型数据点的数据集:

  • 蓝色🔵
  • 黄色🟨

你想把新的数据点分类为蓝色或黄色。这个任务的主要挑战是,有无数个可能的超平面可以将这两个类别分开,所以关键问题在于:

如何找到最佳超平面?

最佳超平面是与两个类别之间距离最大的那一个。这是通过找到多个不同的超平面,然后选择与两个类别距离最大的那一个来实现的。

4. SVM 背后的数学直观体现

要了解 SVM 如何对数据进行分类,首先让我们深入探讨一些数学知识。

点积是一个向量沿另一个向量的投影。所以我们可以利用它来确定一个点是在超平面的哪一侧。

如果我们考虑一个随机点 X:

  • 如果 X·W > c —— 它是一个正样本。
  • 如果 X·W < c —— 它是一个负样本。
  • 如果 X·W = c —— 它在决策边界上。

很简单,对吧?

OK,让我们回顾一下这些方程式从何而来:

4.1 确定如何寻找超平面

为了得到"分割线",首先我们需要计算支持向量与超平面之间的距离 d。边界间隔是超平面到最近支持向量的距离的两倍,因为不应该有任何点落在这个边界间隔之内。

4.2 投影距离"d"

距离 d 可以通过将两个支持向量的差投影到超平面的法向量 w 的方向上来获得。

我估计你们中的很多人都不知道我们是如何到达这一步的,所以让我们退一步,从头开始更好地理解这个函数的含义。

假设我们有两个向量:A 和 B,它们之间的夹角为 θ。我们可以使用标量积很容易地找到 A 在 B 上的投影。

这意味着,只要知道 A 和 B 这两个向量,我们就可以找到 A 在 B 上的投影,正如你在以下公式中所观察到的那样。

现在我们已经理解了这些基础知识,让我们回到我们的 SVM 模型。我们可以将同样的数学概念应用到 SVM 上,其中 A 是由支持向量机定义的向量,B 是我们分割超平面的法向量。

4.3 定义约束条件

现在我们可以使用我们的边界来定义约束条件。我们知道,最大边界超平面必须遵循一个线性方程(在我们的二维例子中)。

这意味着,任何位于超平面上方的东西都将有一个正值(对应于正超平面),而任何位于其下方的东西都将有一个负值(对应于负超平面)。

这两个超平面之间的分隔就是我们所知的"边界间隔"。

5. SVM 中的边界间隔

边界间隔是 SVM 中一个关键的概念,它作为环绕在超平面周围的一个缓冲区域,没有任何数据点位于其中。这个边界间隔越宽,模型就越能够推广到未见过的数据(即模型的泛化性能越好),降低过拟合的可能性。

为了将点划分为正类或负类,我们根据它们相对于超平面的位置建立一个决策规则。

  • 一边的点被归类为一个类别(蓝色🔵)
  • 另一边的点归类为相反的类别(黄色🟨)。

通过最大化边界间隔,SVM 可以确保决策边界被定位到最优的位置,以尽可能高的置信度分隔这些类别。

那么我们如何最大化边界间隔呢?

6. 优化和约束条件

SVM 主要是解一个最大化边界间隔的优化问题。这需要确保所选择的超平面与每个类别最近的数据点(称为支持向量)保持足够远的距离。

我们已经根据之前找到的线性方程建立了分类算法。所以我们可以将输出定义为:

  • +1或🔵表示位于正超平面一侧的数据。
  • -1或🟨表示位于负超平面一侧的数据。

但是我们仍然需要找到向量 w 和参数 b。

那么我们应该做些什么呢?

我们知道,位于边界上的支持向量满足以下约束条件,因为它们包含在正负超平面之中。

所以我们可以很容易地将其概括为...

6.1 一般约束方程

为了确保没有任何正类或负类数据点跨越边界,所有数据点(x,y) 的约束条件可以总结为:

还差最后一步...

6.2 优化目标

现在我们有了一般的约束方程,我们可以在满足约束条件的情况下最小化向量 w 的绝对值。

这可以用数学方式表述为:

通过解决这个优化问题,我们可以找到定义具有最大边界间隔的超平面的最优向量 w 和 b 的值,确保类别之间的最佳分离。

7. 结论

支持向量机是数据科学家武器库中的一个强大工具,它提供了一种有效的二分类方法。

通过专注于最大化类别之间的边界间隔,SVM 创建了能很好推广到新数据的强大分类器,从而降低了过拟合的风险。

SVM 的数学基础确保了最佳超平面的识别,使它们成为各种分类任务的可靠选择。

无论你正在处理复杂的数据集还是寻求提高模型的性能,了解和实现 SVM 都可以显著增强你的机器学习工具箱。

感谢你的阅读!👏👏👏


推荐阅读👇👇👇

- END -

🌟 喜欢这篇文章吗?给个赞支持一下吧!🌟

如果你发现今天的内容对你有帮助,不妨点个赞并关注我,第一时间接收更多关于Python、数据分析和机器学习的深入分析和最新趋势。我们一起探索数据的力量,解锁AI的潜能。你的每一次互动都是对我的极大鼓励,也是我们共同成长的动力!

👇👇👇 关注并开启星标提醒,让知识与技能的火花不断在你的职业道路上燃烧吧!

想要学习理解更多机器学习模型背后的数学原理,可以阅读下面这本南瓜书。周志华老师的《机器学习》(俗称「西瓜书」)是机器学习领域的经典入门教材之一。本书(俗称「南瓜书」)基于 Datawhale 成员自学「西瓜书」时记下的笔记编著而成,旨在对「西瓜书」中重难点公式加以解析,以及对部分公式补充具体的推导细节。从基础公式解析到难点探讨,无论你数学功底如何,都可以在南瓜书里找到你想要的。

原文作者:数据派探险家;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-12-19

  • 博文量
    119
  • 访问量
    55942