百面机器学习|第三章经典算法知识点

前言

如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。

第三章 经典算法

0、写在前面

这一章我看了之后的感觉是,需要和《统计学习方法》——李航的书配合着一起看。这一章总共20页,讲了三个经典机器学习算法,而在统计学习方法中少则有50页去讲这三个算法。所以这本书叫做“算法工程师带你去面试”是有道理的,主要是由面试问题引出的对算法知识的整理和延伸,需要在看过统计学习方法,有一定的基础之后再去看这一部分。例如SVM的部分,虽然以一个非常有趣的故事开头,让人觉得原来SVM也不是很复杂嘛,但是后面的面试题引出的知识点,是需要先弄懂SVM算法的推导过程的。
这章同时也给统计学习方法做了非常非常好的补充,例如SVM的部分,给出的面试题是我从来没有想过的,这样的题会让我们对算法原理有更近一步的认识;在逻辑回归的部分,讲了逻辑回归和线性回归的一些延伸知识;在决策树的部分,利用一个例子将后剪枝的算法讲得非常清楚,这个部分我在统计学习方法中没有看懂,在这里就可以看得很明白。

1、支持向量机

  1. 在空间上线性可分的两类点,分别向SVM超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?
    答案是,对于任意线性可分的两组点,它们在SVM分类超平面上的投影都是线性不可分的。
  2. 是否存在一组参数使SVM训练误差为0?
    答案是,一个使用高斯核(K(x,z)=e^{-||x-z||^2 / \gamma^2})训练的SVM中,若训练集中不存在两个点在同一位置,则存在一组参数\{\alpha_1,...,\alpha_m,b\}以及参数\gamma使得该SVM的训练误差为0。
  3. 训练误差为0的SVM分类器一定存在吗?
    答案是,一定存在。具体可以去看看这本书。
  4. 加入松弛变量的SVM的训练误差可以为0吗?
    答案是,并不一定能得到训练误差为0的模型。如果使用SMO算法来训练一个加入松弛变量的线性SVM模型,则我们的优化目标改变了,并不再是使训练误差最小。考虑带松弛变量的SVM模型优化的目标函数所包含的两项为:C\sum_{i}^{m}\xi_i\frac{1}{2}||w||^2。当我们的参数C选取较小的值时,后面的正则项将占据优化的较大比重。这样,一个带有训练误差,但是参数较小的点将成为更优的结果。当C取0时,w也取0时即可达到优化目标。

2、逻辑回归

  1. 逻辑回归和线性回归的异同:
  • 区别:最本质的区别是,逻辑回归处理的是分类问题,线性回归处理的是回归问题。逻辑回归中,因变量取值是一个二元分布,模型学习得出的是E[y|x;\theta],即给定自变量和超参数后,得到因变量的期望,并基于此期望来处理预测分类问题。而线性回归中实际上求解的是y'=\theta^Tx,是对我们假设的真实关系y=\theta^Tx+\epsilon的一个近似,其中\epsilon代表误差项,我们使用这个近似项来处理回归问题。
    还有一个很大的区别是,逻辑回归中的因变量是离散的,线性回归中的因变量是连续的。并且在自变量x与超参数\theta确定的情况下,逻辑回归可以看作广义线性模型在因变量y服从二元分布时的一个特殊情况;而使用最小二乘法求解线性回归时,我们认为因变量y服从正态分布。
  • 相同:两者都使用了极大似然估计来对训练样本进行建模。线性回归使用最小二乘法,实际上就是自变量x与超参数\theta确定,因变量y服从正态分布的假设下,使用极大似然估计的一个化简;而逻辑回归中通过对似然函数L(\theta)=\prod_{i=1}^{N}P(y_i|x_i;\theta)=\prod_{i=1}^{N}(\pi(x_i))^{y_i}(1-\pi(x_i))^{1-y_i}的学习,得到最佳参数\theta
    在求解参数的过程中,都可以使用梯度下降的方法。
  1. 多项逻辑回归:
  • 一个样本只对应一个标签时,可以假设每个样本属于不同标签的概率服从几何分布,使用多项逻辑回归(Softmax Regression)来进行分类(存在一个Softmax)。
  • 一个样本可能属于多个标签时,可以训练k个二分类的逻辑回归分类器,第i个分类器用以区分每个样本是否可以归为第i类。

