机器学习实战:决策树原来这么简单

目录

决策树介绍

信息熵是啥

决策树与信息熵怎么结合

决策树的剪枝

决策树的算法有哪些

sklearn决策树参数介绍

决策树实战


上一篇:机器学习实战-监督学习、无监督学习

上一篇的文章中,我们主要对监督学习与无监督学习进行了讲解,其实还有一个半监督学习,这个可以自行百度,也是比较简单。

这一篇中,我们来讲解监督学习中经常用到的算法,决策树。

机器学习实战:决策树原来这么简单

 

本文章节

1、决策树介绍

2、信息熵是啥

3、决策树与信息熵怎么结合

4、决策树的剪枝

5、决策树的算法有哪些

6、sklearn决策树参数介绍

7、决策树实战

决策树介绍

决策树是啥?用一句简单的话来说就是:决策+树,用一堆if else组成的树木,就是决策树。

机器学习实战:决策树原来这么简单

 

信息熵是啥

在决策树里面,有一个很重要的概念,那就是信息熵。

信息熵这个词理解起来比较抽象,但是我们可以进行分开理解

信息:代表着我们接收到的数据,例如今天吃鸡腿

熵:这个词最早接触是在高中的化学里面,有这么描述:熵在化学中是表示分子的混乱程度,分子越混乱,它的熵就越大,而若分子越有序,熵值就越小

总结:我们对于今天吃鸡腿这个消息,越确定,那这个熵值就越小

好了,通过吃鸡腿我们来理解了信息熵,如果不理解的话,私信我,我尽可能更加简便来解释这个东东。

从数学里面来说,信息熵是有计算公式的

机器学习实战:决策树原来这么简单

 

简单理解一下这个公式:Pi表示事件的概率,例如今晚吃鸡腿的概率是90%,那就是0.9,然后就算计算logPi的累加和,这就是信息熵,不难不难,数学知道公式代表什么意思,然后记下来妥妥的。

决策树与信息熵怎么结合

我们都知道,决策树是有许多的属性,分支组成,那在进行数据流向之前,怎么判断我这个数据该走向哪一条分支呢?这里就要用到信息熵,信息熵可以对信息不确定性进行度量,也就是进行计算,我们通过对节点上的信息进行计算它的信息熵,对比熵值,熵值越小,证明信息就越确定,就选你了。

机器学习实战:决策树原来这么简单

 

决策树的剪枝

我们在构建一颗决策树的时候,最理想的目标是构建一颗最矮的决策树,为什么是最矮的,因为要避免过拟合的出现,什么是过拟合,我们来看一张图

机器学习实战:决策树原来这么简单

 

在我们的现实世界中,我们就没有完美的数据,一个正常的数据集里面,肯定会存在错误的,意料之外,奇形怪状的数据,好比我们的那两张图,第一张里面那个蓝色的图标,就妥妥的藏在红色图标里面,要不要找出来?怎么找出来?像第二张图片一样找出来吗?这样做的后果只有一个问题,那就是过拟合,导致我们的分类器只能适应我们现在的数据,对于后面的新数据一进来,妥妥的无法明确分类。

决策树为了防止这种情况,就用来个剪枝来处理这种过拟合,他办到的原理其实很好理解,因为决策树可以给每一个给定的样本的每一个属性做一个精准的分类,但是如果无限制的分类下去,那就跟图中的第二张图一样,这样子的后果,数据是好看了,其实就是没法用。

决策树的剪枝有两种,预剪枝与后剪枝。

预剪枝:这是一种从上往下的做法,怎么做呢,其实就是限制这个决策树的高度,构建的过程中达到了这个高度,就停止继续分裂的,这就达到了最低节点了。

后剪枝:这是一种从下往上的方法,它让决策树全部构建完成,然后从底部开始找啊找啊,判断哪些枝干是可以剪掉的。

备注:小编根据现网数据,经常用的是预剪枝,因为现网数据缺失程度大到恶心,性能上也会快一些。

决策树的算法有哪些

目前决策树有三种算法:ID3决策树,C4.5决策树,CART决策树,这三种算法在网上介绍的比较多,包括优点及缺点,这里不累赘,可以自行搜索。

sklearn决策树参数介绍

sklearn给我们提供了一个决策树的算法,我们可以直接使用,在使用之前,小编先来介绍一下它的参数代表了什么意思,以及哪些参数是我们经常要用到或者必须设置的。

机器学习实战:决策树原来这么简单

 

这么多参数,我们怎么设置,有个原则:基本默认,设置4个

1、criterion:用以设置用信息熵还是基尼系数计算。

2、splitter:指定分支模式

3、max_depth:最大深度,防止过拟合

4、min_samples_leaf:限定每个节点分枝后子节点至少有多少个数据,否则就不分枝

决策树实战

终于到了最后的时刻,我们采用上次的数据,来进行分类

1、对数据按照2:8的比例分成两份,一份用来训练,一份用来测试

机器学习实战:决策树原来这么简单

 

2、加载决策树算法,数据训练

机器学习实战:决策树原来这么简单

 

3、预测准确率

机器学习实战:决策树原来这么简单

 

神奇的一幕出现了,准确率达到了100%,是不是数据错误了?没错的,这个数据是专门筛选过的,基本上去除了所有的噪音,所以准确率会非常高,而且,数据量太少,如果有需要,私信我拿完整的数据,你会看到不一样的效果。

至此,决策树完成,算是比较简单,但是应用起来非常不错的算法,有需要的话可以找我拿数据,实践一下。#程序员# #互联网寒冬#

--END--

作者:溪云阁

原创作品,抄袭必究。

部分图片来源网络,如侵权请联系删除,谢谢!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章