信息熵和决策树

在预测分析领域,决策树是可应用于回归和分类任务的算法之一

决策树背后的想法是,根据数据集中的特征对当时响应变量的贡献方式,递归地构建一个颠倒的树状结构。

在每次迭代中,将以使得所得模型最小化成本函数的方式选择特征。

该结构从顶部的根节点开始,然后分支并连接到其他节点,最终通向树的终端节点或叶子。

树中的每个节点代表一个特征;每个链接或分支代表一个决策,每个叶子代表一个结果(响应变量的类别或连续值)

优点缺点

决策树背后的简单性在于通过确定任何给定点最重要的特征来创建模型的方式。

由于它不假设变量之间存在线性或任何关系,因此它不仅限于线性或其他相关变量 - 它可以应用于任何数据集。

此外,与许多其他算法不同,在应用决策树之前不需要进行大量的数据操作

它有时被称为贪婪算法,因为它在每一点都试图最大程度地最小化成本函数。

这种过度尝试最小化成本函数可能会导致训练数据的过度拟合,从而导致在测试数据上进行预测时出现高方差。通常采用剪枝或装袋等技术来解决这一问题

决策树的类型

根据所使用的成本最小化技术,决策树可以有多种分类,其中重要的几个是:

CART(分类和回归树)— 使用基尼杂质测量来计算每次迭代的信息增益

ID3(迭代二分器 3)— 使用熵函数计算信息增益指标

在这里,我们将研究 ID3 决策树的熵函数并设计一种算法来计算任何迭代的熵

熵与信息增益

每个特征的每个唯一值的熵计算如下:

该特征的信息增益计算如下:

其中,E(T) 是响应变量的熵

执行

我们将在这里使用 UCI 数据存储库中的 Balloons 数据集。它代表实验的不同条件

根据 4 个预测特征确定响应变量“膨胀”:颜色、大小、行为和年龄

# data = Balloons 数据集
# N = 列数
# target = 响应变量
# en = 目标变量的熵
# cats = 响应变量的唯一值计数字典
# vals = 当前特征的唯一值计数字典
for i in range(0,N-1): 
    x=data.columns[i] 
    ig=0 
    for k, v in vals.items(): 
        ent=0 
        
        for k1 in cats.keys(): 
            n=data.loc[(data[target]==k1) & (data[x]==k), x].count() prob = -(n/v) * np.log(n 
            /v) #计算概率
            ent= ent + prob            #计算熵
        info = info + ((v/total)*ent)  #计算信息
        gain = en - ig  #计算信息增益

第一次迭代的背后 让我们看看如何使用上述函数计算第一次迭代的熵和信息增益

Calculate Entropy & Information Gain w.r.t. “Inflated”
Column “color”:
‘YELLOW’: 32, ‘PURPLE’: 28
“Color” YELLOW with “Inflated” TRUE — 19
“Color” YELLOW with “Inflated” FALSE — 13
“Color” PURPLE with “Inflated” TRUE — 12
“Color” PURPLE with “Inflated” FALSE — 16
E(YELLOW) = (-19/32)*log(19/32) + (-13/32)*log(13/32) = 0.675
E(PURPLE) = (-12/28)*log(12/28) + (-16/28)*log(16/28) = 0.682
I(Color) = (32/60) * 0.675 + (28/60) * 0.682= 0.678
IG(Color) = I(Inflated) — I(Color) = 0.693–0.678= 0.0149

同样,计算剩余列的熵和信息增益:

IG(Size) = 0.0148
IG(Act) = 0.131
IG(Age) = 0.130

选择列“Act”作为根节点,因为它具有最高的信息增益

下一步 然后,该算法将递归执行以下步骤来构建决策树(超出了本文的范围):

具有最高信息增益的特征将被指定为该迭代的节点

该节点的分支将由该节点可能的每个唯一值(条件/决策)形成

分支将通向其他节点,具体取决于后续特征和条件

如果没有进一步可能的特征或条件,将创建叶节点并且不会进行进一步的分支

这样,就可以递归地构建决策树。

