支持向量机概述
支持向量机是一种二分类模型,他的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机(感知机利用误分类最小的策略,求得分离超平面,解有无穷多个;线性可分支持向量机利用间隔最大化求解最优分离超平面,解是唯一的。);支持向量机还包括核技巧(将数据,有时是非线性数据,从一个低维空间映射到一个高维空间,可以将一个在低维空间中的非线性问题转换为高维空间下的线性问题来求解。),这使得他成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划的问题,也等价于正则化的合页函数的最小化问题。
算法流程
寻找最大间隔 点相对于分隔面的间隔:一个点到分隔面的距离。 分类器或数据集的间隔:数据集中所有点到分隔面的最小间隔的2倍。 分隔超平面的形式可以写成
wTx+b
。要计算点A到分隔超平面的距离,就必须给出点到分隔面的法线或垂线的长度,该值为
∣∣wTx+b∣∣/∥w∥
。 函数间隔:
label∗(wTx+b)
集合间隔:
label∗(wTx+b)/∥w∥
当计算数据点到分隔面的距离并确定分隔面的放置位置时,间隔通过
label∗(wTx+b)
来计算(label取值为-1或+1)。如果数据点处于正方向(即+1类)并且离分隔超平面很远的位置时,
(wTx+b)
会是一个很大的正数,同时
label∗(wTx+b)
也会是一个很大的正数。而如果数据点处于负方向(-1类)并且离分隔超平面很远的位置时,此时由于类别标签为-1,则
label∗(wTx+b)
仍是一个很大的正数。 现在的目标就是找出分类器定义中的w和b。为此,我们必须找到具有最小间隔的数据点,而这些数据点就是支持向量。一旦找到具有最小间隔的数据点,我们就需要对该间隔最大化。这可以写作:
argmaxw,b{minn(lable∗(wTx+b))∗1∥w∥}
由于给定了一些约束条件然后求解最优值,因此该问题是一个带约束条件的优化问题,可以用拉格朗日乘子法。 2. 在复杂数据集上应用核函数 用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型,这就是核技巧。 一个流行的核函数,就是径向基核函数。
优缺点及适用范围
优点:泛化错误率低,计算开销不大,结果易解释。 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。 适用数据类型:数值型和标称型数据。