机器学习常识 7: 决策树

摘要: 决策树是一种与人类思维一致, 可解释的模型.

1. 决策树的结构

人类的很多知识以决策规则的形式存储:

  • 如果今天是阴天 (outlook = overcast), 就去打球.
  • 如果今天出太阳 (outlook = sunny) 而且湿度不高于 70% (humidity ≤ \le 70), 就去打球.
  • 如果今天出太阳 (outlook = sunny) 而且湿度高于 70% (humidity > > > 70), 就不去打球.

将这些规则组建出一棵树的样子, 如图 1 所示.

图 1. 决策树例.

2. 决策树的优势

  • 直观, 易于理解, 易于传授: 学生会迅速掌握这棵树.
  • 相比于决策规则集合, 决策树的优点是没有死角: 任何一种情况都被覆盖.
  • 与前面的 k k kNN 相比, 它是一个真正的模型 (model), 不依赖于具体的数据.
  • 对于机器而言, 使用决策树进行预测非常迅速, 任何新的实例, 都对应于从树根走到某个叶节点的一条路径. 这种路径的长度通常不超过 10.

3. 决策树的原理

  • 人为可以构建决策树, 这就是专家知识, 但它不属于我们讨论的范畴.
  • 从数据中构建出决策树, 才是机器学习的内容.
  • 决策树的构建过程, 实际上是一个不完全归纳 (特殊到一般) 的过程. 为学习到图 1 所示的决策树, 只用了 14 个样本. 但这棵决策树所覆盖的可能情况, 远远超过了 14. outlook 有 3 种情况, humidity 有 100 种情况, rain 有 2 种情况, windy 有 2 种情况, 所以总共是 31002*2 = 1200 种情况.
  • 决策树构建的原则是: 越小越好, 即节点树越少越好. 这是基于奥克姆剃刀 (Occam’s razor) 原理.

4. 决策树的构建方法

  • 穷举法. 由于数据量比较大, 一般不使用这种方法.
  • 启发式方法. 如基于信息熵、基于基尼指数. ID3 适用于枚举型数据, 使用了信息熵 (条件信息熵之差称为信息增益). 对于实数型数据, 则使用 C4.5. 在绝大多数情况下, ID3 可以获得最小的决策树. 但你也可以构造出反例. 在 2000 年前, 决策树火得一蹋糊涂.
  • 剪枝. 如果一棵决策树使用一张 A4 纸都画不下, 就失去了泛化能力. 这时候需要剪枝. 例如, 在一个节点处, 有 100 个正样本和 1 个负样本, 虽然可以增加一个属性将它们分开, 但最好不要增加这个属性, 这样节点至少节约了一个.
  • 有时候想同时考虑某些属性之和之类 (温度 + 湿度) 的新属性, 可以使用 Oblique decision tree (斜决策树).

5. 常见误区

  • 没有认识到决策树是可以直接通过人来传授的.
  • 没有认识到现成的决策树, 其实是前人从数据中学习而得的.
  • 没有把决策树看成一系列规则 (具有良好的组织).
  • 一开始就陷入信息增益的概念, 而没想到决策树其实是一大类方法, 还可以用其它启发式信息. 只是 ID3 最为成功而已.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/23920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1688商品ID采集一件代发详情页面数据

本篇博文介绍了对1688商品详情API的二次封装,将URL参数封装成Python函数,直接传入参数即可获取搜索结果,例如1688商品标题、价格、一件代发、sku属性和URL等。提供了详细的代码示例和接口调用Demo。 1688.item_get-获得1688商品详情数据 1.请…

APP开发死亡潮来临 小程序是否会取而代之?

移动互联网的发展, APP开发行业也迎来了它的大时代。据有关数据显示,2017年上半年国内新增的 App数量达到了创纪录的449万款,用户使用时长超过了200亿分钟。移动互联网已成为名副其实的“流量”产业,也因此诞生出一大批 APP开发公…

Maven 概述及下载安装

一、为什么要学习 Maven 我们构建一个项目需要用到很多第三方的类库,就需要引入大量的jar包,并且Jar包之间的关系错综复杂,缺少任何一个Jar包都会导致项目编译失败。Maven 能帮助我们下载及管理依赖。 本地项目代码开发完成后,我…

类和对象【3】初始化列表

全文目录 引言初始化列表定义特性 总结 引言 上一篇文章中介绍了构造函数,它可以在实例化一个类对象的时候自动调用,以初始化类对象: 戳我看默认成员函数详解 但是,不难发现,在构造函数体中对成员变量的初始化其实是属…

gdb调试 与 coredump

gdb调试 与 coredump调试 1. 启动gdb2.gdb中的相关命令3. coredump调试(附属于gdb调试中一种,当程序出现错误时,会使用coredump调试)1)coredump是什么?2)前期设置3)什么情况下会导致…

