1. 决策树与熵

1.1 决策树简介

  • 下面有一个贷申请样本表,有许多特征
    在这里插入图片描述
  • 我们根据特征数据生成一棵树,比如年龄有青年,中年,老年三个类别,那么就有三个分支,分别对应着三种类别。如果是青年那么就看工作,如果有工作就给他贷款,如果没工作就不给他贷款。以上面这个例子来理解这棵树
    在这里插入图片描述
  • 再举一个例子:我们有一个样本:老年,有工作,没房子,信贷情况好,那么我们就可以走这样的一条路
    在这里插入图片描述
  • 为什么先给年龄而不是先给工作呢?换句话说是怎么选择特征构建树的呢?
    • 这不是我们人为决定的,而是要进行计算

1.2 熵

  • 熵表示不确定性,定义如下:其中 nnn 为特征数,pip_ipi 表示一个概率
    在这里插入图片描述
  • 假设 n=2n=2n=2,则有:图中越靠近 p=0.5p=0.5p=0.5(即越不确定),熵就越大。这表明熵越大,随机变量的不确定性就越大
    在这里插入图片描述

1.3 熵的计算举例

  • 例:我们需要计算我们数据集的熵,计算数据集的熵要算的是目标变量(或叫做类别标签),在这里我们是计算是否给这个人贷款,即最后一列
    在这里插入图片描述
  • 我们把 DDD 称作我们的一个数据集,∣D∣|D|D 表示数据集的条数,在这个例子为 ∣D∣=15|D|=15D=15
  • kkk 表示目标变量的种类数,在这个例子为 k=2k=2k=2
  • CkC_kCk 表示当前的这个类别条数有多个条,比如否有 6 条,那么 C1=6C_1=6C1=6
  • 最后用下面的这个公式算出来即可
    在这里插入图片描述

2. 条件熵

2.1 条件熵介绍

  • 还是上节课的这个贷款数据集
    在这里插入图片描述
  • 条件熵的公式为含义为:在给定 X 为多少的条件下,计算 Y 的熵是多少
  • 由于 X 有很多个取值,我们对它展开。比如之类年龄有青年,中年,老年
  • 这里 pip_ipi 是变量 X 取值为 xix_ixi 的概率
    在这里插入图片描述
  • 那么回到数据集的条件熵的计算公式来说,下面公式的含义如下:
    • 这里的 AAA 为条件变量,比如年龄
    • DDD 为数据集,∣D∣|D|D 为数据集条数,∣Di∣|D_i|Di 为条件变量当前取值的条数
    • nnn 为条件的种类数
    • KKK 依旧为目标变量的种类数
    • ∣Dik∣|D_{ik}|Dik 为两个变量同时满足的条数
      在这里插入图片描述

2.2 条件熵的计算例子

  • 我们以年龄为条件变量来尝试计算以它为条件的条件熵
  • 以年龄为青年时为例子,我们 i=1i=1i=1 为青年,这里的 ∣D∣∣D1∣=515{|D| \over |D_1|}={5 \over {15}}D1D=155,总共有 555 个青年,然后右部的连加就是在以青年为条件下的目标变量的信息熵,所以有式子的右半部分的展开
  • 对年龄的三个类别都做一次这样的操作后求连加即为以青年为条件的条件熵
    在这里插入图片描述

3. 信息增益与 ID3 算法

3.1 信息增益

  • 信息增益(也叫互信息)的定义如下:我们用符号 g(D,A)g(D,A)g(D,A) 来表示,即用数据集的信息熵减去以某个特征为条件的条件熵
    在这里插入图片描述
  • 根据信息增益准则的特征选择方法:
    1. 对训练数据集(或子集)D,计算其每个特征的信息增益
    2. 比较它们的大小,选择信息增益最大的特征
  • 信息增益算法:
    1. 计算数据集 D 的信息熵 H(D):
      在这里插入图片描述

    2. 计算特征 A 对数据集 D 的经验条件熵 H(D|A)
      在这里插入图片描述

    3. 计算信息增益
      在这里插入图片描述

  • 例子:
    在这里插入图片描述
    在这里插入图片描述