然后可以应用该模型来预测响应变量的值或类别

UCI机器学习数据集仓库中的Balloons数据集:

  1. 数据集信息
  • 数据集名称:Balloons
  • 数据样本数:76个
  • 特征数:4个
  • 目标变量:1个,气球的颜色(Yellow或Purple)
  1. 特征信息
  • Color:气球的颜色(Yellow,Purple)
  • Size:气球的大小(小,中,大)
  • Act:气球的行为(向上漂浮,向下坠落)
  • Age:气球的年龄(新,中,老)
  1. 数据集结构

每行表示一个气球样本,包含Color目标变量和其他3个特征。

  1. 数据集用途

这个数据集可以用于分类任务,以气球的其他特征预测其颜色。可以建立分类模型对颜色进行预测。

  1. 数据分析

可以计算信息熵、信息增益等,为分类模型选择最优特征。也可以绘制特征分布,了解样本之间的相关性。

以上简要概述了这个小数据集的基本情况。它提供了一个使用真实数据进行分类建模练习的良好 starters例子。

本文由 mdnice 多平台发布

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

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

相关文章

cmder 使用简介

文章目录 1. cmder 简介2. 下载地址3. 安装4. 配置环境变量5. 添加 cmder 到右键菜单6. 解决中文乱码问题 1. cmder 简介 cmder 是一个增强型命令行工具,不仅可以使用 windows 下的所有命令,更爽的是可以使用 linux的命令, shell 命令。 2. 下载地址 …

选择合适的图表,高效展现数据魅力

随着大数据时代的来临,数据的重要性愈发凸显,数据分析和可视化成为了决策和传递信息的重要手段。在数据可视化中,选择合适的图表是至关重要的一环,它能让数据更加生动、直观地呈现,为观众提供更有说服力的信息。本文将…

模型构建——使用逻辑回归构建模型,lightGBM进行特征筛选

1、模型构建流程 1.1 实验设计 新的模型要跟原有方案对比,而且是通过实验证明,特别注意模型和策略不能同时调整。一般实验设计包含以下流程: 问题:业务稳定后,可以去掉人工审核吗? 答:不可以…

React拆分窗格组件

React拆分窗格的两种方法 react-split-pane 使用第三方库react-split-pane的优点: 方便快捷:使用现有的第三方库可以快速实现拆分窗格功能,无需自己编写复杂的逻辑。 功能丰富:第三方库通常提供了许多可配置的选项和功能&…

c语言练手项目【编写天天酷跑游戏2.0】EASYX图形库的运用。代码开源,素材已打包

天天酷跑项目的开发 项目前言 项目是基于Windows,easyX图形库进行开发的, 开发环境:Visual Studio 2022 项目技术最低要求: 常量,变量,数组,循环,函数。 文章目录 天天酷跑项目的…

超详细-Vivado配置Sublime+Sublime实现Verilog语法实时检查

目录 一、前言 二、准备工作 三、Vivado配置Sublime 3.1 Vivado配置Sublime 3.2 环境变量添加 3.3 环境变量验证 3.4 Vivado设置 3.5 配置验证 3.6 解决Vivado配置失败问题 四、Sublime配置 4.1 Sublime安装Package Control 4.2 Sublime安装Verilog插件 4.3 安装语…

#pragma region用法

简介 #pragma region 是VS(Visio Studio)所特有的预处理语法(其他IDE或者Cmake会报错),其可以用来收缩或者展开一段代码。 #pragma region MyRegion// ...Code content #pragma endregion 其中,MyRegion 即给这代码块所定义的名…

工业边缘网关HiWoo Box的4G/5G CPE功能:为现场无线设备提供网络

