上一章:机器学习03——线性模型
下一章:机器学习05——多分类学习与类别不平衡
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备

文章目录

      • 一、决策树的基本流程
        • (一)核心原理
        • (二)生成算法
      • 二、划分选择(最优属性的判定)
        • (一)信息增益(ID3算法)
        • (二)增益率(C4.5算法)
        • (三)基尼指数(CART算法)
      • 三、剪枝处理(避免过拟合)
        • (一)预剪枝
        • (二)后剪枝
      • 四、连续值与缺失值的处理
        • (一)连续值处理(二分法)
        • (二)缺失值处理
      • 五、多变量决策树
        • (一)核心特点
      • 六、经典决策树算法与工具

一、决策树的基本流程

决策树是一种基于“分而治之”思想的监督学习模型,通过递归划分样本构建树状结构,每个节点对应一个属性测试,叶节点对应决策结果。
在这里插入图片描述

(一)核心原理
  • 决策过程:从根节点开始,对样本的某个属性进行测试,根据测试结果进入相应子节点,重复此过程直至叶节点,得到决策结果。从根节点到叶节点的路径对应一个判定规则序列。
  • 终止条件:当满足以下任一条件时,停止划分并将当前节点标记为叶节点:
    1. 当前节点的所有样本属于同一类别;
    2. 属性集为空,或所有样本在剩余属性上取值相同(此时标记为样本数最多的类别);
    3. 当前节点包含的样本集为空(此时标记为父节点样本数最多的类别)。
      在这里插入图片描述
(二)生成算法
  1. 输入:训练集D={(x1,y1),...,(xm,ym)}D=\{(x_1,y_1),..., (x_m,y_m)\}D={(x1,y1),...,(xm,ym)}和属性集A={a1,...,ad}A=\{a_1,...,a_d\}A={a1,...,ad}
  2. 递归过程(函数TreeGenerate(D,A)):
    • 生成当前节点,检查是否满足终止条件,若满足则标记为叶节点并返回;
    • 否则从属性集A中选择最优划分属性a∗a^*a
    • a∗a^*a的每个取值av∗a^*_vav,生成子节点,将D中取值为av∗a^*_vav的样本子集DvD_vDv传入子节点,递归调用TreeGenerate(Dv,A−{a∗})(D_v, A-\{a^*\})(Dv,A{a})

二、划分选择(最优属性的判定)

决策树学习的关键是选择最优划分属性,目标是使划分后各子节点的样本纯度尽可能高。经典方法包括信息增益、增益率和基尼指数。

(一)信息增益(ID3算法)
  • 信息熵:衡量样本集纯度的指标,对于包含∣Y∣|\mathcal{Y}|Y类样本的集合D,第k类样本占比为pkp_kpk,则信息熵为:
    Ent(D)=−∑k=1∣Y∣pklog⁡2pkEnt(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_k \log_2 p_kEnt(D)=k=1Ypklog2pk
    Ent(D)值越小,样本集纯度越高(如全为同一类时Ent(D)=0)。
  • 信息增益:属性a对D的划分所带来的信息熵减少量,计算公式为:
    Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{|D^v|}{|D|}Ent(D^v)Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
    其中DvD^vDv是D中在属性a上取值为ava^vav的样本子集,V是属性a的取值数。信息增益越大,说明该属性划分后样本纯度提升越明显。
  • 示例:在“好瓜”识别中,属性“纹理”的信息增益(0.381)高于其他属性,因此被选为根节点的划分属性。
  • 局限:对取值数目多的属性有偏好(如“编号”这类唯一标识属性,信息增益通常极高,但无泛化意义)。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(二)增益率(C4.5算法)

为修正信息增益的偏好,引入增益率,定义为:
Gain_ratio(D,a)=Gain(D,a)IV(a)Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}Gain_ratio(D,a)=IV(a)Gain(D,a)
其中IV(a)=−∑v=1V∣Dv∣∣D∣log⁡2∣Dv∣∣D∣IV(a)=-\sum_{v=1}^V \frac{|D^v|}{|D|}\log_2 \frac{|D^v|}{|D|}IV(a)=v=1VDDvlog2DDv为属性a的“固有值”,取值越多的属性,IV(a)越大,从而抑制高取值属性的优势。

  • 启发式策略:C4.5算法先筛选出信息增益高于平均水平的属性,再从中选择增益率最高的,平衡偏好问题。
