学习心得

  • 信息增益表示节点分裂后带来的不确定性的降低或者纯度的提高,准确说是随机变量X确定后,随机变量Y不确定性的平均减少量。这个本质上是二元随机概率密度关于x和y的一元概率密度的KL散度,由Jensen不等式也可以推出当且仅当X和Y独立时KL散度值为0,即刚才的信息增益值为0.
  • 决策树根据不同的特征选择方案,分为了:ID3、C4.5、CART等算法。
  • ID3使用【信息增益】选择测试属性。从直觉上讲,小概率事件比大概率事件包含的信息量大,即百年一见的事情比习以为常的事情包含的信息量大。信息增益 = 信息熵 - 条件熵。特征取值越多就意味着确定性更高,即条件熵越小,信息增益越大。【南瓜书ML】(task3)决策树(更新ing)_人工智能
    其中【熵】指信息量的大小,即表示随机变量的不确定性,熵越大,随机变量的不确定性越大。如果用p(ai)表示事件ai发生的概率,熵则表示为事件【南瓜书ML】(task3)决策树(更新ing)_机器学习_02的信息量I(ai):
    【南瓜书ML】(task3)决策树(更新ing)_信息增益_03
    取任意随机变量的概率均相同时,不确定性越高,即均匀分布的信息熵最大。
  • 信息增益的缺陷:泛化能力弱。如,引入特征DNA,每个人的DNA都不同,如果ID3按照DNA特征进行划分一定是最优的(条件熵为0),但这种分类的泛化能力很弱。因此C4.5就对ID3进行优化,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特性,提升决策树的泛化能力。

ID3树

C4.5树

CART算法

评价标准

信息增益

信息增益比(增益率)

基尼指数

样本类型

离散型变量

连续型变量

连续型变量

任务

分类

分类

分类and回归(回归树使用最小平方误差)

  • CART树:
  • 回归问题:用均方误差(MSE)或平均绝对误差(MAE)来替换熵和条件熵的位置。
  • 分类问题:用基尼系数(CART将熵中的【南瓜书ML】(task3)决策树(更新ing)_决策树_04【南瓜书ML】(task3)决策树(更新ing)_决策树_05处利用一阶泰勒展开,基尼系数定义为熵的线性近似)。

文章目录

零、从一个栗子开始

【南瓜书ML】(task3)决策树(更新ing)_人工智能_06


通过信息增益计算的公式,我们可以计算我们的决策特征顺序,首先计算总的经验熵:

【南瓜书ML】(task3)决策树(更新ing)_决策树_07

然后让A1、A2、A3、A4分别表示年龄、有工作、有自己房子和信贷情况4个特征,则计算年龄的信息增益为:【南瓜书ML】(task3)决策树(更新ing)_决策树_08

同理其他的工作、房子和信贷对应的信息增益可以计算:【南瓜书ML】(task3)决策树(更新ing)_信息增益_09,可以比较发现特征A3(有自己的房子)的信息增益最大,所以我们选择特征A3作为第一个判定的特征。

一、信息论基础

1.1 节点纯度

树具有天然的分支结构。对于分类问题而言,决策树的思想是用节点代表样本集合,通过某些判定条件来对节点内的样本进行分配,将它们划分到该节点下的子节点,并且要求各个子节点中类别的纯度之和应高于该节点中的类别纯度,从而起到分类效果。

节点纯度:反映的节点样本标签的不确定性。
当一个节点的纯度较低时,说明每种类别都倾向于以比较均匀的频率出现,从而我们较难在这个节点上得到关于样本标签的具体信息,其不确定性较高。当一个节点的纯度很高时,说明有些类别倾向于以比较高的频率出现,有更多把握这个节点样本标签的具体信息,即确定性较高。

1.2 度量不确定性的函数H

那对于给定在【南瓜书ML】(task3)决策树(更新ing)_信息增益_10个状态上定义的离散分布【南瓜书ML】(task3)决策树(更新ing)_机器学习_11如何定义度量不确定性的函数【南瓜书ML】(task3)决策树(更新ing)_机器学习_12,即【南瓜书ML】(task3)决策树(更新ing)_人工智能_13呢?香农(1916-2001)于1948年,在创造信息论的著名论文​​​《A Mathematical Theory of Communication》​​中指出如下定理:

