决策树(一)

参考:《机器学习》周志华

想对决策树做一个简单的回顾和总结,因为发现在Random Forest, GBDT和XGBoost中的基分类器中起到重要的作用。

决策树是非线性的。

定义

一般的,一颗决策树包含一个根节点,若干个内部节点和若干个叶子节点;叶节点对应于决策结果,根节点和内部节点对应一个属性。

叶节点的三种情况

  1. 当前节点包含的所有样本属于同一类别C。将该节点标记为C类叶节点
  2. 属性集为空,或者是所有样本在属性集上取值相同。将该节点标记为叶节点,其类别标记是该节点所含样本中类别数最多的类。
  3. 当前节点包含的样本集合为空。将该节点标记为叶节点,其类别标记是父节点中所含样本中类别数最多的类。

划分选择
决策树中关键的一步是:如何选择划分属性,即内部节点。我们希望落入叶子节点的样本尽可能地属于同一个类别,即叶子节点的纯度越高越好。

下面,我们介绍选择划分属性的不同方式:

  • 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) ,其中 k k 表示类别总数, p i p_i 表示样本 D D 中第 i i 类别的样本所占的比例。

    信息增益
    选择属性a进行划分带来的信息增益是:
    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) ,其中 V V 是属性 a a 的取值个数, D v D_v 是属性 a a 的取值为 v v 的样本个数。

    信息增益越大,意味着该属性进行划分之后,样本纯度更高一些。因此,在ID3中,划分属性选择方法为: a = arg m a x a A G a i n ( D , a ) a_* = \arg max_{a \in A} Gain(D, a) 。其中 A A 为所有属性。

    信息增益准则对可取值数目较多的属性有所偏好。

  • C4.5决策树使用的划分准则是增益率(gain ratio)
    G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D, a) = \frac{Gain(D, a)}{IV(a)}
    其中 I V ( a ) = v = 1 V D v D l o g 2 D v D IV(a) = -\sum_{v=1}^V \frac{|D_v|}{|D|}log_2 \frac{|D_v|}{|D|} 。 属性 a a 的可能取值数目越多, I V ( a ) IV(a) 的值通常会越大。
    增益率准则对可取值数目较少的属性有所偏好。

!!!C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中选出信息增益高于平均水平的属性,再从中选择增益率最高的。

  • CART树使用基尼指数(Gini index)
    G i n i ( D ) = 1 i = 1 k p i 2 Gini(D) = 1- \sum_{i=1}^k p_i^2 ,其中 k k 是样本类别数。
    G i n i ( D ) Gini(D) 反映了从样本集 D D 中抽取两个样本,它们类别不同的概率。因此, G i n i ( D ) Gini(D) 越小,样本集 D D 的纯度越高。
    G i n i _ i n d e x ( D , a ) = v = 1 V D v D G i n i ( D v ) Gini\_index (D, a) = \sum_{v=1}^V \frac{|D_v|}{|D|} Gini(D_v) , 选择 G i n i _ i n d e x Gini\_index 最小的属性作为划分属性。

CART解决回归问题
在上面的划分选择一节里,我们重点关注的是针对分类问题,如何选择最优划分属性。CART(Classification and regression tree), 正如它的名字,可以看出,CART可以解决分类和回归问题。

猜你喜欢

转载自blog.csdn.net/YQMind/article/details/80700400