3、决策树

  1. 决策树常用的启发函数:
  • ID3:最大信息增益
    对于样本集合D,类别数为K,数据集D的经验熵为H(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}其中C_k是样本集合D属于第k类的样本子集,|C_k|表示该子集的元素个数,|D|表示样本集合的元素个数。
    注:简言之,数据集D的经验熵为,根据y的类别分的K个类的信息熵的和
    然后计算某个特征A对于数据集D的经验条件熵H(D|A)H(D|A)=\sum_{i=1}^{n}\frac{|D_i|}{|D|}H(D_i)=\sum_{i=1}^{n}\frac{|D_i|}{|D|}(-\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|})其中D_i表示D中特征A取第i个值的样本子集,D_{ik}表示D_i中属于第k类的样本子集。
    注:简言之,特征A对于数据集D的经验条件熵H(D|A)为,根据特征A分类之后,A的每个类分别求该小数据集的经验熵H(D_i),再根据A每个类的占比对经验熵H(D_i)加权平均
    于是信息增益g(D,A)可以表示为两者之差,可得g(D,A)=H(D)-H(D|A)
    注:简言之,信息增益就是根据特征A划分之后,每个划分D_iy的类别是不是更集中了,也就是给定条件以后不确定性减少的程度
  • C4.5:最大信息增益比
    特征A对于数据集D的信息增益比定义为g_R(D,A)=\frac{g(D,A)}{H_A(D)}其中H_A(D)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|}H_A(D)称为数据集D关于A的取值熵。
  • CART树:最大基尼指数(Gini)
    Gini描述的是数据的纯度Gini(D)=1-\sum_{i=1}^{n}(\frac{C_k}{D})^2特征A的Gini指数定义为Gini(D|A)=\sum_{i=1}^{n}\frac{|D_i|}{|D|}Gini(D_i)
    注:Gini指数的计算方法是,选取特征A的某一个取值,如果特征A有三个取值1、2、3,那么选取A为1这个值,将2、3全看作非1,计算将数据集分成两个部分之后,每个部分数据集的Gini指数的加权平均。数据集的Gini指数是1减根据y划分的标签占比平方和的差。
  1. 三种决策树构造准则的比较:
  • ID3采用信息增益作为评价指标,会倾向于取值较多的特征。因为,信息增益反映的是给定条件以后不确定性减少的程度。C4.5实际上是对ID3的优化,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特征,提升决策树的泛化能力。
  • 从样本类型的角度,ID3只能处理离散型变量,而C4.5和CART树都可以处理连续型变量。C4.5会排序找到切分点,将连续变量转换为多个取值区间的离散型变量,CART每次会对特征进行二值划分,适用于连续变量。
  • 从应用角度,ID3和C4.5只能用于分类,CART树可以用于分类和回归
  • 从实现细节、优化过程等角度,ID3对样本特征缺失值比较敏感,而C4.5和CART树都可以对缺失值进行不同方式的处理。
    ID3和C4.5可以产生多叉分支,且每个特征在层级之间不会复用。CART树是二叉树,每个特征可以被重复利用
    ID3和C4.5通过剪枝来权衡树的准确性和泛化性能,CART树枝节利用全部数据发现所有可能的树结构进行对比。
  1. 前剪枝:在生成决策树的过程中提前停止树的增长。核心思想是在树中节点进行扩展之前,先计算当前的划分是否能带来模型泛化性能的提升,如果不能则不再继续生成子树。
  • 前剪枝停止决策树生长的几种方法:
    (1) 当树达到一定深度时停止生长。
    (2) 当到达当前节点的样本数量小于某个阈值时停止生长。
    (3) 计算每次分类对测试集的准确率提升,当小于某个阈值时停止生长。
  • 前剪枝的优缺点:
    优点:简单高效,适合解决大规模问题。
    缺点:
    (1) 深度和阈值这些值很难准确估计,针对不同问题会有很大差别。
    (2) 前剪枝存在一定局限性,有欠拟合的风险,虽然当前的划分会导致测试集准确率下降,可能在后面会有显著上升。
  1. 后剪枝:在已生成的过拟合决策树上进行剪枝。核心思想是让算法生成一棵完全生长的决策树,然后从底层向上计算是否剪枝。(剪枝是将子树删除,用一个叶子节点代替,节点类别按多数投票)如果剪枝之后准确率有提升,则剪枝。
  • 后剪枝的优缺点:
    优点:通常可以得到泛化能力更强的决策树。
    缺点:时间开销大
  • 常用的后剪枝方法:
    (1) 错误率降低剪枝(Reduced Error Pruning,REP)
    (2) 悲观剪枝(Pessimistic Error Pruning,PEP)
    (3)代价复杂度剪枝(Cost Complexity Pruning,CCP)
    (4)最小误差剪枝(Minimum Error Pruning,MEP)
    (5)CVP(Critical Value Pruning)
    (6)OOP(Optimal Pruning)
  • 代价复杂度剪枝CCP的步骤。
    (1) 从完整决策树T_0开始,生成一个子树序列\{T_0,T_1,...,T_n\},其中T_{i+1}T_i生成,T_n为根节点。(也就是说计算剪枝之后误差增加率,选最小的节点剪枝代替,一直剪枝,直到最后只剩下根节点,记录下这个过程中所有的树的样子)
    (2)在子树序列中,根据真实误差选择最佳的决策树。CCP对于从子树序列中选最优树有两种方法:1.从子树序列中选择最佳决策树。由于不是在所有可能的子树中寻找,性能上会有一定不足。2.基于k交叉验证,将数据集分成k份,前k-1份用于生成决策树,最后一份用于剪枝。重复进行N次,再从N个子树中选择最优子树。

小结

这一章的推导并不多,如果要看详细的算法推导还是要看下《统计学习方法》。这章在讲得非常通俗易懂的同时,对知识点也挖得很深,例如SVM,对统计学方法有很好的补充。这章让我很深刻的就是“在空间上线性可分的两类点,分别向SVM超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?”这个问题,超出了我目前的知识范围,还是要多熟悉原理才行。

结尾

如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容