信息熵定理

(该定理证明见论文的Appendix 2)
若度量不确定性的函数【南瓜书ML】(task3)决策树(更新ing)_d3_14满足三个信息熵条件,则【南瓜书ML】(task3)决策树(更新ing)_d3_14的形式只能是

【南瓜书ML】(task3)决策树(更新ing)_人工智能_16

其中,信息熵条件如下:

  • 【南瓜书ML】(task3)决策树(更新ing)_d3_17关于【南瓜书ML】(task3)决策树(更新ing)_决策树_18是连续函数。
  • 【南瓜书ML】(task3)决策树(更新ing)_人工智能_19,则【南瓜书ML】(task3)决策树(更新ing)_d3_17关于【南瓜书ML】(task3)决策树(更新ing)_机器学习_21单调递增。
  • 若将某一个【南瓜书ML】(task3)决策树(更新ing)_决策树_18拆分为【南瓜书ML】(task3)决策树(更新ing)_机器学习_23【南瓜书ML】(task3)决策树(更新ing)_d3_24,即【南瓜书ML】(task3)决策树(更新ing)_机器学习_25,则

【南瓜书ML】(task3)决策树(更新ing)_人工智能_26

(1)从构造和计算的角度而言,条件一是容易满足的。
(2)对于条件二而言,假设原来箱子里分别有10个球和100个球,加入每次摸到的球都是等概率抽出的,那么100个球的箱子产生的不确定性必然是要大于10个球的箱子产生的不确定性,即【南瓜书ML】(task3)决策树(更新ing)_d3_14在等概率条件下关于【南瓜书ML】(task3)决策树(更新ing)_信息增益_10递增。

(3)条件三看上去比较复杂,但其意义是容易理解的,即【南瓜书ML】(task3)决策树(更新ing)_信息增益_10个事件拆分为【南瓜书ML】(task3)决策树(更新ing)_机器学习_30个事件时的不确定性增加了,并且增加的不确定性与拆分时的比例和拆分事件的概率有关。举例来说:将【南瓜书ML】(task3)决策树(更新ing)_信息增益_31分别拆分为【南瓜书ML】(task3)决策树(更新ing)_信息增益_32【南瓜书ML】(task3)决策树(更新ing)_信息增益_33,那么显然【南瓜书ML】(task3)决策树(更新ing)_决策树_34增加的不确定性远超过【南瓜书ML】(task3)决策树(更新ing)_机器学习_35;同时,将【南瓜书ML】(task3)决策树(更新ing)_信息增益_31分别拆分为【南瓜书ML】(task3)决策树(更新ing)_信息增益_37,那么显然【南瓜书ML】(task3)决策树(更新ing)_决策树_34增加的不确定性也远超过【南瓜书ML】(task3)决策树(更新ing)_机器学习_39

由于指标 【南瓜书ML】(task3)决策树(更新ing)_机器学习_12 中的自变量 【南瓜书ML】(task3)决策树(更新ing)_决策树_41 是对于某个随机变量 【南瓜书ML】(task3)决策树(更新ing)_信息增益_42 分布的描述,因此不妨将其记为信息熵 【南瓜书ML】(task3)决策树(更新ing)_信息增益_43 来反应 【南瓜书ML】(task3)决策树(更新ing)_信息增益_42 的不确定性。对于定义在有限状态集合【南瓜书ML】(task3)决策树(更新ing)_d3_45上的离散变量而言,对应信息熵的最大值在离散均匀分布时取到,最小值在单点分布时取到。此时,离散信息熵为
【南瓜书ML】(task3)决策树(更新ing)_d3_46
首先,我们需要定义当【南瓜书ML】(task3)决策树(更新ing)_机器学习_47【南瓜书ML】(task3)决策树(更新ing)_决策树_48,原因在于

【南瓜书ML】(task3)决策树(更新ing)_d3_49

