随机森林
文章目录
一、概述
随机森林是由很多决策树构成的,不同决策树之间没有关联。
当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。
上世纪八十年代Breiman等人发明分类树的算法(Breiman et al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。随机森林对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用(Breiman 2001b),被誉为当前最好的算法之一。
二、决策树
信息熵:熵是对不确定性的度量。在1948年,香农引入了信息熵,将其定义为离散随机事件出现的概率,一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。
对于有 K K K个类别的分类问题来说,假定样本集合 D D D中第 k k k类样本所占的比例为 p k ( k = 1 , 2 , . . . , K ) p_k(k=1,2,...,K) pk(k=1,2,...,K),则样本集合 D D D的信息熵定义为:
Ent ( D ) = − ∑ k = 1 K p k ⋅ log 2 p k \operatorname{Ent}(D)=-\sum_{k=1}^{K} p_{k} \cdot \log_{2} p_{k} Ent(D)=−k=1∑Kpk⋅log2pk
常用的决策树算法有ID3,C4.5,CART三种。3种算法的模型构建思想都十分类似,只是采用了不同的指标。决策树模型的构建过程大致如下:
2.1 ID3,C4.5决策树的生成
输入:训练集 D D D,特征集 A A A,阈值 e p s eps eps
输出:决策树 T T T
- 若 D D D中所有样本属于同一类 C k C_k Ck,则 T T T为单节点树,将类 C k C_k Ck作为该结点的类标记,返回 T T T
- 若 A A A为空集,即没有特征作为划分依据,则 T T T为单节点树,并将 D D D中实例数最大的类 C m a x C_{max} Cmax作为该结点的类标记,返回 T T T
- 否则,计算 A A A中各特征对 D D D的信息增益(ID3)/信息增益比(C4.5),选择信息增益最大的特征 A g A_g Ag
- 若 A g A_g Ag的信息增益(比)小于阈值 e p s eps eps,则置 T T T为单节点树,并将 D D D中实例数最大的类 C k C_k Ck作为该结点的类标记,返回 T T T
- 否则,依照特征 A g A_g Ag将 D D D划分为若干非空子集 D i D_i Di,将 D i D_i Di中实例数最大的类作为标记,构建子节点,由结点及其子节点构成树 T T T,返回 T T