机器学习实战-决策树

1、背景

决策树模型

以上就是之前见过的树状模型,但这里它代表着决策树直观的表达形式。其特殊意义在于,没个叶节点,代表着要划分的类别;除叶节点以外的节点,是待分类项的各个属性。这里比较简单的是最终分类的类别是两个类别,没个属性的取值只有两个取值,所以以上便生成了一个简单的二叉树。在建立这个模型的基础上,假如我们有如下数据需要判断这个人是否死亡:

实例

根据以上二叉树带入各个的值,很容易便得出结论是:survived。所以能看出决策树分类算法用来分类优点在于:计算复杂度不高,数据结果易于理解,对中间值缺失不敏感,可处理不相关特征的数据。具体我们下文会阐述。所以决策树模型关键的部分来啦,就是如何通过训练数据,来很快的得出以上的树形结构呢?

2、基于信息增益的决策树分类算法实现-ID3

再回刚才那个例子,数据有三个属性。其中最终的点很明显,就是用哪个属性作为根,以及再选取哪个属性作为根的子节点。即需要建立数学模型,使得选取一个属性计算的值,优于选取其它。

所以这里便有人提出啦基于信息增益来实现的方法。

(1)信息与信息熵

我们先来假象这样一个场景:如果以上的例子中只用一个Age属性就能区别结果的化,是否还需要生成以上复杂的二叉树呢?肯定是没有必要的,只需要单个跟配俩叶子的简单二叉树就能解决这个问题。

再进一步,如果用Age可以区分90%的情况,再往下还得依靠一点点sibsp属性来判断一下,是不是只需要先用Age区分,再配上个sibsp的节点就可以实现分类呢?

当然,这两种情况并不是说其它属性并不能加在二叉树当中,加上并不是不好,只是说没有必要。(而且还有时候,节点加的太多甚至还会有过拟合的现象发生)

那以上只是个并不准确的猜想和描述,那需要怎么量化的解释这个事情呢?

有人就引入了信息论的一些概念。

所谓信息:信息就是被消除的被确定性。比如刚刚过去的世界杯,假如有场比赛,谁能赢呢?这就是一个不确定性;但如果告诉你这场比赛是巴西跟中国踢,然后第二天有个人跑来告诉你个“信息”:巴西赢比赛;你怎么想?你肯定会说,用你来告诉我,想都会想巴西会赢啊。所以这个人告诉你信息是价值很低的信息,或者说几乎无用的信息。

另一个场景就是谁能是冠军呢?如果让你来猜将会有32种可能,你很难猜出来。但如果有人告诉你决赛是法国和克罗迪亚。你根据这个信息便更容易的能猜出谁是冠军。所以这个消息很有价值,对于你消除不确定有很大帮助。

所以说了这么一大堆,我们能体会到消息是有大有小的,是可以被量化的。那基于此,便引入了香农的信息熵概念:

信息熵

某个分类Xi携带的信息量为:

信息量

那么信息熵就是所有类别信息量的期望,其中p(Xi)表示这个分类的概率。

(2)信息增益

现在通过信息量的公式,我们可得出假如给上述三个属性的样本,能计算出这个训练集本身的信息量。如果选取某个属性划分后,剩下的数据量信息便少,则这个属性用来划分更为合理。因为剩下的数据可认为没有什么价值,或价值没那么多啦。

信息增益

即用原来的信息熵减去重新划分后的信息熵得到的值,其中Dv表示按照某属性划分后如果存在V个可能取值后的数据量。

所以建立决策树便编程了先计算数据集的熵,再便利各个属性分别计算各自的熵,再计算信息增益,选取信息增益大的,作为节点,再循环这个属性的各个取值并递归生成后续的节点。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 决策树 优点: 计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。 缺点: 可能会产...
    KaitoLucifer阅读 3,465评论 0 0
  • 构建决策树的思想: 需要解决的第一个问题就是当前数据集上哪个特征在划分数据分类时起决定性作用。为了找到决定性的特征...
    潘雪雯阅读 3,511评论 0 1
  • 简述 本章构造的决策树算法能够读取数据集合,构建类似于图3-1的决策树。决策树很多任务都 是为了数据中所蕴含的知识...
    芮芮cat阅读 2,967评论 0 1
  • 决策树 决策树是一个选择的过程,以树的结构来展示,其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性...
    z3r0me阅读 2,087评论 0 0
  • 无题二首/大漠 冬日最难熬,值班像坐牢。 幸有五色苋,插绿弄花草。 碌碌又一年,屈指算那班。 风水依旧换,休假又跑偏。
    大漠qxy阅读 1,189评论 0 0

友情链接更多精彩内容