决策树与随机森林

原创 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树,然后进行投票表决。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010161630/article/details/51699553

第3周:决策树模型(CART)、基于树的集成学习算法(随机森林、GBDT)-人工智能工程师直通车

-
  • 1970年01月01日 08:00

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

机器学习面试准备之三、决策树与随机森林
  • sunpeng19960715
  • sunpeng19960715
  • 2017-01-31 08:49:12
  • 5413

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

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

初始决策树与随机森林

  • 2018年04月02日 16:50
  • 26KB
  • 下载

决策树、随机森林简单原理和实现

本文申明:此文为学习记录过程,中间多处引用大师讲义和内容 一:概念 决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。决策数有...
  • lisi1129
  • lisi1129
  • 2017-05-01 20:37:03
  • 3114

机器学习之决策树和随机森林及代码示例

一、决策树决策树学习是机器学习中一类常用的算法。在决策树中,根节点包含样本全集。每个非叶子节点表示一种对样本的分割,通常对应一个划分属性,其将样本分散到不同的子节点中。每个叶子节点对应于决策的结果。因...
  • cxmscb
  • cxmscb
  • 2016-12-09 16:43:46
  • 5283

Spark 机器学习 —— 从决策树到随机森林

构造训练数据import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.regression.LabeledP...
  • lanchunhui
  • lanchunhui
  • 2016-04-22 11:52:24
  • 963

机器学习总结8_从决策树到随机森林

0.先通过一个例子引入: 例子转自:http://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html 如果对树...
  • hulingyu1106
  • hulingyu1106
  • 2016-06-17 15:01:07
  • 828

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

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

【机器学习】决策树与随机森林

机器学习中有两类的大问题,分类和聚类。下面要介绍的是分类算法中的决策树和随机森林,它们是常见的分类算法。分类,什么是分类?首先要有大量对象,并且知道这些样本对象的特征和所属类别,把这些数据告诉计算机,...
  • Hemk340200600
  • Hemk340200600
  • 2017-07-03 23:27:55
  • 645
收藏助手
不良信息举报
您举报文章:决策树与随机森林
举报原因:
原因补充:

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