三、经典算法
#没有最好的分类器,只有最合适的分类器
#深度学习是数据驱动的,失去了数据,再精密的深度网络结构也是画饼充饥,无的放矢。
#在很多实际问题中,我们很难得到海量且带有精确标注的数据,这时深度学习也就没有大显身手的余地,反而许多传统方法可以灵活巧妙地进行处理。
#监督学习中的几种经典分类算法
知识点:
[1] SVM模型推导
[2] 核函数
[3] SMO(Sequential Minimal Optimization)算法
[4] 逻辑回归
[5] 线性回归
[6] 多标签分类
[7] Softmax
[8] 信息论
[9] 树形数据结构
[10] 优化理论
问题:
[1] 在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗
[2] 精确率与召回率的权衡
[3] 平方根误差的“意外”
[4] 什么是ROC曲线?
[5] 如何绘制ROC曲线?
[6] 如何计算AUC?
[7] ROC曲线相比P-R曲线有什么特点?
[8] 为什么在一些场景中要使用余弦相似度而不是欧氏距离?
[9] 余弦距离是否是一个严格定义的距离?
[10] 在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?
[11] 如何进行线上A/B测试?
[12] 如何划分实验组和对照组
1.支持向量机:
支持向量机(Support Vector Machine,SVM) 是众多监督学习方法中十分出色的一种。关于SVM,流传着一个关于天使与魔鬼的故事。
SVM的童话故事:
魔鬼和天使玩了一个游戏,魔鬼在桌上放了两种颜色的球,如下图1所示。魔鬼让天使用一根木棍将它们分开。天使不假思索地一摆,便完成了任务,如下图2所示。魔鬼又加入了更多的球。随着球的增多,似乎有的球不能再被原来的木棍正确分开,如图3.3所示。
SVM实际上是在为天使找到木棒的最佳放置位置,使得两边的球都离分隔它们的木棒足够远,如图3.4所示。依照SVM为天使选择的木棒位置,魔鬼即使按刚才的方式继续加入新球,木棒也能很好地将两类不同的球分开,如图3.5所示。
看到天使已经很好地解决了用木棒线性分球的问题,魔鬼又给了天使一个新的挑战,如图3.6所示。按照这种球的摆法,世界上貌似没有一根木棒可以将它们完美分开。但天使毕竟有法力,他一拍桌子,便让这些球飞到了空中,然后凭借念力抓起一张纸片,插在了两类球的中间,如图3.7所示。从魔鬼的角度看这些球,则像是被一条曲线完美的切开了,如图3.8所示。
后来,“无聊”的科学家们把这些球称为“数据”,把木棍称为“分类面”,找到最大间隔的木棒位置的过程称为“优化”,拍桌子让球飞到空中的念力叫“核映射”,在空中分隔球的纸片称为“分类超平面”。
下第1个问题考察SVM模型推导的基础知识;第2题~第4题
则会侧重对核函数(Kernel Function)的理解。
1.1 在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?
分析与解答:
线性可分的两类点,即通过一个超平面可以将两类点完全分开,如图3.9所示。假设绿色的超平面(对于二维空间来说,分类超平
面退化为一维直线)为SVM算法计算得出的分类面,那么两类点就被完全分开。
我们想探讨的是:将这两类点向绿色平面上做投影,在分类直线上得到的黄棕两类投影点是否仍然线性可分,如图3.10所示。
显然一眼望去,这些点在分类超平面(绿色直线)上相互间隔,并不是线性可分的。考虑一个更简单的反例,设想二维空间中只有两个样本点,每个点各属于一类的分类任务,此时SVM的分类超平面(直线)就是两个样本点连线的中垂线,两个点在分类面(直线)上的投影会落到这条直线上的同一个点,自然不是线性可分的。
实际上,对于任意线性可分的两组点,它们在SVM分类的超平面上的投影都是线性不可分的。这听上去有些不可思议,我们不妨从二维情况进行讨论,再推广到高维空间中。
由于SVM的分类超平面仅由支持向量决定(之后会证明这一结论),我们可以考虑一个只含支持向量SVM模型场景。
使用反证法来证明。假设存在一个SVM分类超平面使所有支持向量在该超平面上的投影依然线性可分,如图3.11所示。根据简单的初等几何知识不难发现,图中AB两点连线的中垂线所组成的超平面(绿色虚线)是相较于绿色实线超平面更优的解,这与之前假设绿色实线超平面为最优的解相矛盾。考虑最优解对应的绿色虚线,两组点经过投影后,并不是线性可分的。
目前证明还有不严谨之处,即我们假设了仅有支持向量的情况,会不会在超平面的变换过程中支持向量发生了改变,原先的非支持向量和支持向量发生了转化呢?下面我们证明SVM的分类结果仅依赖于支持向量。考虑SVM推导中的KKT条件要求
可以看到,除支持向量外,其他系数均为0,因此SVM的分类结果与仅使用支持向量的分类结果一致,说明SVM的分类结果仅依赖于支持向量,这也是SVM拥有极高运行效率的关键之一。于是,我们证明了对于任意线性可分的两组点,它们在SVM分类的超平面上的投影都是线性不可分的。
该问题也可以通过 凸优化理论中的超平面分离定理(SeparatingHyperplane Theorem,SHT) 更加轻巧地解决。该定理描述的是,对于不相交的两个凸集,存在一个超平面,将两个凸集分离。对于二维的情况,两个凸集间距离最短两点连线的中垂线就是一个将它们分离的超平面。
借助这个定理,我们可以先对线性可分的这两组点求各自的凸包。不难发现,SVM求得的超平面就是两个凸包上距离最短的两点连线的中垂线,也就是SHT定理二维情况中所阐释的分类超平面。
根据凸包的性质容易知道,凸包上的点要么是样本点,要么处于两个样本点的连线上。因此,两个凸包间距离最短的两个点可以分为三种情况:
- 两边的点均为样本点,如图3.12(a)所示;
- 两边的点均在样本点的连线上,如图3.12(b)所示;
- 一边的点为样本点,另一边的点在样本点的连线上,如图3.12(c)所示。
从几何上分析即可知道,无论哪种情况两类点的投影均是线性不可分的。
至此,我们从SVM直观推导和凸优化理论两个角度揭示了题目的真相。其实,在机器学习中还有很多这样看上去显而易见,细究起来却不可思议的结论。
1.2 是否存在一组参数使SVM训练误差为0?
分析与解答:
参考文献:
【1】《百面机器学习 算法工程师带你去面试》第1版 人民邮电出版社 [中] 诸葛越 主编 葫芦娃 著