如何计算连续变量的熵

news2024/11/20 11:20:10

背景

      做特征选择时,有时候会用到计算特征的信息熵,可是离散的好计算,但连续的呢?按照把连续变量离散的方法设置阈值点吗?好像比较麻烦,需要排序, 计算阈值。没有能自动的方法吗?

找资料

      How Can I Compute Information-Gain for Continuous- Valued Attributes 中有提到

If you wanted to find the entropy of a continuous variable, you could use Differential entropy metrics such as KL divergence,

在这里插入图片描述

似乎要用微分熵直接计算连续变量的熵?

再查资料,How to find entropy of Continuous variable in Python?. 中提到

For continuous distributions, you are better off using the Kozachenko-Leonenko k-nearest neighbour estimator for entropy (K & L 1987) and the corresponding Kraskov, …, Grassberger (2004) estimator for mutual information.

在这里插入图片描述

好像有突破,找到大佬的github

大佬的实现

Entropy estimators

到了这个github后,发现确实不错能很好的解决我的问题,只需要调库能搞定了

在这里插入图片描述

Differential entropy?

趁着有时间又去看了 微分熵 。然后 enmmmm,好多数学,不想看,然后就找Differential entropy 的 python实现

然后突然发现,哦,原来是SCIpy里面就有实现,调库就行。 scipy.stats.differential_entropy

from scipy.stats import differential_entropy

ent = differential_entropy(x)  # x是连续特征向量,行向量列向量都可以

两者比较

import numpy as np
from scipy.stats import differential_entropy, norm
from entropy_estimators import continuous

# Generate the data
X = np.random.randn(10000, 1)

# compute the entropy from the determinant of the multivariate normal distribution:
analytic = continuous.get_h_mvn(X)

# compute the entropy using the k-nearest neighbour approach
# developed by Kozachenko and Leonenko (1987):
kozachenko = continuous.get_h(X, k=5)

# compute the entropy using SCI Differential entropy
SCI = differential_entropy(X)

print(f"analytic result: {analytic:.5f}")
print(f"K-L estimator: {kozachenko:.5f}")
print(f"SCI result: {SCI[0]:.5f}")

 
输出:

analytic result: 1.42191
K-L estimator: 1.42436
SCI result: 1.42043

没啥大的结果区别,想用哪个都行。差距最大在0.01左右,我个人能接受,但是力求精准的同学可用SCI的结果,应该更精确些,毕竟标准库,名气也大。

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

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

相关文章

动物养殖虚拟仿真之生猪屠宰VR教学系统

生猪屠宰是一个复杂而危险的工作,需要有严格的操作规程和丰富的经验。但是传统的生猪屠宰培训存在一些问题,例如成本高、难以模拟真实场景等。 为了解决这些问题,VR技术被应用到生猪屠宰培训中,广州华锐互动由此开发了生猪屠宰VR…

BOM(1)

BOM:浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交换的对象,其核心对象是window,由一系列相关对象构成,并且每个对象都提供了很多方法和属性BOM的构成:BOM比DOM更大,它包含DOM。 …

Docker中安装redmine(亲自安装有效)

第一步: 官方的一键安装方式: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun (我用的它) 国内 daocloud一键安装命令: curl -sSL https://get.daocloud.io/docker | sh ############################可能遇见问题##…

机器学习 day07(特征缩放)

特征缩放的作用 特征缩放可以让梯度下降算法运行的更快特征:X    对应的参数:W当一个特征的可能值范围很大时,一个好的模型会选择一个相对较小的对应参数值,因为W₁的一个非常小的变化会给估计价格产生非常大的影响&#xff0…

View系列

