当前位置: 首页 > article >正文

机器学习-第五章 决策树

第五章 决策树目录1.决策树简介2.ID3决策树3.C4.5决策树4.CART决策树5.案例泰坦尼克号生存预测6.CART回归树7.决策树 剪枝2-信息增益 3-信息增益率 4- GiNi 基尼值 6-和传统回归的区别 4.5-掌握 2346-面试了解1 、决策树简介一、生活中的决策树二、决策树是一种树形结构树中的内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果三、决策树的建立过程1.特征选择:选取有较强分类能力的特征2.决策树生成:根据选择的特征生成决策树3.决策树也易过拟合,采用剪枝的方法环节过拟合四、思考1.女孩相亲过程中,更看重那些特征?年龄长相收入是否公务员2.机器学习算法中,选择数据集中的那些特征进行分裂,会更好呢?2、ID3决策树2.1 熵一、ID3 决策树核心思想ID3 决策树通过信息增益来决定用哪个特征进行划分。信息增益 = 熵 − 条件熵信息增益越大,特征越优先作为划分节点。二、熵(信息熵)是什么熵(entropy)表示数据的不确定度 / 混乱程度。数据越规整 → 熵越小数据越混乱 → 熵越大大白话:熵就是数据的混乱程度。三、熵的计算公式pi:第 i个类别在数据中出现的比例(分类占比)对所有类别求和,前面加负号例子 1(8 个数据,A/B/C/D/E/F/G 各出现 1 次)例子 2(8 个数据:A 出现 4 次,B 出现 2 次,C 出现 1 次,D 出现 1 次)计算结果为1.75四、Python 快速计算熵方法一:终端 / Python 命令行frommathimportlog log(8,2)# 以2为底8的对数 = 3.0方法二:PyCharm 的 Python Console / TerminalTerminal:输入python进入交互模式Python Console:直接使用frommathimportlog# 计算例子2-0.5*log(0.5,2)-0.25*log(0.25,2)-0.125*log(0.125,2)*2结果:1.75五、练习题与答案1. 三个类别,各占 1/32. 占比 1/10、2/10、7/103. 全部属于同一类(占比 1)说明:纯节点熵为 0。六、信息增益定义信息增益:特征 A 对训练集 D 的信息增益,记作 g(D, A)公式:g(D, A) = H(D) - H(D| A)H(D) :数据集的信息熵(混乱程度)H(D | A) :给定特征 A 下的条件熵大白话:用了特征 A 之后,数据的不确定性减少了多少。2.2 信息增益一、条件熵的计算公式D_v:特征 A 取值为 v 的子集|D_v|/|D|:该子集的占比(分类占比)H(D_v):该子集内部的信息熵条件熵 = 每个分支的占比 × 该分支的熵,再求和。三、完整计算案例已知数据(6个样本)特征 A目标阿尔法A阿尔法A阿尔法A阿尔法B贝塔B贝塔B汇总:阿尔法 4 个(3A + 1B),贝塔 2 个(0A + 2B)总体:3A + 3B第一步:计算信息熵 H(D)因为 A 和 B 各占 1/2,熵 = 1。第二步:计算条件熵 H(D|A)2.1 阿尔法分支的熵 H(D_阿尔法)数据集:3A + 1B(共4个)2.2 贝塔分支的熵H(D_贝塔)数据集:0A + 2B(共2个,全是 B)2.3 条件熵第三步:计算信息增益g(D, A) = H(D) - H(D|A) = 1 - 0.54 = 0.46四、ID3 决策树构建流程计算每个特征的信息增益选择信息增益最大的特征作为当前节点根据该特征的不同取值,将数据集拆分成若干子集对每个子集重复上述步骤(剩余特征继续计算信息增益)直到:子集中所有样本属于同一类别 → 停止,设为叶节点没有特征可用 → 停止,取多数类五、案例中的树结构特征 A ├── 阿尔法(3A + 1B)→ 还会继续分裂 └── 贝塔(0A + 2B)→ 全是B,停止(叶节点)贝塔分支不再分裂(熵 = 0)阿尔法分支需要继续计算剩余特征的信息增益六、一句话总结信息增益 = 熵 − 条件熵ID3 = 每次找信息增益最大的特征来分裂数据。2.3 ID3树构建一、核心回顾ID3 核心思想:每次选择信息增益最大的特征作为节点信息增益 = 信息熵 − 条件熵信息熵:衡量数据混乱程度条件熵:给定特征后剩余的不确定性二、案例背景数据集:论坛客户流失数据(15个样本)性别活跃度是否流失(1=流失,0=未流失)男高0女中0………目标:判断“性别”和“活跃度”哪个对流失影响更大,并构建决策树。三、计算步骤第一步:计算信息熵 H(D)总样本:15个流失(1):5个未流失(0):10个第二步:计算“性别”的条件熵 H(D|性别)2.1 男分支(8个样本)男中流失:3个男中未流失:5个2.2 女分支(7个样本)女中流失:2个女中未流失:5个2.3 条件熵H(D|性别) =8/15* H(男) +7/15*H(女)=0.97482.4 信息增益g(D,性别) = 0.9812 - 0.9748 = 0.0064第三步:计算“活跃度”的条件熵 H(D|活跃度)活跃度分三类:高、中、低3.1 高(6个样本)全是未流失(0)H(高) = 03.2 中(5个样本)流失1个,未流失4个3.3 低(4个样本)全是流失(1)H(低) = 03.4 条件熵H(D|活跃度) =6/150 +5/15H(中) +4/15*0=0.67763.5 信息增益g(D,活跃度) = 0.9812 - 0.6776 = 0.3036四、比较与结论特征信息增益性别0.0064活跃度0.3036活跃度的信息增益更大 → 对流失影响更大根节点选择:活跃度五、决策树构建结果活跃度 ├── 高 → 非流失(全0) ├── 中 → 按性别继续划分 │ ├── 女 → 非流失(全0) │ └── 男 → 流失/非流失混合(需继续或停止) └── 低 → 流失(全1)中活跃度 + 男的情况可能还需要进一步分裂(本例中因数据少可停止或作为叶节点)六、重要结论(选择题考点)决策树:每个内部节点 = 判断条件每个叶节点 = 结果可以明确特征重要程度 ✅信息熵:熵越大 → 数据越混乱数据越一致 → 熵越小信息增益:ID3 核心增益越大 → 特征越重要对类别多的特征更青睐(但须注意过拟

