参考:《机器学习》周志华
想对决策树做一个简单的回顾和总结,因为发现在Random Forest, GBDT和XGBoost中的基分类器中起到重要的作用。
决策树是非线性的。
定义
一般的,一颗决策树包含一个根节点,若干个内部节点和若干个叶子节点;叶节点对应于决策结果,根节点和内部节点对应一个属性。
叶节点的三种情况
- 当前节点包含的所有样本属于同一类别C。将该节点标记为C类叶节点
- 属性集为空,或者是所有样本在属性集上取值相同。将该节点标记为叶节点,其类别标记是该节点所含样本中类别数最多的类。
- 当前节点包含的样本集合为空。将该节点标记为叶节点,其类别标记是父节点中所含样本中类别数最多的类。
划分选择
决策树中关键的一步是:如何选择划分属性,即内部节点。我们希望落入叶子节点的样本尽可能地属于同一个类别,即叶子节点的纯度越高越好。
下面,我们介绍选择划分属性的不同方式:
-
ID3决策树使用的划分准则是信息增益(information gain)
首先介绍什么是熵:熵衡量事物的不确定性。熵越小,越确定,即样本纯度越高。信息熵:
E n t ( D ) = − ∑ i = 1 k p i l o g 2 ( p i ) Ent(D) = -\sum_{i=1}^{k}p_ilog_2(p_i) Ent(D)=−∑i=1kpilog2(pi),其中 k k k 表示类别总数, p i p_i pi 表示样本 D D D 中第 i i i 类别的样本所占的比例。
信息增益:
选择属性a进行划分带来的信息增益是:
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v )