(三)基尼指数(CART算法)

基尼指数衡量从样本集中随机抽取两个样本,其类别标记不同的概率,计算公式为:
Gini(D)=∑k=1∣Y∣∑k′≠kpkpk′=1−∑k=1∣Y∣pk2Gini(D)=\sum_{k=1}^{|\mathcal{Y}|}\sum_{k'\neq k} p_k p_{k'}=1-\sum_{k=1}^{|\mathcal{Y}|} p_k^2Gini(D)=k=1Yk=kpkpk=1k=1Ypk2
Gini(D)越小,样本集纯度越高。属性a的基尼指数为划分后各子节点基尼指数的加权和,选择基尼指数最小的属性作为划分属性。

三、剪枝处理(避免过拟合)

剪枝是决策树对抗过拟合的核心手段,通过移除冗余分支,提升模型泛化能力。分为预剪枝和后剪枝。

(一)预剪枝
  • 策略:在决策树生成过程中,对每个节点先判断划分是否能提升泛化性能(通过验证集精度评估),若不能则停止划分,将当前节点标记为叶节点。
  • 示例:对“好瓜”数据集的根节点,若不划分(标记为“好瓜”),验证集精度为42.9%;若用“脐部”划分,精度提升至71.4%,则进行划分;后续子节点若划分不能提升精度,则停止。
  • 优缺点
    • 优点:减少训练和测试时间开销;
    • 缺点:可能因“贪心”策略错过后续有效划分,导致欠拟合。

在这里插入图片描述

(二)后剪枝
  • 策略:先生成完整决策树,再自底向上考察非叶节点,若将其子树替换为叶节点能提升泛化性能,则剪枝。
  • 示例:对完整决策树的子节点,若替换为叶节点后验证集精度从42.9%提升至更高,则剪枝;最终保留更多有效分支。
  • 优缺点
    • 优点:泛化性能通常优于预剪枝,保留更多有效分支;
    • 缺点:需生成完整树后逐一考察,计算开销大。

在这里插入图片描述

四、连续值与缺失值的处理

实际数据中常包含连续属性(如“密度”“含糖率”)或缺失值,需特殊处理。

(一)连续值处理(二分法)
  1. 候选划分点:将连续属性a的取值从小到大排序为a1,...,ana^1,...,a^na1,...,an,取相邻值的中位点作为候选划分点:
    Ta={ai+ai+12∣1≤i≤n−1}T_a=\left\{\frac{a^i+a^{i+1}}{2} \mid 1\leq i \leq n-1\right\}Ta={2ai+ai+11in1}
  2. 最优划分点:计算每个候选点的信息增益,选择增益最大的点作为划分点,将样本分为“≤t”和“>t”两类。
  • 示例:属性“密度”的候选划分点包括0.244、0.294等,通过计算信息增益选择最优划分点。
    在这里插入图片描述
(二)缺失值处理

需解决两个问题:如何选择划分属性,以及如何划分含缺失值的样本。

  1. 划分属性选择

    • 定义无缺失值样本子集D~\tilde{D}D~,计算其占总样本的比例ρ\rhoρ、各类别占比p~k\tilde{p}_kp~k、属性a各取值占比r~v\tilde{r}_vr~v
    • 信息增益修正为:Gain(D,a)=ρ×[Ent(D~)−∑v=1Vr~vEnt(D~v)]Gain(D,a)=\rho \times [Ent(\tilde{D})-\sum_{v=1}^V \tilde{r}_v Ent(\tilde{D}^v)]Gain(D,a)=ρ×[Ent(D~)v=1Vr~vEnt(D~v)],其中Ent(D~)=−∑kp~klog⁡2p~kEnt(\tilde{D})=-\sum_k \tilde{p}_k \log_2 \tilde{p}_kEnt(D~)=kp~klog2p~k
  2. 样本划分

    • 若样本在属性a上取值已知,划入对应子节点,权重不变;
    • 若取值缺失,按r~v\tilde{r}_vr~v(属性a取值ava^vav的比例)将样本权重分配到各子节点(即wx×r~vw_x \times \tilde{r}_vwx×r~v)。

五、多变量决策树