3.2 ID3 算法构建决策树

  • ID3 算法:在决策树递归构建过程中,使用信息增益的方法进行特征选择

  • 决策树生成过程:

    1. 从根节点开始计算所有特征的信息增益,选择信息增益最大的特征作为结点特征
    2. 再对子节点递归调用以上方法,构建决策树
    3. 所有特征信息增益很小或没有特征可以选择时递归结束得到一颗决策树
  • 比如说我们开始选择了 A3A_3A3 作为我们的根节点(根据上面的计算得到),此时我们会往下分叉出是或者否,然后我们又根据是或者否的子集来递归计算信息增益,比如是对应一个子集,否又对应一个子集
    在这里插入图片描述

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

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

相关文章

八股文场景题

如何预估接口上线后的 QPS 问题引入 这个问题其实是一个非常实际的问题,因为我们在开发需求后,例如:新增了一个接口 有一个步骤是值得做的,那就是预估这个接口的QPS 因为我们是可以去调配对应服务器的数量和运行配置的 例如我…

【Web安全】深入浅出理解“SQL注入-伪静态注入”及空格限制绕过技巧

文章目录什么是伪静态注入?伪静态注入中如何绕过空格限制?1. 用注释符替代空格2. 用不可见字符(URL 编码)替代3. 用括号分隔语句4. 用特殊符号替代核心逻辑往期文章【Web安全】一次性搞懂 ReDOS 漏洞原理/检测/防御 【Web安全】一…

【读论文】Step-Audio 2 深度解读:迈向工业级语音交互的「全能型选手」

引言:step-Audio升级 语音交互技术,作为人机交互最自然、最直接的方式之一,正以前所未有的速度发展。从简单的语音指令到流畅的语音对话,我们对 AI 的期望越来越高。然而,要让 AI 真正成为我们的“知心伙伴”,仅仅能“听懂”和“说出”还远远不够。 一个理想的语音 AI,…

java web 重定向

目录结构 demo\day20\src\com\demo\service\Dome1.javademo\day20\src\com\demo\service\Dome2.javademo\day20\src\com\demo\service\Dome3.javademo\day20\src\com\demo\service\Dome4.javademo\day20\web\WEB-INF\lib\javax.servlet.jardemo\day20\web\index.jspdemo\day20\…

MySQL(配置)——MariaDB使用

一、简介 MariaDB 和 MySQL 作为两个流行的关系型数据库管理系统,它们的区别可以从多个角度来探讨。尽管 MariaDB 最初是 MySQL 的一个分支,但随着时间的推移,它们逐渐在功能、性能和开发方向上有所不同。MariaDB 是 MySQL 的一个分支&#x…

Web3:赛道划分与发展趋势解析

区块链技术现在已经从单一的加密货币支付系统发展为涵盖金融、艺术、组织治理和社区文化的多元生态系统。这次我们将深入解析 DeFi(去中心化金融)、NFT(非同质化代币)、DAO(去中心化自治组织)与 MEME&#…

LeetCode 283 - 移动零

思路 使用双指针法,一次遍历完成原地修改。 慢指针 slow:指向下一个非零元素应该被放置的位置。快指针 fast:遍历整个数组,寻找非零元素。 当 fast 遇到非零数时,将其值赋给 slow 指向的位置,然后 slow 前进…

8. 网络层

在复杂的网络环境中确定一个合适的路径.1. IP协议1. 基本概念IP协议:提供一种能力(有非常大的概率,做到某事),把数据报从主机A,跨网络,送到主机B --> 必须要有方式,标识通信两端唯一性!&…

【通识】线性代数(Linear Algebra)

线性代数被广泛应用于抽象代数和泛函分析中;通过解析几何,线性代数能被具体表示,线性代数被泛化为算子理论。而非线性模型被近似为线性模型,应用场景多为自然科学和社会科学。 费马和笛卡尔的工作,线性代数出现于十七世…

Qt 嵌入式界面优化技术

在嵌入式系统中,界面性能直接影响用户体验和系统稳定性。由于嵌入式设备通常资源受限(如低性能 CPU、有限内存、小尺寸屏幕),需针对性优化 Qt 界面以实现流畅显示和高效交互。本文从渲染引擎、资源管理、布局优化到硬件加速&#…

去除视频字幕 4 : 下一步,打算研究 Video Inpainting (视频修复):

