决策树与随机森林

原创 2016年06月17日 14:09:43

决策树与随机森林

本篇博客将重新给出对决策树与随机森林的认识。主要分析决策树的学习算法:信息增益和ID3、C4.5、CART树,然后给出随机森林。
决策树中,最重要的问题有3个:
1. 特征选择。即选择哪个特征作为某个节点的分类特征;
2. 特征值的选择。即选择好特征后怎么划分子树;
3. 决策树出现过拟合怎么办?
下面分别就以上问题对决策树给出解释。决策树往往是递归的选择最优特征,并根据该特征对训练数据进行分割。

信息熵

关于信息熵以及最大熵模型的详细信息,请参看该博客

  • 熵:H(X)=xXp(x)logp(x)
  • 联合熵:H(X,Y)=xX,yYp(x,y)logp(x,y)
  • 条件熵:H(X|Y)=xX,yYp(x,y)logp(x|y)
  • 相对熵:D(p||q)=xp(x)logp(x)q(x)
  • 互信息:I(X,Y)=xX,yYp(x,y)logp(x,y)p(x)p(y)

决策树中常用的评价指标

  • 信息增益(Information Gain):表示得知特征A的信息而使得类X的信息的不确定性减少的程度。
    定义:特征A对训练数据集D的信息增益g(D, A),定义为集合D的经验熵H(D)与经验条件熵H(D|A)的差值。
    g(D,A)=H(D)H(D|A)
    而这又是互信息的定义。所以决策树中的信息增益等价于训练集中类与特征的互信息。
  • 信息率(Information Gain Ratio):
    用信息增益作为划分特征的依据时,会存在一些问题。例如,如果使用数据的ID作为特征,这样,每个数据点相当于均匀分布,所以得到的信息增益一定是最大的,但是我们都知道ID是不能作为特征的。这样如果单纯的使用信息增益作为划分特征的依据的话,会导致我们生成的树比较矮胖,容易过拟合。
    定义:特征A对训练数据集D的信息增益率gR(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值得信息熵HA(D)之比:
    gR(D,A)=g(D,A)HA(D)
  • Gini系数:
    Gini(p)=Kk=1pk(1pk)=1Kk=1p2k
  • 决策树的评价 —— loss function:
    假定样本的总类别数为K个;树T的叶节点个数为|T|,t是树T的叶节点,叶节点有Nt个样本点,其中k类的样本点有Nik个,Ht(T)为叶节点t上的经验熵,则决策树的loss function可以定义为:
    Cα(T)=tleafNtHt(T)+α|T|

3种决策树

ID3

ID3算法的核心是在决策树各个节点上使用信息增益作为特征选择的依据,递归的构建决策树。
从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点;再对子节点递归的调用以上方法,构建决策树;知道所有特征的信息增益均很小或没有特征可以选择为止,得到最后一个决策树。ID3相当于用最大似然法进行概率模型的选择。

C4.5

C4.5算法使用信息增益率作为特征选择的依据,算法的流程与ID3相似。

CART

CART树的名字其实非常有意思,Classification And Regression Tree(分类回归树),它使用基尼系数(Gini Index)作为特征的划分依据。顾名思义,CART既可以用来做分类也可以用来做回归。它是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。
CART树假设我么的决策树是二叉树,内部节点特征的取值为是或否。CART算法为:
1. 决策树的生成:基于训练数据集生成决策树,生成的决策树要尽量大;
2. 决策树剪枝:用验证数据集对已经生成的巨额额数进行剪枝并选择最优子树。

决策树中避免过拟合的方法

剪枝

在上面决策树的评价指标loss function Cα(T)=C(T)+α|T|中,C(T)表示模型对训练数据集的预测误差,即模型与训练数据的拟合程度,|T|表示模型复杂度,由参数α控制两者之间的影响。
α确定时:

  • 子树越大,与训练集的拟合越好,但模型的复杂度就越高;
  • 子树越小,模型简单,但与训练集的拟合度不好。

决策树生成学习局部的模型,而剪枝学习整体的模型!!
剪枝的过程为:

  • 计算每个节点的经验熵;
  • 递归的从树的叶节点向上回缩,设一组叶节点回缩到其父节点之前和之后的整体树分别为TBTA,对应的损失函数值分别为Cα(TB)Cα(TA),如果Cα(TA)<=Cα(TB),则进行剪枝。

随机森林

Bootstrap Aggregation

  • 从训练集中有重复的选出n个样本;
  • 在所有属性上,对这n个样本建立分类器;
  • 重复上述步骤m次,获得m个分类器。最终的决策由这m个分类器进行投票决定。

随机森林

  • 从训练集中用Bootstrap采样选出n个样本;
  • 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
  • 重复上述步骤,建立m棵CART树,然后进行投票表决。
版权声明:本文为博主原创文章,未经博主允许不得转载。

【机器学习详解】决策树与随机森林算法

http://www.2cto.com/kf/201607/522502.html 决策树 决策树模型是一种树形结构,基于特征对实例进行分类或回归的过程。即根据某个特征把数据分划分到若...
  • SMF0504
  • SMF0504
  • 2016年07月15日 20:06
  • 5871

机器学习面试准备之三、决策树与随机森林

机器学习面试准备之三、决策树与随机森林
  • sunpeng19960715
  • sunpeng19960715
  • 2017年01月31日 08:49
  • 3871

机器学习——决策树与随机森林

机器学习——决策树与随机森林1.决策树的主要元素:根节点、内部节点、叶节点。其中根节点聚集了所有的样本,内部节点表示根据某个特征进行分类,叶节点根据节点内样本数最多的那一类作为输出。2.决策树的主要处...
  • m0_37752335
  • m0_37752335
  • 2017年08月28日 15:55
  • 106

机器学习之决策树(Decision Tree)&随机森林(Random forest)

决策树是机器学习中最接近人类思考问题的过程的一种算法,通过若干个节点,对特征进行提问并分类(可以是二分类也可以使多分类),直至最后生成叶节点(也就是只剩下一种属性),而随机森林是基于决策树过拟合提出的...
  • July_sun
  • July_sun
  • 2016年11月25日 19:27
  • 4868

决策树与随机森林的R语言实现

1.用party包构建决策树 以iris数据集为例。 用ctree()建立决策树,用predict()对新数据进行预测。 训练集与测试集划分: > str(iris) 'data.frame': 15...
  • EnjoySmile
  • EnjoySmile
  • 2016年01月30日 22:27
  • 10554

【机器学习详解】决策树与随机森林算法

决策树决策树模型是一种树形结构,基于特征对实例进行分类或回归的过程。即根据某个特征把数据分划分到若干个子区域(子树),再对子区域递归划分,直到满足某个条件则停止划分并作为叶子节点,不满足条件则继续递归...
  • luoshixian099
  • luoshixian099
  • 2016年07月03日 21:16
  • 4650

机器学习之决策树和随机森林

一、决策树 决策树学习是机器学习中一类常用的算法。在决策树中,根节点包含样本全集。每个非叶子节点表示一种对样本的分割,通常对应一个划分属性,其将样本分散到不同的子节点中。每个叶子节点对应于决策的...
  • cuo9958
  • cuo9958
  • 2016年12月10日 17:40
  • 1372

机器学习实战笔记3(决策树与随机森林)

决策树的优势就在于数据形式非常容易理解,而kNN的最大缺点就是无法给出数据的内在含义。 1:简单概念描述        决策树的类型有很多,有CART、ID3和C4.5等,其中CART是基...
  • u011089523
  • u011089523
  • 2016年06月19日 15:46
  • 861

决策树(ID3、C4.5、CART、随机森林)

本篇文章也是多个博客的综合,有待进一步整理。 1、决策树-预测隐形眼镜类型 (ID3算法,C4.5算法,CART算法,GINI指数,剪枝,随机森林) 1. 我们应该设计什么的算法,使得计算...
  • gumpeng
  • gumpeng
  • 2016年05月13日 19:17
  • 12643

决策树与随机森林相关概念及其Python实现

决策树所谓的决策树, 就是一种树形结构。其内部每个节点代表一个特征的测试,每个一个分支代表测试的输出,而每个叶子节点则代表一种类别。 而随机森林,就是指的一群决策树所组成的一个森林。当一个新的样本需...
  • wy250229163
  • wy250229163
  • 2016年07月20日 11:24
  • 1253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:决策树与随机森林
举报原因:
原因补充:

(最多只允许输入30个字)