本笔记仅记录《统计学习方法》中各个章节算法|模型的简要概述,比较泛泛而谈,用于应对夏令营面试可能会问的一些问题,不记录证明过程和详细的算法流程。大佬可自行绕路。
更多章节内容请参阅:李航《统计学习方法》学习笔记-优快云博客
目录
支持向量机概述:
一种基础的分类模型,在感知机的基础上加入了间隔最大的限制。同时还引入了核技巧使它称为了非线性分类器。
支持向量机的模型包括:线性可分支持向量机(硬间隔)、线性支持向量机(软间隔)、非线性支持向量机(核技巧)。
线性可分支持向量机与硬间隔最大化:
当训练数据是线性可分的时候,可以使用线性可分支持向量机。
定义:
其中w代表法向量,b代表截距,公式整体代表超平面。
函数间隔和几何间隔:
在SVM中,通常用与超平面之间的间隔大小表示确信度,在预测正确的情况下,|wx+b|的值越大就代表确信度越大,所以可以使用y*(wx+b)来表示确信度,这就是函数间隔的概念:
但是当我们成比例地改变w和b地时候,超平面本身并没有改变,但是函数间隔却变为原来的n倍,因此我们需要对法向量w加相应的约束,进而使得函数间隔是唯一的,这是函数间隔就变为了几何间隔。
间隔最大化:
支持向量机的基本想法就是求得在保证能够正确划分训练数据集的前提下使得几何间隔最大的超平面。这样的超平面是唯一的。
所谓的硬间隔的含义是指求得的超平面可以确保将数据集完全正确分类,不容许任何错误,在这样的前提下进而在确保几何间隔的最大化。
算法流程:
可以证得最大间隔分离超平面的存在唯一性。
支持向量和间隔边界:
在线性可分情况下,训练数据集的样本点与分离超平面距离最近的样本点的实例称为支持向量。支持向量位于间隔边界上。
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。支持向量的个数一般很少。
例子:
学习的对偶算法:
为了求解线性可分支持向量机的最优化问题,可以应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。优点在于①:对偶问题往往更容易求解;②:自然引入核函数,进而推广到非线性分类问题。
算法流程:
例子:
线性支持向量机与软间隔最大化:
引入松弛变量和惩罚参数:
如果我们的数据集中并非所有的数据都是线性可分的,例如包含一些特异点,将这些特异点去除后,剩下的数据集是线性可分的。
线性不可分就意味着这些特异点并不能满足间隔大小要大于某个值的约束条件,为了解决这个问题,我们自然而然就会想到对每个样本点都引入一个松弛变量,其含义就是一定程度上放宽约束条件,这也就是为啥叫做软间隔,这样约束条件就变为:
那么约束条件放宽了,也得有个限度吧,因此我们的目标函数也需要进行修改:
这里的C称为惩罚参数,因为我们的目的是最小化目标函数,因此C值大的时候对误分类的惩罚增大,C值小的时候对误分类的惩罚减小。这里的目标函数真实含义是:使间隔尽可能大同时使得误分类点的数量尽可能小,形成一种平衡。
这里可以证明得出w一定是唯一的,但是b可能不唯一。
学习的对偶算法:
同线性可分支持向量机类似,也可以根据线性支持向量机的原始问题得到对偶问题。
算法流程:
支持向量的变化:
不同于线性可分支持向量机的支持向量只落在间隔边界上,线性支持向量机的支持向量较为复杂:
合页损失函数:
支持向量机的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数的最小化问题。
非线性支持向量机与核函数:
核技巧:
非线性分类问题:
当数据集无法用直线(线性模型)将正负实例正确分开,但可以用一个椭圆曲线(非线性模型)将它们正确分开。但是非线性问题不好求解,所以我们需要对非线性问题进行一个非线性变换,转换为线性问题进而求解。
用线性分类方法求解非线性问题分为2步:
①首先使用一个变换将原空间的数据映射到新空间;
②然后在新空间里用线性分类学习方法从训练数据中学习分类模型。
这就是传说中的核技巧。
核函数的定义:
核技巧的想法是,只定义核函数K,而不显示定义映射函数。
通过核函数,可以将数据从输入空间(低维空间)映射到特征空间(高维空间),进而使用线性分类器进行求解。
正定核:
通常所说的和函数就是正定核函数,那么如何判断一个函数是不是核函数呢?
常用核函数:
多项式核函数:
高斯核函数:
字符串核函数:
用于定义在离散数据的集合上。
算法流程:
序列最小最优化算法:
概述:
当训练样本很多的时候,SMO算法是一种求解SVM这种凸二次规划问题的快速实现算法。