机器学习 面试题-第七章 决策树(大厂必问,历经半年整理)

老铁们✌,重要通知🙌!福利来了!!!😉

【计算机视觉 复习流程剖析及面试题详解 】
【深度学习算法 最全面面试题(30 页)】
【机器学习算法 最全面面试题(61页)】

7.决策树

7.1 ID3算法

核心是在决策树各个节点上应用 信息增益 准则选择特征,递归的构建决策树。
具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归的调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。
ID3相当于用极大似然法进行概率模型的选择。
使用 二元切分法 则易于对树构建过程中进行调整以处理连续型特征。
具体的处理方法是: 如果特征值大于给定值就走左子树,否则走右子树。另外二元切分法也节省了树的构建时间。

7.2 C4.5算法

算法用信息增益率选择特征,在树的构造过程中会进行剪枝操作优化,能够自动完成对连续属性的离散化处理;在选择分割属性时选择信息增益率最大的属性。

7.2.1 既然信息增益可以计算,为什么C4.5还使用信息增益比?

在使用信息增益的时候,如果某个特征有很多取值,使用这个取值多的特征会的大的信息增益,这个问题是出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的机率更大。使用信息增益比就是为了解决偏向于选择取值较多的特征的问题. 使用信息增益比对取值多的特征加上的惩罚,对这个问题进行了校正.

7.3 CART算法

分类与回归树 —— 使用二元切分法来处理连续型数值。
使用Gini作为分割属性选择的标准,择Gini最大的作为当前数据集的分割属性。
Gini:表示在样本集合中一个随机选中的样本被分错的概率。
Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。
即 基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率
在这里插入图片描述

CART算法由以下两步组成:
决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。

7.3.1 基尼指数和信息熵都表示数据不确定性,为什么CART使用基尼指数?

信息熵0, logK都是值越大,数据的不确定性越大. 信息熵需要计算对数,计算量大;信息熵是可以处理多个类别,基尼指数就是针对两个类计算的,由于CART树是一个二叉树,每次都是选择yes or no进行划分,从这个角度也是应该选择简单的基尼指数进行计算.

7.3.2 基尼系数(Gini)存在的问题?

基尼指数偏向于多值属性;当类数较大时,基尼指数求解比较困难;基尼指数倾向于支持在两个分区中生成大小相同的测试。

7.4 ID3 vs C4.5 vs CART

在这里插入图片描述

7.5 决策树

定义: 决策树就是一棵树,其中跟节点和内部节点是输入特征的判定条件,叶子结点就是最终结果。
其损失函数通常是 正则化的极大似然函数;
目标是 以损失函数为目标函数的最小化。
算法通常是一个 递归的选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类过程。
决策树量化纯度:
判断数据集“纯”的指标有三个:Gini指数、熵、错误率

7.5.1 决策树的数据split原理或者流程?

1.将所有样本看做一个节点
2.根据纯度量化指标.计算每一个特征的’纯度’,根据最不’纯’的特征进行数据划分
3.重复上述步骤,知道每一个叶子节点都足够的’纯’或者达到停止条件
背诵:按照基尼指数、信息增益来选择特征,保证划分后纯度尽可能高。

7.5.2 构造决策树的步骤?

1.特征选择
2.决策树的生成(包含预剪枝)  ---- 只考虑局部最优
3.决策树的剪枝(后剪枝)      ---- 只考虑全局最优

7.5.3 决策树算法中如何避免过拟合和欠拟合?‍

过拟合:选择能够反映业务逻辑的训练集去产生决策树;
剪枝操作(前置剪枝和后置剪枝); K折交叉验证(K-fold CV)
欠拟合:增加树的深度,RF

7.5.4 决策树怎么剪枝?

分为预剪枝和后剪枝,预剪枝是在决策树的构建过程中加入限制,比如控制叶子节点最少的样本个数,提前停止;
后剪枝是在决策树构建完成之后,根据加上正则项的结构风险最小化自下向上进行的剪枝操作.
剪枝的目的就是防止过拟合,是模型在测试数据上变现良好,更加鲁棒.

7.5.5 决策树的优缺点?

