支持向量机是一种二分类模型,目标是寻找一个标准来对样本进行分割,原则是确保分类最优化。本节简要介绍其原理。

本文目录:

SVM简介

支持向量机的原则是确保分类最优化(类别之间的间隔最大)。

当数据集较小时,使用支持向量机是非常有效的。支持向量机是最好的现成分类器之一。‘现成’指的是分类器不加修改就可以直接使用。

支持向量机在分类时,把无法线性分割的数据映射到高维空间,然后再高维空间找到分类最优的线性分类器。

Python提供了不同的实现支持向量机的方法,例如sk-learn库、LIBSVM库,OpenCV也提供了对支持向量机的接口,都可以直接使用,无需对原理部分过于深入了解。

理论基础

对SVM的基本原理进行简单介绍。

分类

如下图所示,某次研究生考试中,得分如下所示。横坐标代表笔试成绩,纵坐标表示面试成绩。右上角的圆点表示A级(优秀)、左小角的方块表示B级(良好)。

成绩分布图

导师肯定要找的尽量是A类。但是如何根据笔试和面试成绩来确定该学生是否优秀呢?偷懒的做法是笔试面试成绩都高,未来可能是优秀学生的概率更大。但是人无完人,这样招生名额可能都用不完。合理地做法是确定一定的笔试和面试标准,可以高效地招到A类。下图,就提供了三种形式的划分。

用直线划分数据

分类器

在上图中,用于划分不同类别的直线,就是分类器。在构造分类器时,最重要的就是找到最优分类器了。

在上图中,右上角和右下角都有一定的“倾向”嫌疑,左下角的分类更加“独善其身”,实现了“均分”。让两个分类离自己一样远,这样就为每个分类都预留了等量的拓展空间,即使有新的靠近边界的点进来,也能够按照位置划分到对应的分类中。

在已有的数据中,找到离分类器最近的点,确保它们离分类器尽可能地远。

离分类器最近的点到分类器的距离称之为"间隔"。

我们希望间隔尽可能最大。这样分类器在处理距离时,就会更准确。左小角的间距最大。

不同分类器的间隔情况

离分类器最近的那些年叫做支持向量,由他们决定了分类器所在的位置。

将不可分变为可分

在现实中的大多数问题,往往是非常复杂的,不可能简单地通过一个直线就能划分完成。

例如,不小心将豌豆和小米混到了一起。豌豆直径在10mm,小米直径在1mm。那么为了区分他们,可以用一个直径为5mm的筛子,将豌豆与小米区分开。筛子就是映射操作。

支持向量机在处理数据时,如果在低维空间内无法完成,就会自动将数据映射到高维空间。使其变为可分的。简单说就是对当前数据进行函数映射操作。下图中,f函数就是一种映射。

通过函数映射将不可分的数据变为可分的

不用担心数据由低维空间转换到高维空间后运算量会呈几何级增加,支持向量机能通过核函数有效地降低计算计算复杂度。

注意

上面的示例都是二维的。实际上支持向量机可以处理任何维度的数据。在不同维度下,支持向量机都会尽可能寻找类似于二维空间中的直线的线性分类器。

在二维空间中,支持向量机会去找一条最优的直线;在三维空间中,支持向量机会去找一条最优的平面;在更高维度的空间中,支持向量机会尝试寻找一个能够划分当前数据的超平面。

  • 支持向量是离分类器最近的那些点,这些点位于最大间隔上。通常情况下,分类仅仅依靠这些点完成,而和其他点没有关系。
  • 机器指的是分类器。

博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/CVSVM.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 05 月 25 日
如果觉得我的文章对你有用,请随意赞赏