1、SVM
支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。SVM 适合中小型数据样本、非线性、高维的分类问题。
1.1、svm基本概念
将实例的特征向量(以二维为例)映射为空间中的一些点,SVM 的目的就是想要画出一条线,以“最好地”区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。
注:
- 线是有无数条可以画的,区别就在于效果好不好,每条线都可以叫做一个划分超平面。
- 样本的特征很可能是高维的,此时样本空间的划分就不是一条线,所以叫超平面。
- SVM 将会寻找可以区分两个类别并且能使间隔(margin)最大的划分超平面。比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果最鲁棒、对未见示例的泛化能力最强。
1.2、hard-margin SVM
划分超平面可以定义为一个线性方程:
划分超平面可以定义为一个线性方程:
利用 Karush-Kuhn-Tucker (KKT)条件和拉格朗日公式,可以推出 MMH 可以被表示为以下“决定边界 (decision boundary)”
此方程就代表了边际最大化的划分超平面。
1.3、核方法
1.3.1、使用核方法的动机
在线性 SVM 中转化为最优化问题时求解的公式计算都是以内积(dot product)形式出现的,其中 ϕ ( X ) 是把训练集中的向量点转化到高维的非线性映射函数,因为内积的算法复杂度非常大,所以我们利用核函数来取代计算非线性映射函数的内积。
以下核函数和非线性映射函数的内积等同,但核函数 K 的运算量要远少于求内积。
1.3.2、常用的核函数
2、拉格朗日乘子法
- 拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。
- 通过引入拉格朗日乘子,可将有d个变量与 k个约束条件的最优化问题转化为具有d+k个变量的无约束优化问题求解。
- 就是求在约束条件下的极值问题的一种方法,把约束条件下求极值问题转化为求拉格朗日函数的极值问题。
具体移步: 如何理解拉格朗日乘子法?
3、对偶问题
每一个线性规划问题都伴随有另一个线性规划问题,称为对偶问题。 原来的线性规划问题则称为原始线性规划问题,简称原始问题。 对偶问题有许多重要的特征,它的变量能提供关于原始问题最优解的许多重要资料,有助于原始问题的求解和分析。
具体移步:拉格朗日乘子法与对偶问题
4、SoftMargin
支持向量机仍然会发生过拟合,发生的原因可能是由于特征转换Φ导致的,就如高斯核函数的λ变大会发生过拟合。
5、SMO算法
序列最小优化算法 (英语: Sequential minimal optimization, SMO)是一种用于解决 支持向量机 训练过程中所产生优化问题的算法。
其核心思想非常简单:每次只优化一个参数,其他参数先固定住,仅求当前这个优化参数的极值。
具体移步:机器学习算法实践-SVM中的SMO算法
6、SVM回归
在SVM回归中,它会尝试尽可能地拟合更多的数据实例到间隔上,同时限制间隔侵犯(margin violation,也就是指远离街道的实例)。
- SVM 的思路解决回归问题:
- 在 Margin 区域内的样本点越多,则 Margin 区域越能够较好的表达样本数据点,此时,取 Margin 区域内中间的那条直线作为最终的模型;用该模型预测相应的样本点的 y 值;
- 在具体训练 SVM 算法模型解决回归问题时,提前指定 Margin 的大小,算法引入的超参数:ε,表示 Margin 区域的两条直线到区域中间的直线的距离,如图:
SVM 解决回归问题的思路与解决分类问题的思路相反,解决分类问题时,希望 Margin 区域内没有样本点或者样本点尽可能的少;
参考文章:https://www.cnblogs.com/volcao/p/9471800.html
https://zhuanlan.zhihu.com/p/68992179
https://zhuanlan.zhihu.com/p/114574438