Appearance
支持向量机
支持向量机(Support Vector Machine, SVM),是一种强大的监督学习算法,广泛应用于分类和回归任务。它通过寻找最优超平面来最大化不同类别数据之间的间隔,从而实现分类或预测。可以算是整个机器学习分类算法的天花板。 在深度学习发展起来之前,支持向量机几乎是称霸机器学习领域的一个存在。
一、算法原理
SVM 的算法思路:
- 当样本数据是线性可分的时候,找到距离两类样本间隔最大的一条线,或者两类样本数据之间的 中轴线。
- 因为有无数条线可以区分两个分类,只有它们之间的中轴线距离所有样本点的距离最远。
- 其中,距离这条直线最近的几个样本点叫做支持向量, 这几个点到这条线的距离称为间隔 。
- 寻找那个最大间隔的过程,其实就是 SVM 算法调整最优参数的过程。
二、如何处理非线性可分?
在现实情况中,很多数据是线性不可分的,我们很难找到一条直线,将样本的数据线性分类
SVM 的解决办法是:
把二维平面映射到三维空间。这时候我们分类这两种数据的方式,就不再简单的是靠一条直线,而是靠一个平面,把原来的空间分隔成两部分,然后两种颜色的小球,在三维空间里就能够分开了。
在这个基础上延伸,比如映射到一个超过三维的平面,我们就把它叫做超平面。
这种数学思路,就是 SVM 算法最优秀的地方,也是它和其他的线性算法最大的区别。 它在二维空间中是直线,在三维空间是平面,在三维以上的空间,就是超平面。
三、核函数
SVM 是怎么把数据从二维平面映射到三维、四维等高维空间的呢? 就是通过“核函数”来实现的。
核函数的作用: 把样本点从低维空间映射到高维空间,常⻅的核函数有线性核函数、高斯核函数等。
四、算法优缺点
优点:
- 适用于非线性问题
- 可以求得全局的最优解
缺点:
- 训练耗费的资源非常大
- 只适用于二分类问题