相关文章:

机器学习-第五章 决策树

第五章 决策树 目录 1.决策树简介 2.ID3决策树 3.C4.5决策树 4.CART决策树 5.案例泰坦尼克号生存预测 6.CART回归树 7.决策树 剪枝 2-信息增益 3-信息增益率 4- GiNi 基尼值 6-和传统回归的区别 4.5-掌握 2346-面试了解 1 、决策树简介 一、生活中的决策树 二、决策树是一…...

斯坦福小镇AI的‘记忆宫殿’如何炼成?深入剖析Generative Agents的记忆与反思机制

斯坦福小镇AI的‘记忆宫殿’如何炼成?深度解析Generative Agents的记忆与反思架构 在虚拟小镇里,AI角色Klaus每天早晨7点准时煮咖啡,9点前往实验室与同事讨论量子计算,下午5点则会在酒吧偶遇同样热爱科研的Maria——这些看似自然的…...

2026硬核教程:Gemini3.1Pro一键搞定Excel数据清洗

Excel 清洗这活儿,最折磨人的从来不是“不会”,而是:脏数据太多、规则太散、清洗后还要反复核验。你以为只是删除空值/去重一下,结果每次口径稍有变化,输出就对不上;或者清洗步骤写成了“凭经验操作”&…...

轻松下载在线视频:VideoDownloadHelper完整使用指南

轻松下载在线视频:VideoDownloadHelper完整使用指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 对于经常需要保存在线视频内容…...

手把手教你用PyTorch和torchmetrics跑通图像质量评估(从安装到实战代码解读)

从零开始掌握PyTorch图像质量评估实战:PSNR/SSIM/LPIPS全流程详解 在计算机视觉和图像处理领域,如何量化评估生成图像的质量一直是个核心问题。无论是比较不同算法的输出效果,还是调试自己的模型参数,我们都需要可靠的指标来客观衡…...