掌握View核心知识体系,两大方向:View事件分发,自定义View。 文章目录 一,基础知识1.1 页面创建1.2 页面管理 二,View事件分发2.1 基本概念2.2 分发流程2.3 面试题 三,View绘制3.1 measure(测量&…

C#+asp.net基于web的大学社团管理信息系统

本系统的模块是分为用户模块和管理员模块,管理员负责学生管理模块、社团管理模块、公告管理模块、留言管理模块、加入社团管理模块、活动管理模块、管理员管理模块。社团管理员则负责预约管理模块、活动报名的审核等。。 系统具有三类系统用户分别是:系统…

linux网络

查看网络接口信息 ifconfig mtu 最大传输单元 mtu和mss区别 hostname命令 永久修改 hostnamectl set-hostname 切换shell环境生效 或者vi hostname 编辑完重启生效 查看路由表条目route route查看或设置主机中路由表信息 route -n将路由记录中的地址信息显示为数字形式 …

MTU 网卡bond 简介

MTU 最大传输单元MTU(Maximum Transmission Unit,MTU),是指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者…

App Inventor 2 开发问答App

应用介绍 一个最基本的问答App开发,问答数据源来自csv文件格式,方便后续拓展成网络版的问答App。 事先出好题目、ABCD选择项及正确答案,先存在列表中,然后按顺序出题,答对则继续下一题,答错则Game over。 …

人工智能的前沿信息获取之使用谷歌学术搜索

谷歌学术是谷歌公司开发的一款专门针对学术搜索的在线搜索引擎[4],谷歌学术的网址为https://scholar.google.com,界面如图 6‑1所示。使用谷歌学术搜索可以检索会议或者期刊论文。只需要在检索框中输入关键字,然后点搜索按钮即可,…

了解Transformer架构的前奏_什么是预训练_理解预训练---人工智能工作笔记0034

我们会先来说预训练有什么用,其实 之前说的机器学习,其实都是跟数学相关性很大的,比如,支持向量机,回归算法, 1.最早的时候,做机器学习,就是偏数学的,比如用的决策树,支持向量机,线性回归,逻辑回归等算法. 这种是偏向数学的,偏向统计的. 然后这个深度学习,其实就是偏大数据的…

奥艺大会 | “OLYMP‘ARTS中国设计奖”在2023米兰设计周发布

由国际奥艺委员会、北京国际设计周和中国科学院大学魏桥国科联合实验室共同发起的“OLYMPARTS中国设计奖”(OlympArts China Design Awards)于当地时间2023年4月19日,在2023米兰设计周“中国日”活动中举行宣传推介活动。 (由左至…

缺失msvcp140.dll怎么办?msvcp140.dll下载

缺失msvcp140.dll怎么办?msvcp140.dll下载,作为Windows操作系统中必备的组件之一,msvcp140.dll是一款Microsoft Visual C Runtime的动态链接库文件,旨在提供必要的C运行环境支持,以让软件应用程序得以在Windows平台上可…

道可维斯|益企行动,点亮星空数字化转型峰会

2023年,“烟火气”回归,但企业挑战仍在继续。找寻企业增长转型的内生动力,仍是中小企业不变的探索话题。如何寻找穿越周期的高成长机会?4月21日,佛山金蝶软件科技有限公司主办的主题为“益企行动,点亮星空”…

MFC转QT踩坑记录

1、中文乱码 QT msvc编译器版本默认编译的是字符串编码是ANSI, 而QTCreator默认创建的cpp字符串编码是UTF-8,然后msvc还是按ANSI去解析字符串常量,所以导致了中文乱码 解决方案: 使用notepad把cpp编码从UTF-8转成 UTF-8带BOM…

ChatGPT 之父承认 GPT-5 并不存在,为什么 OpenAI 总是这么实诚?|万字详述

ChatGPT 诞生前传 来源: 爱范儿 微信号:ifanr 最近,OpenAI 的 CEO Sam Altman 在一场公开会议上为 GPT-5 辟谣。 他声称 OpenAI 并没有在训练 GPT-5,而是一直基于 GPT-4 做别的工作。 OpenAI 是一家非常有趣的机构,和微软、Go…

用SQL语句操作Oracle数据库——数据更新

数据更新 数据库中的数据更新操作有3种:1)向表中添加若干行数据(增);2)删除表中的若干行数据(删);3)修改表中的数据(改)。对于这3种操作&#xf…

提升项目沟通效果的核心方法

项目沟通是项目管理中的核心之一,项目成败的关键因素之一就是项目团队之间的沟通效果。良好的项目沟通可以增强团队的合作力和凝聚力,确保项目按时完成,达成项目目标。那么提升项目沟通效果的方法有哪些呢?。1、制定沟通计划 在项…

JAVAWeb06-动态WEB开发核心Servlet-01

1. 概述 1.1 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html 1.2 Servlet 和 Tomcat 的关系 一句话, Tomcat 支持 Servlet(谁也不能离开谁) 1.3 为什么会出现 Servlet 提出需求: 请用你现有的html css javascrip…

PS封装格式:GB28181协议RTP传输

在安防行业,有个协议是无论如何都要适配的,因为公安监控网络用的就是它,它就是:GB28181。而这份协议主要由海康制定,所以除了海康其他厂商想要适配都会少许有点儿麻烦。 1. GB28181要求的RTP流格式     首先&…