如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
一颗决策树包含一个根节点、若干个内部节点、若干个叶子节点,叶子节点对应于决策结果,其他每个节点对应于一个属性测试。
构建决策树算法如下图所示(图源:机器学习):
有以下三种情况递归返回:
- 当前节点的所有样本都属于同一个类别
- 当前可划分的属性集为空,或者属性集的取值都相同
- 当前节点的样本集为空
1. 划分选择
1.1. ID3决策树
信息熵(information entropy)越小,则节点纯度越高,其中 p k p_k pk表示第 k k k类样本所占比例:
E n t ( D ) = − ∑ k = 1 ∣ K ∣ p k log 2 p k Ent(D)=-\sum_{k=1}^{|K|}p_k\log_2p_k Ent(D)=−k=1∑∣K∣pklog2pk
信息增益(information gain)越大,则意味使用属性 a a a划分获得的纯度提升越大,其中 D v D^v Dv表示为 D D D中在属性 a a a上取值为 a v a^v av的样本:
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
信息增益更偏向于选择取值较多的特征。
ID3决策树每次划分节点时,使用信息增益最大的属性。
1.2. C4.5决策树
增益率(gain ratio)在信息增益的基础上,除以属性 a a a的固有值 I V ( a ) IV(a) IV(a),属性 a a a取值数目越多,固有值 I V ( a ) IV(a) IV(a)越大:
G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) = G a i n ( D , a ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log 2 ∣ D v ∣ ∣ D ∣ Gain\ ratio(D,a)=\frac{Gain(D,a)}{IV(a)}=\frac{Gain(D,a)}{-\sum_{v=1}^V\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}} Gain ratio(D,a