word打印为pdf去掉批注和修订记录

对于这个问题某乎上充斥着垃圾回答,大多引流到自家开发的pdf产品上。其实背后的方法都是一样的,就是关掉批注,用word自带的功能就能解决,凡是word编辑软件都有类似功能 直接用word打印为pdf后的效果 下图为打印出来的pdf文件&…

【算法】不使用LinkedHashMap实现一个LRU缓存

文章目录 什么是LRU?设计思路代码实现 LRU是我在面试过程中遇到的比较多的算法题了,并且我自己的项目中也手写了LRU算法,所以觉得还是有必要掌握一下这个重要的算法的。 什么是LRU? LRU是一种缓存淘汰策略。 我们知道&#xff0…

大环境不好难找工作?三面阿里,幸好做足了准备,已拿offer

大环境不好难找工作?三面阿里,幸好做足了准备,已拿offer 三面大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜)。回来之后把这些题目做了一个分…

R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践与拓展

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

增强型本地文件搜索工具:Find Any File

Find Any File是mac上一款增强型本地文件搜索工具,可以让你在本地磁盘上搜索、查找任何文件,包括本地磁盘的名称、 创建或修改日期、 大小或类型和创建者代码等。小编现为大家提供最新Find Any File Mac破解版,欢迎需要的朋友下载使用。 Find…

屏幕挂灯是不是智商税?明基ScreenBar Halo屏幕挂灯初体验

目录 一、屏幕挂灯是不是智商税?二、文心一言眼里的屏幕挂灯1、明基ScreenBar Halo屏幕挂灯2、屏幕挂灯和普通台灯哪个好? 三、屏幕挂灯初体验四、使用体验五、无线控制器六、专业角度分析1、屏幕工作照明,不是随便一盏灯就可以2、引导光线照…

路径规划算法:基于入侵杂草优化的路径规划算法- 附代码

路径规划算法:基于入侵杂草优化的路径规划算法- 附代码 文章目录 路径规划算法:基于入侵杂草优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

【SA8295P 源码分析】03 - SA8295P QNX Host 上电开机流程分析

【SA8295P 源码分析】03 - SA8295P QNX Host上电开机流程分析 一、阶段1 固件开机自检 (SM BIST):APPS PBL加载XBL后触发 INT_RESET进行Warm Reset二、阶段2 固件开机自检 (SM BIST):加载TZ,初始Hypervisor,启动QNX Kernel&#x…

Flume实践

1 NetCat方式 ]# ./bin/flume-ng agent --conf conf--conf-file ./conf/flume_netcat.conf --name a1 -Dflume.root.loggerINFO,console [rootmaster ~]# yum -y intalll telnet 发数据: ]# telnet master 44444 数据接收,是在终端上接收的&#xff0…

从组件化角度聊聊设计工程化

目录 设计系统 设计系统的定义 设计系统的优势 设计系统存在的问题 设计工程化 设计系统探索 设计系统落地实践 Design Token Design Token 实践 设计工程化理想方案构想 展望 参考文献 近几年围绕业务中台化的场景,涌现出了许多低代码平台。面对多组件…

Qt翻金币小游戏详细教程(内涵所有源码、图片资源)

一、项目简介 翻金币项目是一款经典的益智类游戏,我们需要将金币都翻成同色,才视为胜利。首先,开始界面如下: 点击start按钮,进入下层界面,选择关卡: 在这里我们设立了20个关卡供玩家选择&…

Jmeter组件:Random CSV Data Set Config(随机读取文件数据)

一、Jmeter组件:Random CSV Data Set Config(随机读取文件数据) 功能:该组件可以随机读取CSV文件中的每一行的数据 二、下载插件:(jmeter-plugins-random-csv-data-set-xx.jar),并放到lib/ext目录下,重启jmeter 也可以在Jmeter…

Nginx基本使用以及部署前端项目

前言 最近学习了一下Nginx,整理了一个博客,主要参考的是狂神说的b站视频教程,文章链接如下:狂神说Nginx快速入门 一、下载、启动Nginx 1.下载Nginx 到Nginx官方选择自己电脑适用的稳定版本下载,我下载的的windows版…

ChatGPT免费使用的方法有哪些?

目录 一、ChatGpt是什么? 二、ChatGPT国内免费使用的方法: 第一点:电脑端 第二点:手机端 三、结语: 一、ChatGpt是什么? ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语…

图像算法工程师岗位的主要职责(合集)

图像算法工程师岗位的主要职责 一、确定岗位的职责 1.根据工作任务的需要确立工作岗位名称及其数量; 2.根据岗位工种确定岗位职务范围; 3.根据工种性质确定岗位使用的设备、工具、工作质量和效率; 4.明确岗位环境和确定岗位任职资格; 5.确定各个岗位之间的相互关系; 6.根据岗位…