机器学习(九)决策树,随机森林

机器学习(九)决策树,随机森林

一.决策树

1.1 如何理解决策树

决策树,原理并不难,其实就是你根据现实情况做出最终决定的过程。我们举一个生活中通俗的例子。比如,我们都经历过各式各样的校园生活,考了无数次的试,那么,如何判断一个学生是不是好学生呢?

某个学校就有这样一些指标如下:
在这里插入图片描述

根据这个表格,大体就可以下面这个逻辑树:

在这里插入图片描述

这个逻辑树,就是决策树。

决策树的建立,往往是以目标为导向,就如上面这个例子,我们根本目的就是看一个学生是不是好学生,是有目标值的,因此,决策树属于监督学习的一种。

决策树具有如下特点:

  • 决策树的每个分支代表一个测试输出,每个叶结点代表一种类别。
  • 决策树学习是以实例为基础的归纳学习。
  • 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。

1.2 信息论的一些基础

为什么会扯到信息论基础呢?因为决策树,和信息论有一定的关联我们举一个球迷们很感兴趣的例子:

在这里插入图片描述

以上这个图是2018年俄罗斯世界杯的比赛流程图,结果我们都知道了。

如果我们把参赛的32个球队,按照1~32编号,我们假设这样一个情形:一个从来都不关心任何足球信息的人,你让他去猜是哪个球队夺得了俄罗斯世界杯的冠军。换你是哪个完全不懂球的人,如何尽快猜中呢?

学习计算机的我们,在学习数据结构的时候,肯定知道一个词:二分法。我们大可以把这32个球队一分为二。1到16号一组,17到32为一组,然后不停的缩小范围,就可以很快查到。

学习二分查找的时候,还有一个概念会引出:二分决策树。而这个树最高为logn的高度,也就是说,32支球队组成的二分查找树,高度最多也就是5。也就是说,这个完全不懂球的人,至少猜五次,就可以猜到谁是冠军。

对应到信息论当中,32个球队,只需要5比特的空间就可以存下。根据信息论的创始人香农的观点。“谁是冠军“的信息量肯定要比5bit小。

在现实当中,各个球队实力不尽相同,因此在比赛的时候,肯定有不同的获胜概率。只有在各个球队夺冠的概率都相等(都是1/32)的情况下,才会取到5。我们假设,这32个球队夺冠的概率分别是:p1, p2……p32, 那么球队夺冠的信息量为:

​ H = -(p1logp1 + p2logp2 + … + p32log32)

在信息论中,H称为”信息熵“,单位是:bit

根据这个例子,我们便可以大致推出求信息熵的公式:

在这里插入图片描述

当X当中的所有样本,取相同的概率时,H(X)取最大值

1.3 信息论与决策树的关系

说了这么多,那么,信息论与决策树到底有啥关联呢?

关系就在于决策树上这个判断结点的选择上。以最开始的那个判断是否为好学生的例子为例,决策树我可以按照上面那个画。但是我换个方案画,我画成如下这个呢?
在这里插入图片描述

当然了,这个例子当中,样本不多,两种判别方式似乎都不错。但是如果样本很多呢?你如何选择这个判断结点就需要一个指标。

这个时候,结合信息论,我们就引出了另一个概念:信息增益。

1.3.1 信息增益

在了解信息增益之前,最好先了解一下什么是条件熵:决策树、随机森林补充(二)第一部分

特征A对训练数据集D的信息增益g(D,A),定义为集合D的信息熵H(D)与特征A给定条件下D的信息条件熵H(D|A)之差,即公式为:
在这里插入图片描述

其含义是:得知特征X的信息而使得类Y的信息的不确定性减少的程度。说白了,反映的是:重要程度。

我们再举一个例子:银行贷款,银行放贷之前,肯定要对你做背景调查,你啥都没有,那么大概率是不会给你放贷的。现在,我们得到了如下的数据
在这里插入图片描述

那么年龄,是否有工作,是否有房子,信誉情况,哪个比较重要?

我们套用信息增益的公式:

首先,你得先求出信息熵H(D):

在这里插入图片描述

则在本例子当中,我们就应该”结果为导向“,从是否放贷这个结果,来求信息熵

H(D) = -[(9/15)* log(9/15) + (6/15)*log(6/15)] = 0.971 (根据表中结果,供15个数据,9个同意放贷,6个不同意放贷)

然后,我们求条件信息熵:

在这里插入图片描述
值得注意的是,上面这两个式子的信息熵、条件信息熵表达式,在一些资料里面成为经验熵、经验条件信息熵。这个表达式也有一个推导过程:详见这个:决策树,随机森林补充(一)第二部分

首先,我们把A取为年龄属性。年龄分为三个:青年,中年,老年。其中青年占5/15,中年占5/15, 老年占5/15

则 H(D|A) = -[(5/15)*H(D1) + (5/15)* H(D2) + (5/15)* H(D3)],其中,D1代表青年,D2代表中年,D3代表老年

在青年群体当中,有两个样本是同意放贷的,三个不同意放贷,于是: H(D1) = -[(2/5)*log(2/5) + (3/5)*log(3/5)]

在中年群体当中,有三个样本是同意放贷的,两个不同意放贷 ,于是:H(D2) = -[(3/5)*log(3/5) + (2/5)*log(2/5)]

在老年群体当中,有四个样本是同意放贷的,1个不同意放贷,于是:H(D3) = -[(4/5)*log(4/5) + (1/5) * log(1/5)]

则信息增益:

g(D, A=“年龄”) = H(D) - H(D|A=“年龄”) = 0.971 - (0.0974 + 0.0974 + 0.0724) = 0.7038

同理,可以得出:

g(D, A=“有工作”) = 0.324;g(D, A=“有房子”) = 0.420;g(D, A=”信贷情况“) = 0.363

因此在做决策的时候,按照:(年龄>有房子>信贷情况>有工作)的顺序,来做决策,这个并不是简单的二选一,二是不论你处于什么情况,你都有概率获得银行贷款。因此,决策树,是一个比较复杂的综合考量,而不是像之前那个判断是不是好学生那个案例那么简单。

1.4 常见决策树的算法

其实,除了1.3那个方式,还有许多其他的方法。这个我们目前只知道一个大概即可,先不细究底层:

  • ID3:信息增益 最大的准则(也就是1.3所讲的内容)
  • C4.5:信息增益比 最大的准则
  • CART
    回归树: 平方误差 最小
    分类树: 基尼系数 最小的准则 在sklearn中可以选择划分的原则

具体Gini系数,增益比是啥,见:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值