简介
支持向量机(Support Vector Machine,SVM)是一种有监督学习中的分类器。它适合小样本、非线性以及高维度的分割。SVM通过选择不同的核函数来构造不同的模型,并构建不同的分割器。例如,核函数为线性函数时,SVM等同于线性回归;核函数为Sigmoid时,SVM等价于神经网络。
一句话解释版本:
SVM通过非线性转换升维数据,实现线性可分;通过最大化边界,寻找最优分割器。
数据分析与挖掘体系位置
SVM是有监督学习中的一种模型。所以在数据分析与数据挖掘中的位置如下图所示。
SVM的原理
简单来说,SVM的原理是两个字:升维。
假定我们有一张纸,上面有红点与黑点,红点与黑点交错分布在纸上。我们现在想在纸上画一条线,把红黑两种颜色的点区分开来。这是比较难的。但是,SVM提供了一个办法:我们把纸拿起来,卷成一个圈,将纸从二维空间升高到三维空间。这时,可能就会有一个面,我们通过这个面实现了分割原本在二维空间线性不可分的红黑点。这个就是SVM较容易理解的原理。
当原始数据线性不可分时,通过使用非线性转换(Nonlinear Transformation)将原始数据映射(Mapping)在高维度的特征空间中。这时,由于在特征空间进行了坐标转化,原本线性不可分的数据在更高维度上就变成了线性可分。这个过程类似神经网络中从输入层到隐藏层的映射过程。
在数据转换到高维后,SVM的目的就是找出Optimal Linear Seperating Hyperplane,也就是最优线性分割超平面,用它来分隔数据。这个Hyperplane也被称为Decision Boundary,即决策边界。
SVM的构建
既然SVM是通过将数据升维,进而寻找最优超平面以分割数据。
那么,很自然的,成功构建SVM就需要解决两个核心问题:
- 如何定义“最优”的超平面。
- 如何对数据升维。
问题1:“最优”超平面的定义
当分割超平面有多个时,最优分割超平面是能够输出最大边界(Margin)的超平面。
首先,超平面(Hyperplane)是什么?如果是二维空间,超平面就是一条线;如果是三维空