决策树

来源:互联网 发布:ubuntu格式化硬盘 编辑:程序博客网 时间:2024/06/10 16:16

决策树 是表示基于特征对实例进行分类的树形结构。
  从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将数据进行分割,使得各子数据集有最好的分类过程。

  决策树算法3要素:

  • 特征选择
  • 决策树生成
  • 决策树剪枝

关于决策树生成
决策树生成的过程是 使得满足划分准则的特征不断的将数据划分成纯度更高的不确定性更小的子集的过程。对于当前数据D的每一次划分,都希望根据某特征划分之后的数据纯度更高的不确定性更小。

如何度量纯度以及不确定性?
特征选择准则:信息增益;信息增益率;基尼指数

特征选择准则
使用某特征划分后,数据子集的纯度高于划分前。不确定性降低。

三种准则:

信息增益

—————————————————————————————————

1、 熵的定义:用来度量随机变量的不确定性。
假设随机变量X的可能取值:x1,x2,...,xn ,对于每一个可能的取值 xi ,其概率 P(X=xi)=pi,(i=1,2...,n),因此随机变量X的熵为:

H(X)=i=1npilog2(pi)

对于样本集合D 来说,随机变量X是样本的类别,假设样本有k个类别,每个类别的概率是|Ck|D,其中|Ck|表示类别k的样本个数,|D|表示样本总数
对于样本集合D 来说经验熵为:
H(X)=i=1n|Ck|Dlog2(|Ck|D)

—————————————————————————————————

  • 信息增益(ID3算法)

熵表示样本集合的不确定性,熵越大,不确定性越大,因此使用划分前后集合熵的差值来衡量使用当前特征划分效果的好坏。差值越大,表示不确定降低的越多,划分效果越好。
划分前,样本D的熵是恒定的entropy(前),使用特征划分后的熵entropy(后)

信息增益=entropy(前)-entropy(后)

书中公式: g(D,A)=H(D)H(D|A),最后选择增益最大的特征作为当前划分。
缺点:信息增益偏向于取值较多的特征。
原因:取值较多,更容易划分出纯度更高的子集,熵值低。比如选取序列ID这种特征,可以将每组数据都化成一类,熵值低但是无实际意义。

  • 信息增益率(C4.5算法)

信息增益率=惩罚参数*信息增益

书中公式:gR(D,A)=g(D,A)HA(D)
此处的HA(D),是对于样本集合D,将特征A作为随机变量求的经验熵。之前是将集合类别作为随机变量,现在是将某个特征作为随机变量,按照此特征的取值对D进行划分,计算熵HA(D):
H(X)=i=1n|Di|Dlog2(|Di|D)

信息增益率的本质是给信息增益加上一个惩罚因子,特征较多时,惩罚函数较小,特征少时,惩罚大。
惩罚因子:数据D以A为特征作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集,之前所说数据集的熵是依据所属类别进行划分的
缺点:偏向于取值较少的特征
因此基于上诉两种方式, 我们不是直接取增益率大的特征,而是在候选特征中找出增益高于平均水平的特征,然后再从中选择增益率高的特征。
H(X)=i=1n|Ck|Dlog2(|Ck|D)

—————————————————————————————————

  • 基尼指数(CART算法—分类树)
    基尼不纯度:表示样本集合中一个随机选中的样本被分错的概率。其越小,表示集合纯度越高,反正不纯。

基尼指数=样本被选中概率*被分错的概率

书中公式:Gini(p)=Kk=1pk(1pk)=1Kk=1p2k

  1. pk表示样本被选中,分错概率为1pk
  2. 集合有K个类别,一个随机选中的样本可以属于任一个,因此对k求和
    样本D的Gini指数:假设样本K个类别,则:

    Gini(D)=1k=1K(CkD)2

    基于特征A划分后样本集合D的基尼指数:
    Gini(D,A)=i=1n|Di|DGini(Di)

    n表示特征A的取值个数,A将D划分为n类,最后我们从所有的划分中选择Gini指数最小的划分。

    注意:使用Gini指数时,对于选取某种特征进行划分时,对于多于二值得特征,还需要计算最佳划分点。如:二元划分或多路划分