机器学习入门(第五天)——决策树(每次选一边)

Decision tree

知识树

Knowledge tree

一个小故事

A story

挑苹果:

根据这些特征,如颜色是否是红色、硬度是否是硬、香味是否是香,如果全部满足绝对是好苹果,或者红色+硬但是无味也是好苹果,从上图可以看出来,只要做足够的循环判断即可得到结果。

如下图:

一步步走下来,就能挑到好苹果。这就是决策树

  1. 最顶端的叫根节点,所有样本的预测都是从根节点开始。

  2. 每一个圆形节点表示判断,每个节点只对样本的某个属性进行判断。

  3. 圆形节点是标记节点,走到圆形节点表示判断结束,将圆形节点中的标签作为对应的预测结果。

如何构建决策树:

  1. 构建的决策树按顺序对每个特征进行判断(低效)

  2. 每个判断节点都尽可能让一半进入A分支,另一半进入B分支(高效)

引入新的知识,信息熵

信息熵

Information entropy

  1. 每走一步,我们都在确定苹果的好坏。

  2. 在根节点时,我们对苹果的好坏一无所知。

  3. 经过对颜色的判断后,如果是红色,我们明白好坏的概率是1/2。虽然还包含了1/2的不确定性。

  4. 如果苹果红色的前提下又硬,我们100%确定它是好苹果。此时不确定性坍塌为0。

  5. 这是一个减少不确定性的过程。

从整体来讲,我们希望决策树每走一步,不确定性都下降的快一些,让我们的判断步数无限小。

什么是信息的不确定性?

就是信息熵

在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量,设X是一个取有限个值的离散随机变量,其概率分布为

则随机变量X的熵定义为

面试可能会问到这个公式,还有交叉熵、相对熵

熵越大,则随机变量的不确定性越大。其中0 ≤ H(P) ≤ log n

举例计算

Example

假设投色子,6个的概率分别是1/6,计算如下:

其中6个1/6(log左边的六分之一)加起来就是1

则最终=log6

这也解释了为什么上面H(P) ≤ log n

另外,均由分布的时候,熵最大,因为所有可能都是一样的,如上面的6个面都是1/6。

如果有1个坏苹果和9个好苹果时,我们可以认为大部分都是坏苹果。内部并不混乱,确定性很大,熵很小。

信息增益

Information gain

表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。

特征A对训练集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:g(D, A) = H(D) - H(D|A)

当前的信息熵等于划分完(如划分成两个)的信息熵之和。

信息增益算法

输入:训练数据集D和特征A

输出:特征A对训练数据集D的信息

  1. 计算数据集D的经验熵H(D)

  2. 计算特征A对数据集D的经验条件熵H(D|A)

  3. 计算信息增益

举个例子

Example

是否信贷

ID年龄有工作有自己房子信贷情况类别
1青年一般
2青年
3青年
4青年一般
5青年一般
6中年一般
7中年
8中年
9中年非常好
10中年非常好
11老年非常好
12老年
13老年
14老年非常好
15老年一般

对上表所给的训练数据集D,根据信息增益准则选择最优特征。首先计算经验熵H(D)

计算类别:一共15个类别,9个是,6个否

然后计算各特征对数据集D的信息增益,分别以A1,A2,A3,A4表示年龄、有工作、有自己房子和信贷情况4个特征,则

  1. 首先计算年龄

    H(D)=0.971上面计算了,H(D1)青年,H(D2)中年,H(D3)老年

  2. 计算有工作

    H(D)=0.971,H(D1)是有工作,H(D2)是无工作

  3. 计算有无房子

  4. 计算信贷情况

有无房子是作为信贷的第一个划分,下降的最快

信息增益比

Information gain ratio

信息增益比:

如果以信息增益为划分依据,存在偏向选择取值较多的特征,信息增益是对这一问题进行矫正。

举例

如上面的例子,后面加入了身份证这个特征,身份证又是唯一的,算法对样本画了个15叉树,一层就搞定了全部的分类。

这样会造成一个问题,划分会倾向于特征取值数目较多的,即分的更快。

但在预测集上就出现很大的问题了,即预测集的身份证肯定也是唯一的。

定义:

特征A对训练数据集D的信息增益比

