仅供参考~
支持向量机SVM
1. 支持向量机(线性模型)问题_哔哩哔哩_bilibili
基本模型定义为特征空间上间隔最大的线性分类器,学习策略是间隔最大化,最终可转化为一个凸二次规划问题的求解。
当训练数据线性可分时,通过硬件隔最大化学习一个线性分类器,即线性可分支持向量机;近似线性可分时,通过软间隔最大化(引入松弛变量)学习一个线性分类器,即线性支持向量机;不可分时通过使用核技巧及软间隔最大化学习非线性支持向量机。
SVM主要特点
- 非线性映射
- 最大化分类边界
- 支持向量
- 小样本学习方法
- 最终的决策函数只有少量支持向量决定,避免了维数灾难
- 少数支持向量决定最终结果,可剔除大量冗余样本、算法简单、具有鲁棒性
- 学习问题克表示凸优化问题,具有全局最小值
- 可自动通过最大化边界控制模型,需要用户指定核函数类型和引入松弛变量
- 适合小样本,优秀泛化能力
- 泛化错误率低,分类速度快,结果易解释
为什么要引入核函数
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
SVM核函数有哪些
线性核函数:主要用于线性可分的情形,参数少,速度快。
多项式核函数
高斯核函数:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。
sigmoid核函数
拉普拉斯核函数
SVM如何处理多分类问题
- 直接法:直接在目标函数上修改,将多个分类面的参数求解合并到一个最优化问题里面,看似简单,计算量大
- 间接法:对多个训练器进行组合,比较典型的有一对一和一对多。
- 一对多:对每个类都训练出一个分类器,将此分类器的两类设定为目标类为一类,其余类为另外一类。针对k个类可以训练出k个分类器,当有一个新样本出来时,用k个分类器进行测试,哪个分类器概率高这个样本就属于哪个类。效果不太好,bias比较高。
- 一对一:针对任意两个类设定一个分类器,k个类共训练出个分类器,测试新样本时分别用个分类器进行计算,每当被判定属于某一类时,该类就加一,最后票数最多的类别被认定为该样本的类。
SVM的硬间隔和软间隔
硬间隔分类即线性可分支持向量机,软间隔分类即线性不可分支持向量机,利用软间隔分类是因为存在一些训练集样本不满足函数间隔>=1的条件,于是加入一个非负参数(松弛变量),让得出的函数间隔加上满足条件。于是软间隔分类法对应的拉格朗日方程对于硬间隔分类法的方程就多了两个参数和,并且这两种情况下的对偶问题的方程是一致的。
软间隔分类法为什么要加入这个参数?硬间隔分类法其结果容易受少数点的控制,很危险,由于一定要满足函数间隔>=1的条件,而存在的少数离群点会让算法无法得到最优解,于是引入松弛变量,从字面上可以看出这个变量是为了缓和判定条件,所以当存在一些离群点时,我们只要对应给他一个,就可以在不变最优分类超平面的情况下让这个离群点满足分类条件。
综上,可以看出软间隔分类法加入参数,使得最优分类超平面不会受到离群点的影响,不会向离群点靠近或远离,相当于求解排除离群点之后,样本点已经线性可分的情况下的硬间隔分类问题,所以两者的对偶问题是一致的。