网站首页 > 技术文章 正文
上一篇的文章中,我们主要对监督学习与无监督学习进行了讲解,其实还有一个半监督学习,这个可以自行百度,也是比较简单。
这一篇中,我们来讲解监督学习中经常用到的算法,决策树。
本文章节
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--
作者:溪云阁
原创作品,抄袭必究。
部分图片来源网络,如侵权请联系删除,谢谢!
- 上一篇: 统计学习方法-决策树 统计决策的概念
- 下一篇: 干货!常见的10个回归分析模型算法,果断收藏
猜你喜欢
- 2024-11-12 电力系统领域,电力系统暂态稳定判别方法
- 2024-11-12 机器学习“司马家族”——树族 机器学习实战树回归
- 2024-11-12 大白话人工智能算法-第27节决策树系列之预剪枝和后减枝(6)
- 2024-11-12 机器学习之图解 GBDT 的构造和预测过程
- 2024-11-12 机器学习算法之随机森林算法通俗易懂版本
- 2024-11-12 决策树之 GBDT 算法 - 回归部分 gbdt和决策树
- 2024-11-12 大数据:如何用决策树解决分类问题
- 2024-11-12 几种特征选择方法的比较,孰好孰坏?
- 2024-11-12 决策树算法之随机森林 决策树和随机森林预测结果
- 2024-11-12 3分钟掌握机器学习中的决策树 机器学习和深度学习决策树
你 发表评论:
欢迎- 11-13第一次养猫的人养什么品种比较合适?
- 11-13大学新生活不适应?送你舒心指南! 大学新生的不适应主要有哪些方面
- 11-13第一次倒班可能会让人感到有些不适应,以下是一些建议
- 11-13货物大小不同装柜算法有哪些?怎么算?区别有哪些?
- 11-13五大基本算法 五大基本算法是什么
- 11-13高级程序员必备:分治算法分享 分冶算法
- 11-13最快速的寻路算法 Jump Point Search
- 11-13手机实时人工智能之「三维动作识别」:每帧只需9ms
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)