离散熵的极值问题是带有约束的极值问题,记【南瓜书ML】(task3)决策树(更新ing)_决策树_50【南瓜书ML】(task3)决策树(更新ing)_信息增益_51,则约束条件为【南瓜书ML】(task3)决策树(更新ing)_d3_52,拉格朗日函数为
【南瓜书ML】(task3)决策树(更新ing)_机器学习_53

求偏导数后可解得【南瓜书ML】(task3)决策树(更新ing)_信息增益_54,此时【南瓜书ML】(task3)决策树(更新ing)_机器学习_55

补充材料:有关向量求导的内容可参考​​这个wiki页面​​中的描述。

对于离散随机变量【南瓜书ML】(task3)决策树(更新ing)_机器学习_56,由于【南瓜书ML】(task3)决策树(更新ing)_人工智能_57

【南瓜书ML】(task3)决策树(更新ing)_人工智能_58

从而【南瓜书ML】(task3)决策树(更新ing)_决策树_59
注意到对于【南瓜书ML】(task3)决策树(更新ing)_人工智能_60,当【南瓜书ML】(task3)决策树(更新ing)_决策树_61,即【南瓜书ML】(task3)决策树(更新ing)_机器学习_62时,【南瓜书ML】(task3)决策树(更新ing)_人工智能_63。因此,离散信息熵的最小值为0且在单点分布时取到。由于【南瓜书ML】(task3)决策树(更新ing)_机器学习_64是极值问题的唯一解,因此离散熵的最大值为【南瓜书ML】(task3)决策树(更新ing)_决策树_65且在离散均匀分布时取到。

1.3 条件熵

在决策树的分裂过程中,我们不但需要考察本节点的不确定性或纯度,而且还要考察子节点的平均不确定性或平均纯度来决定是否进行分裂。子节点的产生来源于决策树分支的条件,因此我们不但要研究随机变量的信息熵,还要研究在给定条件下随机变量的平均信息熵或条件熵【南瓜书ML】(task3)决策树(更新ing)_决策树_66 【南瓜书ML】(task3)决策树(更新ing)_d3_67)。从名字上看,条件熵就是条件分布的不确定性,那么自然可以如下定义条件熵【南瓜书ML】(task3)决策树(更新ing)_d3_68

【南瓜书ML】(task3)决策树(更新ing)_d3_69

对于离散条件熵,设随机变量【南瓜书ML】(task3)决策树(更新ing)_机器学习_56所有可能的取值为【南瓜书ML】(task3)决策树(更新ing)_机器学习_71,上式可展开为

【南瓜书ML】(task3)决策树(更新ing)_决策树_72

``

sklearn的​​sklearn.tree.DecisionTreeClassifier​​​的参数​​min_impurity_decrease​​用来描述父节点的不纯度 - 子节点的不纯度:

【南瓜书ML】(task3)决策树(更新ing)_机器学习_73

上图源自sklearn的sklearn.tree.DecisionTreeClassifier介绍


1.4 信息增益

有了信息熵和条件熵的基础,我们就能很自然地定义信息增益(Information Gain),即节点分裂之后带来了多少不确定性的降低或纯度的提高。在得到了随机变量【南瓜书ML】(task3)决策树(更新ing)_机器学习_56的取值信息时,随机变量 【南瓜书ML】(task3)决策树(更新ing)_信息增益_42

【南瓜书ML】(task3)决策树(更新ing)_人工智能_76

从直觉上说,随机变量【南瓜书ML】(task3)决策树(更新ing)_信息增益_42关于【南瓜书ML】(task3)决策树(更新ing)_机器学习_56的信息增益一定是非负的,因为我们额外地知道了随机变量【南瓜书ML】(task3)决策树(更新ing)_机器学习_56的取值,这个条件降低了【南瓜书ML】(task3)决策树(更新ing)_信息增益_42的不确定性。下面我们就从数学角度来证明其正确性。


定理:设【南瓜书ML】(task3)决策树(更新ing)_信息增益_42【南瓜书ML】(task3)决策树(更新ing)_机器学习_56为离散随机变量,【南瓜书ML】(task3)决策树(更新ing)_信息增益_42关于【南瓜书ML】(task3)决策树(更新ing)_机器学习_56的信息增益【南瓜书ML】(task3)决策树(更新ing)_d3_85非负。
证明:
由信息增益的定义得:
【南瓜书ML】(task3)决策树(更新ing)_机器学习_86