就是说,到现在,才算是真正开始,才发现真正的问题。 尝试去除视频上的字幕,使用 IOPaint, 效果很初级。。。问题描述 请帮我分析此时的效果。 此时的右侧字幕区域,闪烁不停!我原本以为效果会很好。实际非常…

代码随想录算法训练营第五十五天|图论part5

并查集理论基础 初始化: void init() {for (int i 0; i < n; i) {father[i] i;} } 寻根&#xff1a; // 并查集里寻根的过程 int find(int u) {return u father[u] ? u : father[u] find(father[u]); // 路径压缩 } 判断u跟v是否同根 // 判断 u 和 v是否找到同一个根 b…

安卓模拟器 adb Frida hook 抓包

基本步骤 adb connect 127.0.0.1:62001adb forward tcp:27042 tcp:27042 adb forward tcp:27043 tcp:27043adb shell./data/local/tmp/frida-server再开启cd D:\linuxdir\python\fridapython main.py下载夜神模拟 https://www.yeshen.com/ 安装adb 点击下载adb&#xff08…

编程与数学 03-002 计算机网络 14_网络性能分析

编程与数学 03-002 计算机网络 14_网络性能分析一、网络性能指标&#xff08;一&#xff09;带宽、时延、吞吐量等指标的定义与测量方法&#xff08;二&#xff09;性能指标对网络应用的影响二、网络性能的测试方法&#xff08;一&#xff09;使用网络测试工具&#xff08;如Wi…

AT9880B参数特征

AT9880B 是一款高性能北斗单模卫星导航接收机 SOC 单芯片&#xff0c;芯片集成射频前端和数字基带、北斗多频卫星信号处理引擎、电源管理功能。 芯片支持接收中国北斗二号和北斗三号&#xff0c;支持接收 B1I、B1C、B2I、B3I、B2a 和 B2b 等频点信号。主要特征 支持北斗二号/三…

eBPF 赋能云原生: WizTelemetry 无侵入网络可观测实践

引言 随着 KubeSphere 企业版 4.2.0 的正式发布&#xff0c;WizTelemetry 可观测平台 2.0 也同步亮相。作为本次升级中的重磅模块之一&#xff0c;它迅速引发了开发与运维团队的广泛关注。 本系列文章将系统解读 WizTelemetry 的核心能力与落地实践。继前两篇介绍了平台架构与指…

【JAVA安全-Fastjson系列】Fastjson 1.2.24 反序列化漏洞分析及测试环境构建【复习回顾】

Fastjson 1.2.24 反序列化漏洞分析及测试环境构建 漏洞背景 Fastjson 是阿里巴巴开源的一个高性能 Java JSON 库&#xff0c;广泛用于 Java 对象的序列化和反序列化。在 1.2.24 及之前的版本中&#xff0c;存在一个严重的安全漏洞&#xff0c;攻击者可以通过构造恶意的 JSON 字…

关于神经网络CNN的搭建过程以及图像卷积的实现过程学习

通过如下博客内容学习了CNN搭建的步骤&#xff0c;按照博主的思路完成了cnn网络的构建并完成50个epoch的训练并画出损失函数的曲线图时有满满的成就感 PyTorch深度学习实战&#xff08;3&#xff09;——使用PyTorch构建神经网络_pytorch 神经网络-CSDN博客 通过如下博客内容…

nodejs 实现Excel数据导入数据库,以及数据库数据导出excel接口(核心使用了multer和node-xlsx库)

项目地址&#xff1a;https://gitee.com/LiangDouJun/nodejsExcel 一、实现效果 1、数据库数据导出 2、excel导入 二、代码实现 // 根据环境加载对应的配置文件 const env process.env.NODE_ENV || development; require(dotenv).config({ path: .env.${env} });const expr…

VUE2 学习笔记8 v-text/html/cloak/once/pre/自定义

除了之前已经介绍过的v-on v-bind v-for v-if v-show&#xff0c;vue还有很多其他的指令。v-textv-text是Vue内置指令。内置指令&#xff0c;是Vue内部定义好的&#xff0c;开发的时候直接拿来用就行了。v-text用于向其所在的标签添加文本。<body><div id"root&q…