引言 随着工业物联网的快速发展,现场设备的无线连接需求越来越迫切。然而,在一些室外或者不方便布网的场景下,为现场的无线设备提供网络仍然是一个挑战。为了满足这一需求,工业边缘网关HiWoo Box引入了4G/5G CPE(Cust…

【计算机网络】简易TCP网络小程序

文章目录 1. 简易TCP网络程序1.1 服务端1.1.1 服务端创建套接字1.1.2 服务端绑定1.1.3 服务端监听1.1.4 服务端获取连接1.1.5 服务端处理请求 1.2 客户端1.2.1 客户端创建套接字1.2.2 客户端连接服务器1.2.3 客户端发起请求 1.3 服务器测试1.4 单执行流服务器的弊端 2. 多进程版…

【Java】 服务器cpu过高如何排查和解决?

文章目录 前言一、常见能够引起CPU100%异常的情况都有哪些?二、服务器CPU使用率飙升异常,黄金4步排查法三、排查 CPU 故障的常用命令四、什么场景会造成 CPU 低而负载确很高呢?五、监控发现线上机器内存占用率居高不下,如何分析进…

网络性能测试诊断参考工具表

性能指标工具说明吞吐量(BPS)sar nethogs iftop分别可以查看网络接口、进程以及 IP 地址的网络吞吐量PPSsar /proc/net/dev查看网络接口的 PPS连接数netstat ss查看连接数延迟ping hping3通过 ICMP、TCP 等测试网络延迟连接跟踪数conntrack查看和管理连接…

django groupby踩坑

django groupby踩坑 前言坑 ~~参考~~ 前言 django的orm作为简单查询 使用简直是太爽了,所见即所得,但是groupby时候缺有一些坑点 坑 from django.db.models import Count from w.models import www # 在不加order by的时候 会默认按照id分组 print(TaskPort.obje…

webpack require.context

require.context((directory: String),(includeSubdirs: Boolean) /* 可选的,默认值是 true */,(filter: RegExp) /* 可选的,默认值是 /^\.\/.*$/,所有文件 */,(mode: String) /* 可选的, sync | eager | weak | lazy | lazy-onc…

RPA界面元素定位与操控技术详解-达观数据

RPA 入门介绍 什么是 RPA?RPA 是机器人流程自动化 Robotic Process Automation 的简写。在《智能RPA实战》中,我们这样定义:通过特定的、可模拟人类在计算机界面上进行操作的技术,按照规则自动执行相应的流程任务,代替…

【Ubuntu】完全卸载通过deb包安装的jenkins

要完全卸载通过Deb包安装的Jenkins,可以按照以下步骤操作: 停止Jenkins服务:首先,停止Jenkins服务,以确保它不再运行。 sudo systemctl stop jenkins禁用Jenkins服务:将Jenkins服务设置为在系统启动时不自动…

Linux QT通过NFS挂载到Linux开发板上

Linux QT通过NFS挂载到Linux开发板上 说明:这里使用的Linux开发板是正点原子的阿尔法开发板 创建NFS 环境 NFS简介 网络文件系统,英文 Network File System(NFS),是由 SUN 公司研制的 UNIX 表示层协议 (presentation layer protocol)&…

【面试】MySQL 中InnoDB与MyISAM的区别是什么?

文章目录 前言一、数据库存储引擎二、如何知道自己的数据库用的什么引擎呢?三、存储引擎原理四、B 树和 B 树五、MyISAM六、InnoDB七、InnoDB与MyISAM的区别总结 前言 许多同学都把 MySQL 作为自己的数据库,但是可能用过最多的就是 SQL 语句&#xff0c…

【图像分类】基于LIME的CNN 图像分类研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 基于LIME(Local Interpretable Model-Agnostic Explanations)的CNN图像分类研究是一种用于解释CNN模型的方法。LIME是一…

redis作为缓存的选用及优缺点

Redis vs. Memcached: 持久化支持: Redis支持两种持久化方式(RDB和AOF),而Memcached不支持持久化。这意味着Redis可以在服务器重启后恢复数据,而Memcached在重启后数据会丢失。 数据结构: Redis的数据结构…

安装nvm 切换node版本

1. 安装 nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash 验证nvm安装完成 command -v nvm 如果安装完成,就会显示如下 nvm 2. 查看 nvm 可以安装的 node 版本 查看可以安装的版本 nvm ls-remote 查看所有可以安装的…