从上式可以发现,信息增益【南瓜书ML】(task3)决策树(更新ing)_人工智能_87在本质上就是【南瓜书ML】(task3)决策树(更新ing)_机器学习_88关于【南瓜书ML】(task3)决策树(更新ing)_d3_89的KL散度,而KL散度的非负性由Jensen不等式可得:

【南瓜书ML】(task3)决策树(更新ing)_人工智能_90


上述证明中的Jensen不等式的取等条件为【南瓜书ML】(task3)决策树(更新ing)_人工智能_91

其实际意义为随机变量【南瓜书ML】(task3)决策树(更新ing)_信息增益_42【南瓜书ML】(task3)决策树(更新ing)_机器学习_56独立。这个条件同样与直觉相符合,因为如果【南瓜书ML】(task3)决策树(更新ing)_信息增益_42【南瓜书ML】(task3)决策树(更新ing)_机器学习_56独立,那么意味着我们无论是否知道【南瓜书ML】(task3)决策树(更新ing)_机器学习_56的信息,都不会对【南瓜书ML】(task3)决策树(更新ing)_信息增益_42的不确定性产生影响,此时信息增益为0。

用信息增益的大小来进行决策树的节点分裂时,由于真实的分布函数未知,故用【南瓜书ML】(task3)决策树(更新ing)_d3_98【南瓜书ML】(task3)决策树(更新ing)_人工智能_99的经验分布(即频率)来进行概率的估计。若节点【南瓜书ML】(task3)决策树(更新ing)_信息增益_100每个分支下的样本数量为【南瓜书ML】(task3)决策树(更新ing)_机器学习_101,记【南瓜书ML】(task3)决策树(更新ing)_决策树_102【南瓜书ML】(task3)决策树(更新ing)_决策树_103【南瓜书ML】(task3)决策树(更新ing)_机器学习_104分别为节点中第k个类别的样本占节点总样本的比例和第m个子节点中第k个类别的样本数量占该子节点总样本的比例,则节点【南瓜书ML】(task3)决策树(更新ing)_信息增益_100分裂的信息增益定义为

【南瓜书ML】(task3)决策树(更新ing)_人工智能_106

【练习
定义【南瓜书ML】(task3)决策树(更新ing)_信息增益_107联合熵【南瓜书ML】(task3)决策树(更新ing)_d3_108【南瓜书ML】(task3)决策树(更新ing)_人工智能_109

对于两个离散随机变量X和Y,假设X取值集合为【南瓜书ML】(task3)决策树(更新ing)_人工智能_110,Y取值集合为【南瓜书ML】(task3)决策树(更新ing)_d3_111,其联合概率分布满足为 【南瓜书ML】(task3)决策树(更新ing)_人工智能_112,则X和Y的联合熵(Joint Entropy)为【南瓜书ML】(task3)决策树(更新ing)_机器学习_113𝑋 和𝑌 的条件熵(Conditional Entropy)为【南瓜书ML】(task3)决策树(更新ing)_机器学习_114条件熵根据上面提到的定义也可以写成【南瓜书ML】(task3)决策树(更新ing)_d3_115

(1)请证明如下关系:

1)【南瓜书ML】(task3)决策树(更新ing)_人工智能_116

【南瓜书ML】(task3)决策树(更新ing)_机器学习_117


2)【南瓜书ML】(task3)决策树(更新ing)_d3_118

在上面式子基础上结合【南瓜书ML】(task3)决策树(更新ing)_决策树_119即可。

3)【南瓜书ML】(task3)决策树(更新ing)_决策树_120