定义为其信息增益g(D,A)与训练数据集D关于特征A的经验熵H(D)之比:

计算

如上面的年龄,有3个类(青年、中年、老年),

信息增益比和信息增益的区别就是除以

决策树的构建

Build the decision tree

C4.5算法,大体相同,只不过计算的是信息增益比,而不是信息增益。我们通常也是用C4.5作为决策树的算法,其区别也就在于多了个分母。

总结

Summarization

  1. 决策树的核心思想:以树结构为基础,每个节点对某特征进行判断,进入分支,直到到达叶节点。

  2. 决策树构造的核心思想:让信息熵快速下降,从而达到最少的判断次数获得标签。

  3. 判断信息熵下降速度的方法:信息增益。

  4. 构建决策树算法:ID3(使用信息增益)、C4.5(使用使用信息增益比)。

  5. 信息增益会导致节点偏向选取取值角度的特征的问题。

    关于第5点的补充,统计学习和西瓜书都是给的这个解释,但还有另一种解释,就是信息增益导致大数问题——>概率是否准确的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用ARCGIS做地下水脆弱性评价分析

(一)行政边界数据、土地利用数据和土壤类型数据 本文所用到的河北唐山行政边界数据、土地利用数据和土壤类型数据均来源于中国科学院资源环境科学与数据中心(https://www.resdc.cn/Default.aspx)。 (二)地…

RabbitMQ消息模型之Routing-Direct

Routing Direct 在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 在Direct模型下: 队列与交换机的绑定,不能是任意…

Linux环境搭建(Ubuntu22.04)+ 配置共享文件夹(Samba)

Linux开发环境准备 搭建Linux开发环境所需要的软件如下: VMware虚拟机:用于运行Linux操作系统的虚拟机软件之一,VMware下载安装在文章中不做说明,可自行百度谢谢Ubuntu光盘镜像:用于源代码编译,有闲置计算…

【算法刷题】Day9

文章目录 611. 有效三角形的个数题干:题解:代码: LCR 179. 查找总价格为目标值的两个商品题干:题解:代码: 1137. 第 N 个泰波那契数题干:原理:1、状态表示(dp表里面的值所…

YOLOv5改进之ShuffleNetV2

目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理

Nginx(无法解析PHP网页如何解决?FPM解决你的烦恼!)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

Synchronized底层机制:偏向锁、轻量级锁与重量级锁及其锁升级过程

前言: 在Java并发编程中,synchronized关键字是用于实现线程同步的重要工具。在JVM中,synchronized的底层实现涉及到了偏向锁、轻量级锁和重量级锁这三种锁状态,以及锁升级过程。在之前的文章中介绍到过,这篇文章详细对…

LeeCode前端算法基础100题(3)- N皇后

一、问题详情: 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后…

BLP9H10-30GZ LDMOS 功率晶体管 Ampleon

BLP9H10-30GZ 30W塑料LDMOS 功率晶体管,适用于频率范围为616 MH 至960 MHz的基站应用。 BLP9H10-30GZ 特点和优势: 高效率 出色的耐用性 专为宽带操作而设计 出色的热稳定性 高功率增益 集成ESD保护 有关 RoHS 合规性 BLP9H10-30GZ应用程序&…

网易区块链,网易区块链赋能赣州脐橙数字藏品,数字指纹解决方案

目录 网易区块链 网易区块链赋能赣州脐橙数字藏品,助力革命老区三农之路 数字指纹解决方案 网易区块链 网易区块链成立于2017年,致力于Web3.0区块链技术的研发和应用。自主研发的区块链“天玄”引擎,在单链场景下支持每秒最高30万笔交易,单日可处理上链数据超10亿。 与…

智慧工地解决方案,Spring Cloud智慧工地项目平台源码

智慧工地一体化信息管理平台源码,微服务架构JavaSpring Cloud UniApp MySql 智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、物联网和移动互联网等高科技技术手段,将施工区域各系统数据汇总,建…

Notepad++批量添加引号

工作中经常会遇到这样情景:业务给到一批订单号,需要查询这批订单的某些字段信息。在where条件中需要传入这些订单号的数组,并且订单号用引号引起,用引号隔开。 字符串之间长度相同 可以按住CtrlAlt和鼠标左键选中区域&#xff0…