美文网首页
决策树和随机森林(Part1)

决策树和随机森林(Part1)

作者: 阿圆的一亩三分地 | 来源:发表于2019-03-20 21:19 被阅读0次

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果[1]
下面先来看一个小例子,看看决策树到底是什么概念:


data1.png

决策树的训练数据往往就是这样的表格形式,表中的前三列(ID不算)是数据样本的属性,最后一列是决策树需要做的分类结果。通过该数据,构建的决策树如下:


tree_demo1.png
显然,在每一个非叶节点选择哪一个特征作为分支的标准,是构建决策树的核心问题。

信息熵

信息熵就是解决我们上面标准选择问题的一个重要指标。

一方面,熵是一个用来形容系统混乱程度的物理量。假设有135个点(p_1, p_2,\ …,p_{135})分布在二维平面上,并且这些点分别属于两类。分布如下:

sample1.png
假设两种类别的点(Rreen和Ged)分别有70和65个,概率分布如下:
X G R
P \frac{70}{135} =\frac{14}{27} \frac{65}{130} = \frac{13}{27}

从中随机选择一个点,得到两种类别的点的概率很相近,整个系统是一个完全混乱的整体。

假设我们按照图中的方式将所有的点一分为。左侧有65个点,其中60个为Green,5个为Red,则概率分布如下:

X G R
P \frac{5}{65}=\frac{1}{13} \frac{60}{65}=\frac{12}{13}

我们再在左侧的点中随机选择,显然属于Green的概率要大很多,在预测的时候,预测Green的正确率就高很多。

从两种情况的混乱程度来看,第一种情况比第二种情况要混乱很多,这种混乱程度和不同类别的概率有关。

另一方面,一个事件发生所包含的信息量和这个事件发生的概率有关的,即一个事件发生的概率越小,这个事件包含的概率就越大。比如学校每天正常八点响铃,但是如果某一天八点没有响铃,没有响铃这个小概率事件包含的信息,明显比正常响铃这个大概率事件多。

因此,概率分布就把一个事件发生所传递的信息和熵联系起来了,这种熵就称为信息熵。

信息熵的定义

假设变量X的取值包含x_1, x_1, x_3,\ …, x_n,概率分布如下:

X x_1 x_2 x_n
P p_1 p_2 ... p_n

那么X包含的信息熵H(X)定义为:

H(X)=-\sum_{i}p_ilog\ p_i

条件熵

H(X,Y) - H(X)(X,Y)发生所包含的熵,减去X发生所包含的熵:即在X发生的前提下,Y的发生所带来的新的熵,就是X发生的条件下,Y发生的条件熵H(Y|X)

接下来推导H(X,Y) - H(X)的计算公式:

H(X,Y) - H(X)\\ = -\sum_{x,y}p(x,y)log\ p(x,y) + \sum_{x}p(x)log\ p(x) \\ =-\sum_{x,y}p(x,y)log\ p(x,y) + \sum_x\left(\sum_yp(x,y)\right)log\ p(x)\\ =-\sum_{x,y}p(x,y)log\ \frac{p(x,y)}{p(x)}\\ =-\sum_{x,y}p(x,y)log\ p(y | x)\\ = -\sum_x\sum_yp(x,y)log\ p(y|x)\\ =-\sum_x\sum_yp(x)p(y|x)log\ p(y|x)\\ =\sum_xp(x)\left( -\sum_yp(y|x)log\ p(y|x) \right)\\ =\sum_xp(x)H(Y|X=x)

相对熵

相对熵又称为互熵,交叉熵,鉴定信息,Kullback熵等。

p(x)q(x)是X中取值的两种概率分布,则p对q的相对熵是:

D(p||q) = \sum_xp(x)log\ \frac{p(x)}{q(x)} = E_{p(x)}log\ \frac{p(x)}{q(x)}

互信息

两个随机变量的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。

I(X,Y)=D\left( P(X,Y)||P(X)P(Y) \right) = \sum_{x,y}p(x,y)log\ \frac{p(x,y)}{p(x)p(y)}

从公式可以看出,互信息其实度量的是P(X,Y)P(X)P(Y)这两个概率分布的距离。如果X和Y的分布是完全独立的,就会有P(X,Y)=P(X)P(Y)。代入公式就可以得到两个变量的互信息为0。

如果我们用H(Y)减去I(X,Y)

H(Y) - I(X,Y)=\\ =-\sum_{y}p(y)log\ p(y) - \sum_{x,y}p(x,y)log\ \frac{p(x,y)}{p(x)p(y)}\\ =-\sum_y\left( \sum_xp(x,y) \right)log\ p(y) - \sum_{x,y}p(x,y)log\ \frac{p(x,y)}{p(x)p(y)}\\ =-\sum_{x,y}p(x,y)log\ p(y) - \sum_{x,y}p(x,y)log\ \frac{p(x,y)}{p(x)p(y)}\\ =-\sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)}\\ =-\sum_{x,y}p(x,y)log\ p(y|x)\\ =H(Y|X)