传统决策树(单变量)的非叶节点仅测试单个属性,分类边界与坐标轴平行;多变量决策树的非叶节点是多个属性的线性组合,分类边界更灵活。

(一)核心特点
  • 每个非叶节点对应一个线性分类器:∑i=1dwiai=t\sum_{i=1}^d w_i a_i = ti=1dwiai=t,其中wiw_iwi是属性aia_iai的权重,t是阈值,两者通过样本集学习得到。
  • 优势:能拟合复杂的分类边界,减少决策树深度,提升泛化能力。
  • 示例:通过“-0.800×密度 -0.044×含糖量 < -0.313”这样的线性组合划分样本,比单属性划分更精准。
    在这里插入图片描述

六、经典决策树算法与工具

  • 算法:ID3(信息增益)、C4.5(增益率,支持连续值和缺失值)、C5.0(C4.5的改进版,效率更高)、CART(基尼指数,可用于分类和回归);
  • 工具:J48(WEKA中C4.5的实现)等。

上一章:机器学习03——线性模型
下一章:机器学习05——多分类学习与类别不平衡
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备

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

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

相关文章

(论文速读)从语言模型到通用智能体

论文题目&#xff1a;From Multimodal LLMs to Generalist Embodied Agents: Methods and Lessons&#xff08;从多模式大型语言模型到多面手具身代理:方法和教训&#xff09;会议&#xff1a;CVPR2025摘要&#xff1a;我们研究了多模态大型语言模型(Multimodal Large Language…

【Epiq Solutions】Matchstiq™ G20 和 Matchstiq™ G40 AI SDR

Matchstiq™ G20 和 Matchstiq™ G40 产品简介 Matchstiq™ G20 和 Matchstiq™ G40 是 Epiq Solutions 推出的 紧凑型、高性能软件定义无线电&#xff08;SDR&#xff09;平台&#xff0c;专为满足 严苛 SWaP-C&#xff08;体积、重量、功耗受限&#xff09;场景下的战术与移动…

基于Echarts+HTML5可视化数据大屏展示-旅游智慧中心

效果展示&#xff1a; 代码结构&#xff1a;主要代码实现 index.html布局 <!DOCTYPE html> <html lang"en" style"font-size: 97.5px;"> <head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"…

Docker 镜像的使用