结合1)和2)(2)下图被分为了A、B和C三个区域。若AB区域代表X的不确定性,BC区域代表Y的不确定性,那么【南瓜书ML】(task3)决策树(更新ing)_机器学习_121【南瓜书ML】(task3)决策树(更新ing)_信息增益_43【南瓜书ML】(task3)决策树(更新ing)_人工智能_123【南瓜书ML】(task3)决策树(更新ing)_d3_68【南瓜书ML】(task3)决策树(更新ing)_d3_108【南瓜书ML】(task3)决策树(更新ing)_d3_85分别指代的是哪片区域?

答:【南瓜书ML】(task3)决策树(更新ing)_机器学习_121指AB区域;【南瓜书ML】(task3)决策树(更新ing)_信息增益_43指BC区域;

【南瓜书ML】(task3)决策树(更新ing)_人工智能_123指A区域;【南瓜书ML】(task3)决策树(更新ing)_d3_68指C区域;

【南瓜书ML】(task3)决策树(更新ing)_d3_108指ABC区域;【南瓜书ML】(task3)决策树(更新ing)_d3_85指B区域。

【南瓜书ML】(task3)决策树(更新ing)_机器学习_133

二、分类树的节点分裂

2.1 ID3算法

对于每个节点进行分裂决策时,我们会抽出​​max_features​​个特征进行遍历以比较信息增益的大小。特征的类别可以分为三种情况讨论:类别特征、数值特征和含缺失值的特征,它们各自的处理方法略有不同。

【南瓜书ML】(task3)决策树(更新ing)_信息增益_134

上图源自李航《统计学习方法》课件


对于类别特征而言,给定一个阈值【南瓜书ML】(task3)决策树(更新ing)_信息增益_135,树的每一个节点会选择最大信息增益【南瓜书ML】(task3)决策树(更新ing)_决策树_136对应的特征进行分裂,直到所有节点的相对最大信息增益【南瓜书ML】(task3)决策树(更新ing)_决策树_137小于【南瓜书ML】(task3)决策树(更新ing)_信息增益_135【南瓜书ML】(task3)决策树(更新ing)_d3_139【南瓜书ML】(task3)决策树(更新ing)_信息增益_140分别指节点【南瓜书ML】(task3)决策树(更新ing)_信息增益_100的样本个数和整个数据集的样本个数,这种生成算法称为ID3算法。在sklearn中,【南瓜书ML】(task3)决策树(更新ing)_信息增益_135即为​​​min_impurity_decrease​​。

2.2 C4.5算法

C4.5算法在ID3算法的基础上做出了诸多改进,包括但不限于:处理数值特征、处理含缺失值的特征、使用信息增益比代替信息增益以及给出树的剪枝策略

PS:其中,剪枝策略将在第4节进行讲解,下面先对前3个改进的细节来进行介绍。

(1)处理数值特征

在处理节点数值特征时,可以用两种方法来将数值特征通过分割转化为类别,它们分别是最佳分割法和随机分割法,分别对应了sklearn中​​splitter​​​参数的​​best​​​选项和​​random​​选项。

1)随机分割法

随机分割法下,取【南瓜书ML】(task3)决策树(更新ing)_人工智能_143

其中【南瓜书ML】(task3)决策树(更新ing)_信息增益_144代表特征最小值和最大值范围上的均匀分布,将节点样本按照特征【南瓜书ML】(task3)决策树(更新ing)_决策树_145中的元素是否超过【南瓜书ML】(task3)决策树(更新ing)_人工智能_146把样本划分为两个集合,这等价于把数值变量转换为了类别变量。此时,根据这两个类别来计算树节点分裂的信息增益,并将它作为这个数值特征分裂的信息增益。

【练习】假设当前我们需要处理一个分类问题,请问对输入特征进行归一化会对树模型的类别输出产生影响吗?请解释原因。
【答】不会产生影响,最佳的信息增益是根据y的标签计算。

2)最佳分割法

最佳分割法下,依次令【南瓜书ML】(task3)决策树(更新ing)_人工智能_146取遍所有的【南瓜书ML】(task3)决策树(更新ing)_信息增益_148,将其作为分割点,按照特征【南瓜书ML】(task3)决策树(更新ing)_决策树_145中的元素是否超过【南瓜书ML】(task3)决策树(更新ing)_人工智能_146把样本划分为两个集合,计算所有【南瓜书ML】(task3)决策树(更新ing)_人工智能_146对应信息增益的最大值,并将其作为这个数值特征分裂的信息增益。

