一、练习题
1. 练习01
解答:
(1)
(2)
结合
可以得到
(3)
通过上面已经得到的公式,很容易证明
(4)
H(X)对应A U B, H(Y)对应B U C, H(X|Y)对应A, H(Y|X)对应C, H(Y,X)对应AUBUC, G(Y,X)对应B
2. 练习02
【练习】假设当前我们需要处理一个分类问题,请问对输入特征进行归一化会对树模型的类别输出产生影响吗?请解释原因。
解答:不会,因为归一化处理不会改变样本输入特征和样本标签类别的分布,会得到一样的树。
3. 练习03
【练习】如果将系数替换为1−γ^2,请问对缺失值是加强了还是削弱了惩罚?
解答:因为γ<1,所以是削弱了惩罚。
4.练习04
【练习】如果将树的生长策略从深度优先生长改为广度优先生长,假设其他参数保持不变的情况下,两个模型对应的结果输出可能不同吗?
解答:由于同一层级子节点已经对样本进行了划分,所以深度优先和广度优先生成的模型应该是一样的。
5. 练习05
【练习】在一般的机器学习问题中,我们总是通过一组参数来定义模型的损失函数,并且在训练集上以最小化该损失函数为目标进行优化。请问对于决策树而言,模型优化的目标是什么?
解答:应该是信息增益最大化,考虑到预剪枝和后剪枝,应该是各种约束条件下的信息增益最大化。
6.练习06
【练习】对信息熵中的log函数在p=1处进行一阶泰勒展开可以近似为基尼系数,那么如果在p=1处进行二阶泰勒展开我们可以获得什么近似指标?请写出对应指标的信息增益公式。
7. 练习07
因为该纯度指标在单一分布时取最小值0,在均匀分布时取最大值,且该指标是单调的。
8.练习08
【练习】为什么对没有重复特征值的数据,决策树能够做到损失为0?
解答:因为没有重复特征值的情况下,决策树的节点可以一直向下分直到每个叶节点都只有1个样本数据。
9.练习09
【练习】如何理解min_samples_leaf参数能够控制回归树输出值的平滑程度?
解答:因为叶节点样本数越小,其样本均值用来做估计的平滑程度越低,均方差越大。
二、知识回顾
1. ID3树算法、C4.5树算法和CART算法之间有何异同?
解答: ID3用最大信息增益来进行节点分裂。C4.5在ID3基础上做出了诸多改进,包括但不限于:处理数值特征、处理含缺失值的特征、使用信息增益比代替信息增益以及给出树的剪枝策略。
CART是一颗二叉树,只是现在不再以熵(条件熵)来评价节点(子节点)的纯度。对于数值标签而言,我们可以认为节点间元素大小越接近则纯度越高,因此可以考虑使用均方误差(MSE)或平均绝对误差(MAE)来替换熵和条件熵的位置。当处理分类问题时,CART将熵中的loglog在p=1p=1处利用一阶泰勒展开,基尼系数定义为熵的线性近似。
2. 什么是信息增益?它衡量了什么指标?它有什么缺陷?
解答:在信息熵和条件熵的基础上,可以定义信息增益,即在得到了随机变量X的取值信息时,随机变量Y不确定性的平均减少量。即节点分裂之后带来了多少不确定性的降低或纯度的提高。
信息增益来选择的决策树对类别较多的特征具有天然的倾向性,在类别占比均匀的情况下,类别数越多则熵越高,使用了信息增益比来代替信息增益更合适。
3. sklearn决策树中的random_state参数控制了哪些步骤的随机性?
解答:抽出max_features个特征的随机性,对于数值特征采用随机分割法时的随机性。
4. 决策树如何处理连续变量和缺失变量?
解答:连续的数值特征可以采用最佳分割法和随机分割法。样本的缺失值占比越大,那么对信息增益的惩罚就越大。设节点N的样本缺失值比例为γ
5. 基尼系数是什么?为什么要在CART中引入它?
解答:由于对数函数log的计算代价较大,CART将熵中的log在p=1处利用一阶泰勒展开,基尼系数定义为熵的线性近似。
6. 什么是树的预剪枝和后剪枝?具体分别是如何操作的?
解答:预剪枝是指树在判断节点是否分裂的时候就预先通过一些规则来阻止其分裂,后剪枝是指在树的节点已经全部生长完成后,通过一些规则来摘除一些子树。
预剪枝策略通过参数控制,它们分别是最大树深度max_depth、节点分裂的最小样本数min_samples_split、叶节点最小样本数min_samples_leaf、节点样本权重和与所有样本权重和之比的最小比例min_weight_fraction_leaf、最大叶节点总数max_leaf_nodes以及之前提到的分裂阈值min_impurity_decrease。