向毕业妥协系列之机器学习笔记:决策树(一)

article/2025/11/10 14:20:43

目录

一.决策树模型

二.学习过程

三.纯度(熵)

四.选择拆分信息增益


一.决策树模型

现在以识别猫为例,有三个特征,分别是耳朵,脸和胡须,然后每个特征都有两种输出(等价于二元分类)

决策树模型:

椭圆的结点称为决策节点

决策树也可以有多种不同的样子:

二.学习过程

这图的形成过程是这样的:首先最开始有10个动物,我们开始构建根节点,选择一个特征在根节点上使用,比如耳朵,根据耳朵不同各自分到两边,然后以左边为例,再创建一个决策节点,然后在这个决策节点选择一个特征,比如脸的形状,又分到了两边,这时会发现刚刚分出来的这两侧已经一方都是猫,一方都是狗了,所以为这两方分别设置对应的叶子节点。

决策树学习过程:

Decision 1: How to choose what feature to split on at each node? (怎样为一个决策结点选择一个特征).
Maximize purity (or minimize impurity) 比如一个结点里猫的比例占多少,比例越高越纯,下面会详细讲到纯度的概念。

Decision 2: When do you stop splitting(何时停止分裂)?
●When a node is 100% one class(即这个结点里此时全是猫或全是狗)
●When splitting a node will result in the tree exceeding a maximum depth(设定一个最大的深度,当决策树的某个结点超过这个深度时就不会再分裂了),这样可以保证决策树不至于太大太笨重,而且可以降低过拟合的风险。


●When improvements in purity score are below a threshold(如果分裂节点对于纯度的改善低于某个阈值就停止分裂)

●When number of examples in a node is below a threshold(当一个节点里的训练示例的数量低于某个阈值时)

三.纯度(熵)

先看一下熵(entropy)的定义,熵是衡量一组数据纯不纯的指标。

p1是猫训练示例的比例,下图左侧图像横轴是p1,纵轴是熵。

可以看到并不是猫的比例占的越大熵就越小,有2个猫时的H是0.92,有3个猫时H是1,这是为啥呢???而且猫的数量是0时,H是0时,这就涉及到数学中熵的定义了,熵的本质是一个系统“内在的混乱程度”。突然想起了大学的时候被信息论支配的恐惧。

现在就明白了,虽然p1是猫的比例,但是混乱程度不是只由猫决定的,还由狗决定,所以当没有猫时,就是纯狗了,所以很纯净,不混乱,所以熵为0。这也是为什么两只猫时比三只猫时的熵要小 。熵越大代表越混乱。

来看一下熵的计算公式,如下,如果p1代表的是猫的比例,那么p0代表的就不是猫的比例,然后再看下面的这个公式

 注:“0log(0)”=0 是因为当x趋近于0的时候,xlogx的极限就是0

四.选择拆分信息增益

前面提到过的在决策节点上选择哪个特征来进行决策,这要看用哪个特征能最大化减少熵。

熵的减少称为信息增益。下面来看一下如何计算熵的减小。

起初我们有三个特征,要在根节点选择使用哪个特征来进行第一步决策,然后每个特征都要试一试,以选择耳朵特征来决策举例说明,本来分类之前是10个动物(五只猫五只狗),用耳朵分类之后。左侧是五个动物(其中4猫1狗),右侧是五个动物(其中1猫4狗),所以左侧的p1(猫的比例)是4/5,右侧的p1是1/5,然后带入熵计算公式中计算出左右两侧的熵分别是H(0.8)=0.72和H(0.8)=0.72,然后咱们需要计算加权平均熵,各侧的权值就是各侧的动物数除动物总数(注意下图的每个右侧都有一个狗头没显出来,那块阴影就是),所以咱们这个例子的加权平均熵就是

5/10*H(0.8)+5/10*H(0.8),然后我们要知道用这个特征来分类让熵减少了多少,就要知道根结点最初状态的熵是多少,初始状态是十个动物(5猫5狗),所以p1=5/10=0.5,熵是H(0.5)=1然年后用最初始状态的熵减去分类一次之后的加权平均熵得到信息增益(即熵减少了多少),然后另外两个特征也是如法炮制,可以得到三个特征如果被选择进行分类那么各自会得到的信息增益是0.28,0.03,0.12,咱们要选信息增益最大的(即熵减少最多的),即耳朵形状特征。

选熵减少最多的可以降低决策树深度超过设定的最大深度和过拟合的风险。

获取信息增益的普适性计算公式:

w就是上面每侧的动物数占父节点内的动物数的比例,比如脸特征,w^left=7/10,w^right=3/10


http://chatgpt.dhexx.cn/article/Jx5wNZlI.shtml

相关文章

求余数的各种方法

1.辗转相除法辗转相除法(又名欧几里德法) C语言中用于计算两个正整数a,b的最大公约数和最小公倍数,实质它依赖于下面的定理: a b0 gcd(a,b) gcd(b,a mod b) b!0根据这一定理可以采用函数嵌套调用和递归调用形式进行求两个数的最大…

matlab求余数

matlab求余数给出了两个函数:mod和rem,官方也给出了两者的区别: 根据需要选择合适的求余函数,记录一下。

rdnf-0.2

rdnf 0.2 思路 indradb indradb图数据库是基于kv存储引擎,主要是基于rocksdb。基本元素主要有三:Edge、Vertex、Property(包含edge_property、vertex_property)。 原理如下 VertexManager key:vertex.idvalue&#…

RDD是什么?

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系 注意一些关于Spark Co…

AMD RDNA Architecture - AMD RDNA 架构

