一、支持向量机(SVM)简介
支持向量机(Support Vector Machines)是一种二分类模型,基本思想是在特征空间上寻找可以正确的划分训练数据集且几何间隔最大的分离超平面。几何间隔最大有利于区别于感知机。这时候分离超平面是唯一的
划分的原则是几何间隔最大化,最终转化为一个凸二次规划问题来求解,等价于正则化的合页损失函数最小化问题。包括以下三个模型:
- 当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;
- 当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;
- 当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;
支持向量机优点
- 泛化错误率低,计算开销不大,结果易解释
- SVM直接用特征空间的内积函数(既是核函数),再利用在线性可分的情况下的求解方法直接求解对应的高维空间的决策问题,不显式定义映射函数。
- SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
- 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本,“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。(增、删非支持向量样本对模型没有影响)
支持向量机缺点
- 对参数选择和核函数选择敏感,原始分类器不加修改仅适用于处理二分类问题。
- SVM算法对大规模训练样本难以实施,由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间(使用SMO 算法)。
二、线性可分支持向量机
输入空间是欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间,线性可分支持向量机将输入空间映射为特征空间中的特征向量,支持向量机的学习是在特征空间进行的。
给定特征空间上的训练样本集D= ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x m , y m ) (x_1,y_1),(x_2,y_2),⋯,(x_m,y_m) (x1,y1),(x2,y2),⋯,(xm,ym),其中 y i y_i yi∈{−1,+1},线性可分支持向量机的目的就是基于训练集D在样本空间中找到一个划分超平面w*x+b=0,它由法向量和截距表示,将样本分成正负两类,其中法向量指向的一侧为正类,其中假设数据是线性可分的。
学习策略(与感知机的不同):
- 感知机利用误分类最小策略,求得分离超平面