决策树与随机森林相关概念

来源:互联网 发布:活动报名网站源码 编辑:程序博客网 时间:2024/05/22 20:57

决策树


所谓的决策树, 就是一种树形结构。其内部每个节点代表一个特征的测试,每个一个分支代表测试的输出,而每个叶子节点则代表一种类别。
而随机森林,就是指的一群决策树所组成的一个森林。当一个新的样本需要归类,它的结果不是仅仅取决于某一刻决策树的结果,而是让森林里所有的决策树进行投票,选出结果最多的那类作为输出。
决策树形式如下:
图片

构建决策树


构建决策树的基本思想是以信息熵为度量,构造一棵熵值下降最快的树(就是先判断对结果影响大的),到叶子节点处时熵值将为零(熵值大小即代表事物的不确定性度)。
建立决策树有三种算法:
- ID3 : 以信息增益大小来建立。
- C4.5 : 以信息增益率大小来建立。
- CART : 以基尼系数大小来建立。

首先看看对于随机变量熵的定义:
图片
熵越大,随机变量的不确定性就越大,从而 0<=H(p)<=logn。

  • 信息增益,表示得知特征X的信息,而使得类Y的信息的不确定性减少的程度。
    图片
    其中,
    图片
    图片
    以上,D代表训练数据集,|D|就是样本个数,Ck代表有K个类(明显,∑|Ck|=|Dk|)。
    根据某一个特征A的n种不同的取值,可以将D划分为n个子集,|Di|即为Di子集的样本个数。
    设子集Di中属于Ck类的样本集合为Dik,|Dik|即为Dik的样本个数。

  • 信息增益比。定义为信息增益g(D,A)与训练数据集特征A的熵H(A)之比。
    因为信息增益值得大小是相对于训练数据集而言的,没有绝对意义。当某一个特征A‘的取值种类数量很多的时候,这个特征的熵就会变得很大,而这个特征不一定是分类的正确特征,所以,只用信息增益值来衡量是不准确的。所以通过除以一个H(A),引入一个惩罚项,特征A取值类别越多,则被惩罚越多。
    图片
    (感觉在《统计学习方法》这本书里,此处有误。在书里, 李航老师写的分母是H(D),但是对于每个特征,H(D)都是同样的值,也就是没有达到进行惩罚的效果,所以,在这里我认为分母应该是H(A))

  • 基尼指数。设有K个类,样本点属于第K类的概率为pk,则
    图片
    对于给定的样本集合,基尼指数为
    图片
    若样本集合D根据特征A是否可以取某一可能值a被分割成D1和D2两部分,则在特征A的条件下,集合D的基尼系数为
    图片

关于熵的复习,参照以前写的笔记。
注:一个属性的信息增益越大,表明属性对样本的熵的减少能力更强,这个属性使得数据由不确定性变成确定性的能力更强。

构建随机森林


构建随机森林实质就是构建多颗决策树。里面的每一颗决策树都是没有关联的。
在构建决策树的过程中,有两点改进。
第一,对于训练数据是通过采样得到的。例如,训练集有N个样本,那么我们每次构建决策树时,都会又放回地对这个训练集采样N次,得到N个数据作为真正的训练集,这样做会出现的问题就是样本数据集里有很多重复的(一个通常说法是只有60%多的非重复数据)。这样,每一棵树的样本都不是全部样本,这就有效避免了过拟合问题。
第二,对于特征,也是通过采样得到的。例如,原来有M个特征,现在我们采样m个,使得m<=M。
通过以上两点,就能建立随机森林了。最后,当一个新样本进来时,森林里每一颗决策树都会产生一个结果,看看哪一类得到结果多,就认为样本属于那一类了。

对于随机森林的本质的一个比喻,引用如下:

按这种算法得到的随机森林中的每一棵都是很弱的,但是大家组合起来就很厉害了。我觉得可以这样比喻随机森林算法:每一棵决策树就是一个精通于某一个窄领域 的专家(因为我们从M个feature中选择m让每一棵决策树进行学习),这样在随机森林中就有了很多个精通不同领域的专家,对一个新的问题(新的输入数 据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。

0 0