互信息的物理意义

从上面的推到,我们可以得到等式:

H(Y|X) = H(X,Y) - H(X)

H(Y|X) = H(Y) - I(X,Y)

I(X,Y) = H(X) + H(Y) - H(X,Y)

也可以得到不等式:

H(X|Y)\leq H(X)H(Y|X)\leq H(Y)

也就是说,只要X和Y不是完全独立,而是存在某些联系,那么只要在给定其中一个做为条件的情况下,另一个事件所包含的信息量都会减少。

这些物理量的关系可以整理成一个Venn图:


Venn.png

决策树的构建

再来看上面的例子:


tree_demo1.png

在根结点中,是否偿还债务的概率分布为:

是否偿还债务
P 7 3

信息熵:H_0 = -\frac{3}{10}log\frac{3}{10} -\frac{7}{10}log\frac{7}{10}

在根据是否拥有房产进行划分之后:

拥有房产的部分:

是否偿还债务
P 3 0

信息熵:H_1=0

没有房产的部分:

是否偿还债务
P 4 3

信息熵:H_2 = -\frac{4}{7}log\frac{4}{7} - \frac{3}{7}log\frac{3}{7}

我们考虑分支前后的熵的变化,对分支之后的熵求加权平均,计算可得:

\frac{3}{10}H_1 + \frac{7}{10}H_2 < H_0

显然这应该是一次有效的分支,因为熵变小意味着整体变得更加有序。从分类的直观效果来看,对于有房产的样本,可以直接判断为可以偿还债务。而且很容易理解,熵下降得越快,分支就越有效。

决策树学习

决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶节点处的熵值为零,此时每一个叶节点中的实力都属于同一类。

实际过程中我们通常会采用一些剪枝的策略,来避免熵值为零的情况,因为熵值为零通常意味着对训练数据的过拟合。

建立决策树的关键,即为在当前状态下选择哪一个属性作为分类依据。根据不同的目标函数,建立决策树主要有以下三种算法:

  • ID3
    • Iterative Dichotomiser
  • C4.5
  • CART
    • Classification and Regression Tree

信息增益

当熵和条件中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别分别称为经验熵和经验条件熵。

信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。

定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)和特征A给定条件下D的经验条件熵H(D|A)之差。

g(D,A) = H(D) - H(D|A) = I(D,A)

其他目标

  • 信息增益率:g_r(D,A)=g(D,A)/H(A)​

  • Gini系数

    Gini(p) = \sum_{k=1}^{K}p_i(1-p_i) = \sum_{k=1}^{K}1-p_i^2

三种决策树的学习策略

  • ID3:使用信息增益、互信息g(D,A)进行特征选择
    • 取之多的属性,更容易使得数据更纯,起信息增益更大
    • 训练得到的是一棵庞大且深度浅的树,不合理
  • C4.5:信息增益率 g_r(D,A)=g(D,A)/H(A)
  • CART:基尼系数

参考资料

[1]https://blog.csdn.net/xbinworld/article/details/44660339

相关文章

  • sklearn-随机森林分类器

    随机森林(1.11.2.1),随机森林的参数属性方法和决策树差不多。(RandomForestClassifier...

  • 决策树与随机森林及其在SparkMllib中的使用

    一.概念 决策树和随机森林:决策树和随机森林都是非线性有监督的分类模型。 决策树是一种树形结构,树内部每个节点表示...

  • 用决策树和随机森林解决泰坦尼克号沉没问题

    决策树和随机森林既可以解决分类问题,也可以解决预测问题。 随机森林属于集成算法,森林从字面理解就是由多棵决策树构成...

  • 决策树和随机森林(Part1)

    决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试...

  • 决策树与随机森林(三)--提升

    转自July--4月机器学习算法班 由决策树和随机森林引发思路 随机森林的决策树分布采样建立,相对独立。 思考: ...

  • 随机森林

    1、什么是随机森林? 随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关...

  • 随机森林原理

    1、什么是随机森林?随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联...

  • 1 . spark ml 随机森林练习代码讲解

    一,算法简介 随机森林是决策树的集成算法。随机森林包含多个决策树来降低过拟合的风险。随机森林同样具有易解释性、可处...

  • 随机森林分类器

    随机森林,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森...

  • 新2019计划:机器学习100天—随机森林【8】

    随机森林 随机森林是有监督的集成学习模型,主要用于分类和回归。随机森林建立了很多决策树,然后将其集成,以获得更准确...

网友评论

      本文标题:决策树和随机森林(Part1)

      本文链接:https://www.haomeiwen.com/subject/yhlxvqtx.html