(2)处理含缺失值的特征

C4.5算法处理缺失数据,样本的缺失值占比越大,那么对信息增益的惩罚就越大,这是因为缺失值本身就是一种不确定性成分。设节点【南瓜书ML】(task3)决策树(更新ing)_信息增益_100的样本缺失值比例为【南瓜书ML】(task3)决策树(更新ing)_人工智能_153,记非缺失值对应的类别标签和特征分别为【南瓜书ML】(task3)决策树(更新ing)_信息增益_154【南瓜书ML】(task3)决策树(更新ing)_d3_155,则修正的信息增益为

【南瓜书ML】(task3)决策树(更新ing)_信息增益_156

【练习】如果将系数替换为【南瓜书ML】(task3)决策树(更新ing)_d3_157,请问对缺失值是加强了还是削弱了惩罚?
【答】削弱了惩罚项,即保留了更多,如【南瓜书ML】(task3)决策树(更新ing)_决策树_158=0.1,这样系数会变大。

当数据完全缺失时【南瓜书ML】(task3)决策树(更新ing)_人工智能_159,信息增益为0;当数据没有缺失值时【南瓜书ML】(task3)决策树(更新ing)_d3_160,信息增益与原来的值保持一致。

(3)使用信息增益比代替信息增益

在C4.5算法中,使用了信息增益比来代替信息增益,其原因在于信息增益来选择的决策树对类别较多的特征具有天然的倾向性,例如当某一个特征【南瓜书ML】(task3)决策树(更新ing)_机器学习_56(身份证号码、学号等)的类别数恰好就是样本数量时,此时由于【南瓜书ML】(task3)决策树(更新ing)_人工智能_162,即【南瓜书ML】(task3)决策树(更新ing)_d3_85达到最大值,因此必然会优先选择此特征进行分裂,但这样的情况是非常不合理的(会导致过拟合)。

【南瓜书ML】(task3)决策树(更新ing)_机器学习_164

上图源自李航《统计学习方法》课件


我们在第1节已经证明了,在类别占比均匀的情况下,类别数越多则熵越高,因此我们可以使用特征对应的熵来进行惩罚,即熵越高的变量会在信息增益上赋予更大程度的抑制,由此我们可以定义信息增益比为

【南瓜书ML】(task3)决策树(更新ing)_人工智能_165

在前面的部分中,我们讨论了单个节点如何选取特征进行分裂,但没有涉及到树节点的分裂顺序。例如下图所示,假设当前已经处理完了节点2的分裂,所有黄色节点(包括2号节点)都是当前已经存在的树节点,那么我们接下来究竟应该选取叶节点3号、4号和5号中的哪一个节点来继续进行决策以生成新的叶节点6号和7号?

【南瓜书ML】(task3)决策树(更新ing)_人工智能_166

在sklearn中提供了两种生长模式,它们分别被称为深度优先生长和最佳增益生长,当参数​​max_leaf_nodes​​使用默认值None时使用前者,当它被赋予某个数值时使用后者。

  • 深度优先生长采用深度优先搜索的方法:若当前节点存在未搜索过的子节点,则当前节点跳转到子节点进行分裂决策;若当前节点为叶节点,则调转到上一层节点,直到根节点不存在未搜索过的子节点为止。对上图而言,当前节点为2号,它的两个子节点4号和5号都没有被搜索过,因此下一步则选择两个节点中的一个进行跳转。

当决策树使用最佳增益生长时,每次总是选择会带来最大相对信息增益的节点进行分裂,直到叶节点的最大数量达到​​max_left_nodes​​。

【练习】如果将树的生长策略从深度优先生长改为广度优先生长,假设其他参数保持不变的情况下,两个模型对应的结果输出可能不同吗?
【答】不影响。如果使用​​​max_left_nodes​​​则一定会使用最佳优先生长,但当参数​​max_leaf_nodes​​使用默认值None时为深度优先生长。

三、注意事项

1. sklearn决策树中的random_state参数控制了哪些步骤的随机性?

