参考:《机器学习》周志华
想对决策树做一个简单的回顾和总结,因为发现在Random Forest, GBDT和XGBoost中的基分类器中起到重要的作用。
决策树是非线性的。
定义
一般的,一颗决策树包含一个根节点,若干个内部节点和若干个叶子节点;叶节点对应于决策结果,根节点和内部节点对应一个属性。
叶节点的三种情况
- 当前节点包含的所有样本属于同一类别C。将该节点标记为C类叶节点
- 属性集为空,或者是所有样本在属性集上取值相同。将该节点标记为叶节点,其类别标记是该节点所含样本中类别数最多的类。
- 当前节点包含的样本集合为空。将该节点标记为叶节点,其类别标记是父节点中所含样本中类别数最多的类。
划分选择
决策树中关键的一步是:如何选择划分属性,即内部节点。我们希望落入叶子节点的样本尽可能地属于同一个类别,即叶子节点的纯度越高越好。
下面,我们介绍选择划分属性的不同方式:
-
ID3决策树使用的划分准则是信息增益(information gain)
首先介绍什么是熵:熵衡量事物的不确定性。熵越小,越确定,即样本纯度越高。
信息熵:
Ent(D)=−∑i=1kpilog2(pi),其中
k 表示类别总数,
pi 表示样本
D 中第
i 类别的样本所占的比例。
信息增益:
选择属性a进行划分带来的信息增益是:
Gain(D,a)=Ent(D)−∑v=1V∣D∣∣Dv∣Ent(Dv),其中
V 是属性
a 的取值个数,
Dv是属性
a 的取值为
v 的样本个数。
信息增益越大,意味着该属性进行划分之后,样本纯度更高一些。因此,在ID3中,划分属性选择方法为:
a∗=argmaxa∈AGain(D,a)。其中
A 为所有属性。
信息增益准则对可取值数目较多的属性有所偏好。
-
C4.5决策树使用的划分准则是增益率(gain ratio)
Gain_ratio(D,a)=IV(a)Gain(D,a)
其中
IV(a)=−∑v=1V∣D∣∣Dv∣log2∣D∣∣Dv∣。 属性
a 的可能取值数目越多,
IV(a) 的值通常会越大。
增益率准则对可取值数目较少的属性有所偏好。
!!!C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中选出信息增益高于平均水平的属性,再从中选择增益率最高的。
- CART树使用基尼指数(Gini index)
Gini(D)=1−∑i=1kpi2,其中
k是样本类别数。
Gini(D) 反映了从样本集
D 中抽取两个样本,它们类别不同的概率。因此,
Gini(D) 越小,样本集
D 的纯度越高。
Gini_index(D,a)=∑v=1V∣D∣∣Dv∣Gini(Dv) , 选择
Gini_index 最小的属性作为划分属性。
CART解决回归问题
在上面的划分选择一节里,我们重点关注的是针对分类问题,如何选择最优划分属性。CART(Classification and regression tree), 正如它的名字,可以看出,CART可以解决分类和回归问题。