SVM
概述
SVM应用广泛,包括
有监督学习
线性二分类与多分类(Linear SVC)
非线性二分类与多分类(SVC)
普通连续型变量的回归(SVR)
概率型连续变量的回归(Bayesian SVM)
无监督学习
支持向量聚类(Support Vector Clustering)
异常值检测(One-class SVM)
半监督学习
转导支持向量机(Transductive SVM)
应用
文本分类
图像分类
手写数字
人脸识别
图像分割
蛋白质分类
原理
在样本的假设空间中找出一个超平面作为决策边界,使模型在数据上的分类误差尽量接近于小,尤其是在未知数据集上的泛化误差尽量小。
超平面:在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。 如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则其超平面是一维的直线。 在二分类问题中,如果一个超平面能够将数据划分为两个集合,其中每个集合中包含单独的一个类别,我们就说这个超平面是数据的“决策边界“。
边际(margin):决策边界往两个类别平移,直到碰到离这条决策边界最近的数据点之间的距离。
过拟合:边际很小的情况。在训练集表现很好却在测试集表现糟糕的模型。
支持向量机:找出边际最大的决策边界,来对数据进行分类的分类器。又叫最大边际分类器。
三层理解
最优化问题:最小化损失函数来求解决策边界
一、损失函数
定义决策边界的数学表达,并基于此表达定义分类函数
对非线性数据的解决
软间隔:添加松弛系数作为惩罚项,以允许部分样本点在边界之内存在
使用非线性转化来升高原始数据的维度,使用核函数在低维空间中进行计算,以求解出高维空间中的线性超平面
二、拉格朗日函数
为求解能够使边际最大化的w和b,引入拉格朗日因子a
引入拉格朗日对偶函数,使求解w和b的过程转化为对a的求解(KKT)
使用SMO或梯度下降等方法求解a,再根据a解出w和b,最终找出
决策边界
和分离决策函数
三、使用数学证明过程一和过程二
核技法(Kernel Trick)
解决三个问题
因为计算是在原始空间中进行,所以避免了维度诅咒的问题
核
核函数怎么选
如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
优缺点
优点
效果好:一旦确定好核函数和超参,分类效果(正确性)非常好
速度快:接受训练后,对新的观测数据,只需判断坐标点位于分界线的哪一侧即可
分类和回归:通过将分类输入转换成数值输入,可以令SVM同时支持分类数据和数值数据
缺点
没有通用的配置:迁移到不同的业务场景时,需要自行通过大量数据集以交叉验证等方法确认核函数和超参
可解释性:存在向高维空间的变换,分类过程就像一个黑盒,难以解释
参考
Last updated
Was this helpful?