AMD RDNA Architecture - AMD RDNA 架构 https://www.amd.com/en/technologies/rdna Architected for Gaming - 为游戏而构建 The new RDNA architecture is designed for the next generation of efficient high-performance gaming. It’s the DNA that powers your games, …

Residual Dense Network for Image Super-Resolution(RDN)

摘要 1.问题背景:传统的深度CNN在图像超分辨率任务中取得了显著的成功,但是大部分基于深度CNN的SR模型没有充分利用来自原始低分辨率(LR)图像的层次特征,导致相对较低的性能。 2.创新点:为了解决这个问题…

一文带你初识RDMA技术——RDMA概念,特点,协议,通信流程

文章目录 1.RDMA概念2.RMDA与Socket2.1传统的TCP/IP通信2.2TCP/IP存在的问题 3.RDMA的特点3.1CPU offload3.2kernel bypass3.3zero copy3.4异步接口 4.RDMA通信协议InfiniBandRoCEiWARP 5.RDMA编程概述5.1传输操作5.2传输模式5.3相关概念5.4典型实例 6.RDMA通信过程6.1单向通信…

rDSN概览

原文链接:https://github.com/Microsoft/rDSN/wiki/overview rDSN(Robust Distributed System Nucleus)翻译成中文是高可用分布式系统核心,旨在提供一个健壮的、易于扩展、易于维护运营的分布式软件架构。对于分布式系统的开发人员来说,其提…

深度学习(二十二)——ESPCN, FSRCNN, VESPCN, SRGAN, DemosaicNet, MemNet, RDN, ShuffleSeg

https://antkillerfarm.github.io/ ESPCN ESPCN(efficient sub-pixel convolutional neural network)是创业公司Magic Pony Technology的Wenzhe Shi和Jose Caballero作品。该创业团队主要来自Imperial College London,目前已被Twitter收购。…

超分文章记录 SRCNN-FSRCNN-ESPCN-VDCN-DRCN-RDN-LapSRN-SRDenseNet-SRGAN

1.Learning a Deep Convolutional Network for Image Super-Resolution(SRCNN 2014 ECCV ) 1、总结 第一篇用深度学习做超分的文章,就是用深度学习来表示传统方式。结构比较简单。 源码地址: SRCNN CODE 2、思路 先用 bicubic…

Introducing RDNA Architecture

Introducing RDNA Architecture The RDNA architecture white paper https://www.amd.com/system/files/documents/rdna-whitepaper.pdf The all new Radeon gaming architecture powering “Navi” 全新 Radeon 游戏架构为 Navi 提供动力 Table of Contents Introduction R…

Fluent案例:肾动脉RDN治疗过程的仿真

1 问题背景 肾动脉消融(Renal denervation,简称RDN)是一种治疗高血压的办法,其基本原理为利用插入肾动脉的电极消融导管进行射频消融,使肾动脉血管壁附近的交感神经因高温而损伤失活,减少神经系统过度活跃的…

LDAP 中的 RDN

什么是 RDN,RDN 和 DN 又有什么关系呢? 很多第一次接触到 LDAP 的童鞋,经常会被一堆名字搞得晕头转向。 RDN(relative distinguished name)中文翻译就是相对专有名字。 一般指dn逗号最左边的部分,如 cnb…

超分算法RDN:Residual Dense Network for Image Super-Resolution 超分辨率图像重建

这篇文章总结分析了ResNet 和DenseNet的优缺点,并将其结合,提出了新的结构ResidualDenseNet。文章中对ResNet 和DenseNet以及MemNet都进行了简单的对比分析。四篇原文都放在下面。 参考文档: RDN:https://arxiv.org/pdf/1802.0879…

图像超分算法小合集二:FSRCNN、DRCN、RDN、EDSR

目录 FSRCNNDRCNRDNEDSR 文章: FSRCNN : Accelerating the Super-Resolution Convolutional Neural Network DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution RDN: Residual Dense Network for Image Super-Resolution EDSR:E…

初识RDMA技术——RDMA概念,特点,协议,通信流程

1. RDMA概念 在DMA技术中,外部设备(PCIe设备)能够绕过CPU直接访问主机的系统主存; RDMA(Remote Direct Memory Access)在概念上是相对于DMA而言的。指外部设备能够绕过CPU,不仅可以访问本地主机…

【RDMA】技术详解(一):RDMA概述

目录 0、前言 一、技术背景 1 传统的 TCP/IP 网络通信的弊端 2 新的网络通信技术(TOE and RDMA) 2.1 TOE (TCP/IP协议处理工作从CPU转移到网卡) 2.2 RDMA (绕过CPU,数据直接‘传’到对端内存&#xf…

Oriented rcnn

oriented rcnn代码解析 文章目录 rpn_head.forward_trainroi_head.forward_train class OrientedRCNN(RotatedTwoStageDetector) 类似rotated faster rcnn它们都继承两阶段检测器类。 所以训练的整体框架都如下: rpn_head.forward_train 代码主体👇 …

srcnn fsrcnn espcn rdn超分网络的结构

1.Srcnn Code: 数据集制作方法:以x2为例 训练数据:一张原始图作为高分辨率图像(h, w),先下采样到(h/2, w/2),然后再cubic上采样到(h, w)得到低分辨率图像&a…

RDD

RDD <1> 概述一. 什么是RDD二. spark 编程模型1. DataSource2. SparkContext3. Diver&#xff08;1&#xff09;SparkConf&#xff08;2&#xff09;SparkEnv&#xff08;3&#xff09;DAGScheduler&#xff08;4&#xff09;TaskScheduler&#xff08;5&#xff09;Sche…