蓝牙5.3到底升级了啥?手把手教你为IoT设备选型避坑

蓝牙5.3技术解析与IoT设备选型实战指南 在智能家居和可穿戴设备爆发的今天,蓝牙技术作为物联网连接的基石正在经历关键迭代。当工程师面对琳琅满目的蓝牙模组时,5.3版本带来的底层革新往往被参数表所掩盖。本文将拆解那些真正影响设备性能的技术细节——…...

告别复制粘贴!用STM32CubeMX HAL库驱动ESP8266的保姆级避坑指南

STM32CubeMX HAL库驱动ESP8266的深度实践:从代码移植到框架设计 第一次尝试将ESP8266模块集成到STM32项目时,我遇到了几乎所有开发者都会面临的困境——网上找到的示例代码要么基于标准外设库,要么使用了经过大量修改的非标准HAL库实现。这种…...

Step3.5 Flash 大模型技术深度解析:稀疏 MoE、混合注意力与 MTP 的高效推理革命

摘要在通用人工智能(Agent)技术快速演进的当下,大模型的推理效率、长上下文处理能力、复杂逻辑推理性能成为落地核心痛点。阶跃星辰(StepFun)推出的 Step3.5 Flash,作为面向 Agent 场景的开源稀疏 MoE 大模…...

智能小车转向核心:基于STM32F103C8T6与CubeMX的舵机控制库封装实战

智能小车转向核心:基于STM32F103C8T6与CubeMX的舵机控制库封装实战 在智能小车开发中,转向控制是决定运动精度的关键模块。许多开发者习惯在main函数中直接调用HAL库的PWM控制函数,但随着项目复杂度提升,这种"面条式代码&qu…...

使用 Taotoken 后 API 调用成功率与延迟的直观观测体验

使用 Taotoken 后 API 调用成功率与延迟的直观观测体验 1. 接入后的可观测性提升 接入 Taotoken 平台后,开发者可以通过控制台的用量看板直观了解 API 调用的各项指标。平台提供了多维度的数据展示,包括各模型的调用成功率、平均延迟、Token 消耗量等关…...

Python量化回测框架Quantdom:事件驱动架构与实战应用解析

1. 项目概述:量化交易的回测利器如果你在量化交易这个圈子里泡过一段时间,肯定会遇到一个让人头疼的问题:回测。无论是用Python的backtrader、Zipline,还是自己从零开始写一套回测引擎,总会遇到数据管理混乱、策略逻辑…...

5分钟掌握ContextMenuManager:彻底清理Windows右键菜单臃肿问题

5分钟掌握ContextMenuManager:彻底清理Windows右键菜单臃肿问题 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单越来越长而烦恼…...

BilibiliDown:一站式B站视频下载与管理解决方案

BilibiliDown:一站式B站视频下载与管理解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bili…...

告别硬件恐惧!用Python-can在树莓派上5分钟搭建你的第一个汽车CAN数据监听器

告别硬件恐惧!用Python-can在树莓派上5分钟搭建你的第一个汽车CAN数据监听器 你是否曾经好奇过汽车内部那些神秘的数据流?发动机转速、车速、油耗……这些数据其实都通过CAN总线在车辆内部传递。今天,我们将用树莓派和Python-can库&#xff0…...

AI对话系统会话连贯性解决方案:session-coherence库实战指南

1. 项目概述与核心价值最近在折腾AI应用开发,特别是涉及到多轮对话和复杂会话管理的场景时,发现一个挺头疼的问题:如何让AI记住上下文,并且在长时间、多主题的交流中保持逻辑连贯?这不仅仅是简单的“记住上一条消息”&…...

免费开源英雄联盟录像编辑神器:League Director终极指南

免费开源英雄联盟录像编辑神器:League Director终极指南 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector 你是否…...

命令行AI助手aichat-cli:终端集成大模型,提升开发效率

1. 项目概述:一个命令行里的AI聊天伙伴 如果你和我一样,日常工作离不开终端,喜欢那种敲击键盘、命令直达的高效感,同时又对AI助手(比如ChatGPT、Claude这类大模型)的辅助能力有需求,那么你大概…...