1.镜像的基本信息[roothost1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 802541663949 2 weeks ago 78.1MB hello-world latest 1b44b5a3e06a 4 weeks ago 10.1kB执行 docker images 命令时加上 --no…

网络编程;套接字;TCP通讯;UDP通讯;0909

思维导图TCP服务器端和客户端通讯服务器端 代码#include<myhead.h> #define SER_IP "192.168.109.12"//我的虚拟机的ip #define SER_PORT 8888 int main() {//1.创建一个用于连接的套接字文件描述符int sfd socket(AF_INET,SOCK_STREAM,0);if(sfd-1){perror(&…

贪心算法应用:柔性制造系统(FMS)刀具分配问题详解

Java中的贪心算法应用&#xff1a;柔性制造系统(FMS)刀具分配问题详解 1. 问题背景与定义 柔性制造系统(Flexible Manufacturing System, FMS)是现代智能制造中的关键组成部分&#xff0c;它能够灵活地适应不同产品的生产需求。在FMS中&#xff0c;刀具分配是一个核心优化问题&…

不止是DELETE:MySQL多表关联删除的JOIN语法实战详解

MySQL 的 ​​DELETE​​ 语句用于从数据库表中删除记录。这是一项非常强大且危险的操作&#xff0c;因为一旦执行&#xff0c;数据通常无法恢复。理解其语法和安全实践至关重要。以下是 MySQL 删除语句的详细指南。一、 核心语法&#xff1a;DELETE​​DELETE​​ 语句用于删除…

ubuntu 系統使用過程中黑屏問題分析

背景&#xff1a; 工欲善其事&#xff0c;必先利其器。作为程序员&#xff0c;想要得到更好的发展&#xff0c;遇到问题直接baidu, google 虽然可以得到一些参考或者答案&#xff0c;但是也会降低自己的思考能力&#xff0c;本文以ubuntu 使用过程中黑屏这一问题为背景&#x…

Redis(45)哨兵模式与集群模式有何区别?

Redis 提供了两种高可用性解决方案&#xff1a;哨兵模式和集群模式。它们各自有不同的特点和适用场景。以下是详细的对比和结合代码的示例&#xff1a; 哨兵模式&#xff08;Sentinel&#xff09; 特点高可用性&#xff1a; Sentinel 通过监控、通知、故障转移等功能&#xff0…

微信小程序如何进行分包处理?

目录 分包是什么&#xff1f; 为什么要分包&#xff1f; 分包前后结构对比 具体操作步骤 第 1 步&#xff1a;规划分包结构 第 2 步&#xff1a;修改 app.json 进行配置 第 3 步&#xff1a;创建分包目录并移动文件 第 4 步&#xff1a;处理组件和工具函数的引用 第 5…

Go语言极速入门与精要指南从零到精通的系统化学习路径

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…

git 切换仓库后清理分支缓存

我明白了&#xff0c;从您的截图可以看到远程仓库中有 feature/v1.4_20250903 分支&#xff0c;但本地 git branch -r 看不到&#xff0c;这是因为之前更换过仓库地址后需要重新获取远程仓库的所有信息。让我们执行以下步骤来解决这个问题&#xff1a; 首先执行 git fetch --al…

考研倒计时101天---路由选择协议

路由选择协议&#xff1a;RIP 与 OSPFRIP 协议&#xff08;基于距离向量算法&#xff09;RIP&#xff08;Routing Information Protocol&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;采用距离向量算法进行路由选择。其主要特点如下&#xff1a;工作机…

「类 vs 实例」对比 ,「类 - 原型 - 实例」的关系

坚持的本身就是意义 目录直观类比类 (Class) vs 实例 (Instance)对比表示例代码类 - 原型 - 实例关系图解释&#xff1a;类 (class Person)原型 (Person.prototype)实例 (new Person(...))总结&#xff1a;直观类比 类&#xff08;Class&#xff09; 图纸 / 模板实例&#xf…

第一课、Cocos Creator 3.8 安装与配置

介绍说明 本文主要介绍在windows系统中&#xff0c;安装开发Cocos使用的软件工具&#xff0c;主要包含&#xff1a;安装CocosDashboard控制面板、CocosCreator3.8编辑器和脚本编辑器 VS Code 。 一、Cocos Dashboard 的安装 说明&#xff1a;Cocos Dashboard 主要作用是能够同…

从航空FACE的一个落地方案漫谈汽车HPC软件架构的思维转变(2/3)FACE的“段”同Autosar的“层”概念区别探索

文章目录PART THREE&#xff1a;段和层的概念比较一、“段”更强调“功能闭环责任归属”&#xff0c;而非“单纯的层级堆叠”二、“段”规避“层”的“刚性依赖陷阱”&#xff0c;适配航空系统的“灵活组合需求”三、“段”贴合航空工业的“工程化语言习惯”&#xff0c;降低跨…

金融量化指标--6InformationRatio信息比率

InformationRatio信息比率计算公式添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;一、信息比率&#xff08;IR&#xff09;是什么&#xff1f;核心概念&#xff1a;信息比率衡量的是投资组合经理相对于某个基准指数&#xff08;Benchmark&#xff09;&…

Java全栈开发面试实录:从基础到微服务的实战经验分享

Java全栈开发面试实录&#xff1a;从基础到微服务的实战经验分享 一、初识面试场景 我叫李明&#xff0c;28岁&#xff0c;毕业于复旦大学计算机科学与技术专业&#xff0c;硕士学历。在互联网行业已经有5年的工作经验&#xff0c;先后在两家中型互联网公司担任Java全栈开发工程…

【51单片机】【protues仿真】基于51单片机公交报站系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 主要功能如下&#xff1a; 1、LCD12864显示时间、日期、公交车车站、温度等 2、按键设置时间&#xff0c;显示公交车信息 3、串口播报相应站点信息 4、按键控制上行、下行、手动播…

第1节-PostgreSQL入门-从表中查询数据

摘要&#xff1a;在本教程中,你将学习如何使用 PostgreSQL 的 SELECT 语句从表中检索数据。 SELECT 语句 要从表中查询数据,需使用 PostgreSQL 的 SELECT 语句。 以下是 SELECT 语句的基本语法: SELECT column1, column2, ... FROM table_name;在这种语法中: 首先,在 SELECT 关…