目录:
- 导言
- 信息增益
- 决策树的分类
3.1 ID3决策树
3.2 C4.5决策树
3.3 CART决策树 - 决策树剪枝算法
4.1 悲观剪枝法
4.2 错误率剪枝法
4.3 代价复杂度剪枝法 - 基于决策树的集成学习算法
5.1 GBDT算法
5.2 XGBOOST算法
5.3 LightGBM算法
5.4 CATBOOST算法
1、导言
决策树是机器学习中一种基本的分类与回归算法,也是构成很多集成算法的基础。决策树是基于树的结构来进行判别的,当然也可以认为它本质上是if-then规则的集合。
假设我们要判断一个瓜是否为好瓜。对于这样的问题,人们一般的整个决策过程可以用下图来表示。
一般情况下,一个完整的决策树包含一个根结点、n个内部结点和m个叶子结点。显然,叶子结点对应的就是我们想要的决策结果,剩余的结点对应的都是一个属性判断,每个结点包含的样本集合通过该属性判断,将其划分到下面的子结点上,然后不停地递归生成子结点。整个学习过程如下图所示:
对于一个基本的决策树的递归生成过程中,有三种情况会导致递归返回:
- 当前结点包含的样本属于同一个类别,无需再划分。
- 当前的属性集为空,或者当前样本集在所有属性上取值都一样,无法划分。
- 当前结点包含的样本集为空,不能再划分。
2. 信息熵
决策树的学习过程的关键在于第8步,即如何选择最优的划分属性,我们的目标是随着学习不断地进行,决策树的子节点所包含的样本“纯度”尽可能高。这里就要介绍一下信息熵和信息增益的概念:
信息熵能很直观地反应样本的“纯度”。
在信息论中,熵(entropy)是衡量随机变量不确定性的一个指标。假设当前样本集合D中,第 k k k类样本所占的比例为 p k ( k = 1 , 2 , . . . , ∣ y ∣ ) p_k(k=1,2,...,|y|) pk(k=1,2,...,∣y∣),那么 D D D的信息熵可以表示为
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D) = -\sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=−k=1∑∣y∣pklog2pk
不难看出, E n t ( D ) Ent(D) Ent(D)的值越小,样本集 D D D的纯度越高。
信息增益能很直观地反映出某个属性对结点样本划分所起到的贡献。
假设对于某个离散属性 a a a,它有 n n n个可能的取值{
a 1 , a 2 , . . . , a n a^1, a^2,...,a^n a1,a2,...,an},对于使用属性 a a a作为划分依据的样本集 D D D,经过划分会产生 N N N个分支,其中,样本集 D D D中该属性值为 a n a^n an的样本全都被划分至第 n n n个结点,极为 D n D^n Dn;根据信息熵计算公式,对于每个子结点都能计算出 D n D^n Dn的信息熵,再将每个结点的样本数作为权重,对所有子结点的信息熵求加权平均值,便可计算出利用属性 a a a划分样本集 D D D所得到的信息增益: G a i n ( D , a ) = E n t ( D ) − ∑ n = 1 N ∣ D n ∣ ∣ D ∣ E n t ( D n ) Gain(D,a)=Ent(D)-\sum_{n=1}^N\frac{\vert{D^n}\vert}{\vert{D}\vert}Ent(D^n) Gain(D,a)=Ent(D)−n=1∑