Alfred多模型AI对话终端:一键切换ChatGPT、Claude、Gemini等主流LLM

1. 项目概述与核心价值 如果你和我一样,是 Alfred 的重度用户,同时又经常需要在多个大语言模型(LLM)之间切换——比如用 OpenAI 的 GPT-4 处理复杂逻辑,用 Claude 写长文档,用 Gemini 查最新信息——那你一…...

别再死记硬背!用Three.js和glMatrix库5分钟搞定WebGL矩阵变换

用Three.js和glMatrix库5分钟搞定WebGL矩阵变换 在3D图形开发中,矩阵变换是最基础也最令人头疼的部分之一。传统的WebGL开发需要手动计算各种变换矩阵,不仅代码冗长,还容易出错。本文将介绍如何利用Three.js和glMatrix这两个强大的工具库&…...

极简主义桌面应用skills:Windows平台个人任务与项目管理指南

1. 项目概述与核心价值如果你和我一样,是个喜欢用简洁工具来管理日常灵感和项目进度的创作者或独立开发者,那么你肯定对市面上那些功能臃肿、界面复杂的笔记或任务管理软件感到过疲惫。今天我想分享一个我最近深度使用并觉得非常趁手的桌面应用——skill…...

Lumafly:让空洞骑士模组管理变得简单高效的跨平台解决方案

Lumafly:让空洞骑士模组管理变得简单高效的跨平台解决方案 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 你是否曾经为了在《空洞骑士》中安装几个…...

5分钟搞定OBS多平台直播:obs-multi-rtmp插件终极使用指南

5分钟搞定OBS多平台直播:obs-multi-rtmp插件终极使用指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要同时向多个平台直播却为复杂的设置而头疼?obs-mult…...

告别预编译包:手把手教你用CMake从源码定制化编译LibTorch(支持C++17/20)

深度定制LibTorch:基于CMake的源码编译实战指南 在C深度学习开发领域,PyTorch的C前端LibTorch已经成为众多开发者的首选工具。然而,官方预编译的LibTorch版本往往存在诸多限制:固定的C标准、可能缺失的模块功能、以及无法针对特定…...

Windows内存清理终极指南:用Mem Reduct快速解决卡顿问题的完整教程

Windows内存清理终极指南:用Mem Reduct快速解决卡顿问题的完整教程 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memre…...

抖音内容自由:3步解锁批量下载,让创意不再被技术束缚

抖音内容自由:3步解锁批量下载,让创意不再被技术束缚 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...

如何突破百度网盘限速?终极直链解析工具让你的下载速度飙升10倍!

如何突破百度网盘限速?终极直链解析工具让你的下载速度飙升10倍! 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否经常遇到这样的困扰&#xff1a…...

正纠结皮卡选啥?快来看看哪个品牌最好最耐用!

在皮卡市场蓬勃发展的当下,众多消费者在选择皮卡时往往会陷入纠结。究竟哪个品牌的皮卡最好、最耐用呢?接下来将从多个技术维度进行分析,其中长城皮卡凭借出色表现成为不可忽视的品牌。动力系统动力是皮卡性能的核心指标之一。一般而言&#…...

Trilium笔记集成AI对话侧边栏:本地部署与高效知识管理实践

1. 项目概述:在Trilium笔记中集成AI对话侧边栏 如果你和我一样,是Trilium笔记的重度用户,同时又经常需要借助ChatGPT来辅助写作、翻译或者整理思路,那么来回切换浏览器标签和笔记软件的过程,绝对称得上是一种“生产力割…...

从「题库时代」到「大脑时代」:非侵入式脑机技术正在重塑教育

题库时代的天花板 教育行业在过去十年里,主旋律一直是题库AI推荐。拍照搜题、个性化推荐、智能批改——这些技术解决了练什么的问题。但有一个根本矛盾始终没解决:输入端的学习效率。 学生一天只有24小时,作业、补课、睡眠已经占满了大部分时…...

如何快速完整地下载任何网站:WebSite-Downloader终极指南

如何快速完整地下载任何网站:WebSite-Downloader终极指南 【免费下载链接】WebSite-Downloader 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 你想过把整个网站完整地保存到本地电脑吗?WebSite-Downloader正是这样一个强大…...