1. 分类
支持向量机包含三种:
- 线性可分支持向量机:当训练数据线性可分时,可通过硬间隔最大化,学习一个线性的分类器,叫线性可分支持向量机,也称硬间隔支持向量机
- 线性支持向量机:当训练数据近似线性可分时,可通过软间隔最大化,也学习一个线性的分类器,叫线性支持向量机,也称为软间隔支持向量机
- 非线性支持向量机:当训练数据线性不可分时,通过使用核函数技巧及软间隔最大化,学习一个非线性的支持向量机
2. 公式理解及推导
2.1. 线性可分支持向量机:
2.2. 线性支持向量机:
相较于1的基础上,加入了松弛变量和惩罚参数C,其目标函数变成:
最小化目标函数包含两层含义:使
1
2
∥
w
∥
2
\frac{1}{2}\left \| w \right \|^{2}
21∥w∥2 的值尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数。其他推导类似1的过程,线性支持向量机公式推导参考
2.3. 非线性支持向量机:
相较于2的基础上,加入了核技巧,通过一个非线性变换将输入空间(高维)对应于一个特征空间(低维),使得在输入空间中的非线性模型对应于特征空间的线性模型,再进一步去求解。推导过程类似2,只需将其中对偶形式中的內积换成核函数即可。
2.3.1. 常用的核函数及选取规则:
常用的核:Linear核与RBF核
选取规则:
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
2.SVM和LR的对比
参考:https://blog.csdn.net/qq_35945399/article/details/81175772
相同点:
- 都是有监督的分类算法
- 不考虑核函数,均为线性分类
- 都是判别式模型
不同点:
- Loss不同:
- LR是基于极大似然估计,sigmoid+对数似然
- SVM是基于集合间隔最大化,合页函数
- SVM是结构风险最小化,LR是经验风险最小化
- svm的损失函数自带w正则项,是在训练误差和模型复杂度之间找平衡,可以防止过拟合
- lr需要额外增加正则项
- SVM只考虑个别点,而LR考虑所有点(若lr的不同类别数不平衡,需要先对数据做处理)
- SVM不能产生概率,lr能产生概率
- svm可以用核函数,LR一般不用
- svm计算复杂,但是效果好,适合小数据集;LR计算简单,适合大数据