决策树的优点:
1.决策树模型可读性好,具有描述性,有助于人工分析;
2.效率高,决策树只需要一次性构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。
决策树的缺点:
1.即使做了预剪枝,它也经常会过拟合,泛化性能很差。
2.对中间值的缺失敏感;
3.ID3算法计算信息增益时结果偏向数值比较多的特征。

7.5.6 决策树和条件概率分布的关系?

决策树可以表示成给定条件下类的条件概率分布. 决策树中的每一条路径都对应是划分的一个条件概率分布. 每一个叶子节点都是通过多个条件之后的划分空间,在叶子节点中计算每个类的条件概率,必然会倾向于某一个类,即这个类的概率最大.

7.5.7 为什么使用贪心和其发生搜索建立决策树,为什么不直接使用暴力搜索建立最优的决策树?

决策树目的是构建一个与训练数据拟合很好,并且复杂度小的决策树. 因为从所有可能的决策树中直接选择最优的决策树是NP完全问题,在使用中一般使用启发式方法学习相对最优的决策树.

7.5.8 如果特征很多,决策树中最后没有用到的特征一定是无用吗?

不是无用的,从两个角度考虑,一是特征替代性,如果可以已经使用的特征A和特征B可以提点特征C,特征C可能就没有被使用,但是如果把特征C单独拿出来进行训练,依然有效. 其二,决策树的每一条路径就是计算条件概率的条件,前面的条件如果包含了后面的条件,只是这个条件在这棵树中是无用的,如果把这个条件拿出来也是可以帮助分析数据.

7.5.9 决策树怎么做回归?

给回归定义一个损失函数,比如 L2 损失,可以把分叉结果量化;最终的输出值,是分支下的样本均值。 [切分点选择:最小二乘法]; [输出值:单元内均值].

7.5.10 决策树算法的停止条件?

1.最小节点数
当节点的数据量小于一个指定的数量时,不继续分裂。两个原因:一是数据量较少时,再做分裂容易强化噪声数据的作用;二是降低树生长的复杂性。提前结束分裂一定程度上有利于降低过拟合的影响。
2.熵或者基尼值小于阀值。
当熵或者基尼值过小时,表示数据的纯度比较大,如果熵或者基尼值小于一定程度数,节点停止分裂。
3.决策树的深度达到指定的条件
决策树的深度是所有叶子节点的最大深度,当深度到达指定的上限大小时,停止分裂。
4.所有特征已经使用完毕,不能继续进行分裂。

7.5.11 为什么决策树之前用PCA会好一点?

决策树的本质在于选取特征,然后分支。 PCA解除了特征之间的耦合性,并且按照贡献度给特征排了个序,这样更加方便决策树选取特征。
熵(entropy)
是表示随机变量不确定性的度量,是用来衡量一个随机变量出现的期望值。
如果信息的不确定性越大,熵的值也就越大,出现的各种情况也就越多。
在这里插入图片描述

条件熵(H(Y∣X)):表示在已知随机变量X的条件下随机变量Y的不确定性,其定义为X在给定条件下Y的条件概率分布的熵对X的数学期望:
在这里插入图片描述

二次代价函数
二次代价函数训练NN,看到的实际效果是,如果误差越大,参数调整的幅度可能更小,训练更缓慢。
在这里插入图片描述

交叉熵
用于度量两个概率分布间的差异性信息。语言模型的性能通常用交叉熵和复杂度来衡量。
交叉熵代价函数带来的训练效果往往比二次代价函数要好。
在这里插入图片描述
交叉熵代价函数是如何产生的?
在这里插入图片描述

7.6 信息增益

定义: 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g(D,A)=H(D)-H(D|A)
信息增益: 表示由于特征A使得对数据集D的分类的不确定性减少的程度。
信息增益 = entroy(前) - entroy(后)

在这里插入图片描述

特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。

7.6.1为什么信息增益偏向取值较多的特征(缺点)?

当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。

7.7信息增益率

信息增益率 = 惩罚参数 * 信息增益 (即信息增益和特征熵的比值)

信息增益比本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
惩罚参数: 数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(数据集的熵是依据类别进行划分的)。
当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。

7.7.1如何使用信息增益比?

在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

7.8 Hard Voting vs Soft Voting

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cc13186851239

觉得不错的,鼓励一下我,奥利给

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值