关于sklearn的​​sklearn.tree.DecisionTreeClassifier​​​可以参考​​官网​​​。
​​​random_state​​​参数控制了特征选择的随机性,类似​​random.seed()​​,能够保证决策树模型复现的结果相同,便于模型参数调优。

clf = tree.DecisionTreeClassifier(criterion="entropy",random_state=30)

另外,​​splitter​​​控制决策树中的随即选项:
1)最佳分割法即​​​best​​参数:决策树在分支时虽然随机,但还是会优先选择更重要(按照不纯度设置的基尼系数或信息熵的值)的特征进行分支。

2)随机分割法即​​random​​参数:决策树在分支时更加随机,树会因为含有更多的不必要信息而更深更大,从而导致过拟合。

2. 决策树如何处理连续变量和缺失变量?

ID3只能处理离散型变量,而C4.5和CART都可以处理连续型变量。

  • C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换为多个取值区间的离散型变量。
  • CART构建时每次都会对特征进行二值划分,能很好适用于连续性变量。

【处理连续变量】
C4.5算法在处理节点数值特征时,可以用两种方法来将数值特征通过分割转化为类别,它们分别是最佳分割法和随机分割法,分别对应了sklearn中​​​splitter​​​参数的​​best​​​选项和​​random​​选项。

【处理含缺失值的特征】
C4.5算法处理缺失数据的思想非常简单,样本的缺失值占比越大,那么对信息增益的惩罚就越大,这是因为缺失值本身就是一种不确定性成分。设节点【南瓜书ML】(task3)决策树(更新ing)_信息增益_100的样本缺失值比例为【南瓜书ML】(task3)决策树(更新ing)_人工智能_153,记非缺失值对应的类别标签和特征分别为【南瓜书ML】(task3)决策树(更新ing)_信息增益_154【南瓜书ML】(task3)决策树(更新ing)_d3_155,则修正的信息增益为

【南瓜书ML】(task3)决策树(更新ing)_信息增益_156

当数据完全缺失时【南瓜书ML】(task3)决策树(更新ing)_人工智能_159,信息增益为0;当数据没有缺失值时【南瓜书ML】(task3)决策树(更新ing)_d3_160,信息增益与原来的值保持一致。

3. 基尼系数是什么?为什么要在CART中引入它?

当处理分类问题时,虽然ID3或C4.5定义的熵仍然可以使用,但是由于对数函数【南瓜书ML】(task3)决策树(更新ing)_人工智能_174的计算代价较大,CART将熵中的【南瓜书ML】(task3)决策树(更新ing)_人工智能_174【南瓜书ML】(task3)决策树(更新ing)_决策树_176处利用一阶泰勒展开,基尼系数定义为熵的线性近似,即由于

【南瓜书ML】(task3)决策树(更新ing)_机器学习_177

从而定义基尼系数为

【南瓜书ML】(task3)决策树(更新ing)_机器学习_178

4. 什么是树的预剪枝和后剪枝?具体分别是如何操作的?

一棵完全生长的决策树会导致过拟合,如考虑DNA特征(每个人的DNA不同),完全生长的决策树所对应的每个叶结点中只会包含一个样本(会导致决策树过拟合,即在训练集上预测效果差)。为了提高模型泛化能力,需要对决策树进行剪枝。

(1)预剪枝

1)当树到达一定深度的时候,停止树的生长。
2)当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
3)计算每次分裂对测试集的准确度提升,当小于某个阈值的时候,不再继续扩展。

(2)后剪枝

先让算法生成一棵完全生长的决策树,然后从最底层向上计算是否剪枝。剪枝时将子树删除,用一个叶子结点替代,该结点的类别同样按照多数投票的原则判断。

Reference

[1] 陈希孺编著.概率论与数理统计[M].中国科学技术大学出版社,2009
[2] B 站视频教程:https://www.bilibili.com/video/BV1Mh411e7VU
[3] 线上南瓜书:https://datawhalechina.github.io/pumpkin-book/#/chapter1/chapter1
[4] 开源地址:https://github.com/datawhalechina/pumpkin-book