特征相关性计较

Pearson相关系数

用于度量两个连续型变量之间的线性关系。取值范围在-1到1之间,0表示无线性关系,1表示完全正相关,-1表示完全负相关
在这里插入图片描述

import pandas as pd# 创建一个包含两个连续型变量的DataFrame
data = {'Variable1': [1, 2, 3, 4, 5],'Variable2': [2, 3, 4, 5, 6]}
df = pd.DataFrame(data)# 计算Pearson相关系数
pearson_corr = df['Variable1'].corr(df['Variable2'])
print(f"Pearson Correlation Coefficient: {pearson_corr}")

Spearman秩相关系数

Spearman秩相关系数是用于度量两个变量之间的单调关系的非参数统计量。与Pearson相关系数不同,Spearman秩相关系数不要求变量之间的关系是线性的,它测量的是变量的等级之间的关系。这使得Spearman相关系数对于非线性关系的探测更为敏感。
在这里插入图片描述

from scipy.stats import spearmanr# 创建一个包含两个连续型变量的DataFrame
data = {'Variable1': [1, 2, 3, 4, 5],'Variable2': [2, 3, 4, 5, 6]}
df = pd.DataFrame(data)# 计算Spearman秩相关系数
spearman_corr, p_value = spearmanr(df['Variable1'], df['Variable2'])
print(f"Spearman Rank Correlation Coefficient: {spearman_corr}")

Kendall秩相关系数

Kendall秩相关系数(Kendall’s Tau)是一种用于度量两个变量之间等级关系的非参数统计量。它对于数据中存在的并非线性关系的情况特别有用。Kendall秩相关系数考虑的是两个变量之间的“协同变动”的数量,即它测量两个变量的秩次之间的一致性
在这里插入图片描述

from scipy.stats import kendalltau# 创建一个包含两个连续型变量的DataFrame
data = {'Variable1': [1, 2, 3, 4, 5],'Variable2': [2, 3, 4, 5, 6]}
df = pd.DataFrame(data)# 计算Kendall秩相关系数
kendall_corr, p_value = kendalltau(df['Variable1'], df['Variable2'])
print(f"Kendall's Tau Correlation Coefficient: {kendall_corr}")

Cramér’s V

Cramér’s V 是一种用于度量两个分类变量之间关联程度的统计量。它是基于卡方检验的结果计算而得,可以用于判断两个分类变量是否存在关联,以及关联的强度

在这里插入图片描述

from scipy.stats import chi2_contingency# 创建一个包含两个分类变量的DataFrame
data = {'Variable1': ['A', 'B', 'A', 'B', 'A'],'Variable2': ['X', 'Y', 'X', 'Y', 'X']}
df = pd.DataFrame(data)# 构建列联表
contingency_table = pd.crosstab(df['Variable1'], df['Variable2'])# 进行卡方检验并计算 Cramér's V
chi2, _, _, _ = chi2_contingency(contingency_table)
n = df.shape[0]
k = contingency_table.shape[0]
r = contingency_table.shape[1]
cramers_v = np.sqrt(chi2 / (n * min(k-1, r-1)))print(f"Cramér's V: {cramers_v}")

Pointwise Mutual Information(点互信息

Pointwise Mutual Information (PMI) 是一种用于衡量两个事件之间关联性的统计度量。它经常在自然语言处理(NLP)领域中用于词语之间的关联性分析,但也可以应用于其他领域

在这里插入图片描述

import numpy as npdef calculate_pmi(p_ab, p_a, p_b):return np.log2(p_ab / (p_a * p_b))# 示例:假设单词 "cat" 和 "dog" 同时出现的概率为 0.01,单独出现的概率分别为 0.05 和 0.1
p_ab = 0.01
p_a = 0.05
p_b = 0.1pmi_value = calculate_pmi(p_ab, p_a, p_b)
print(f"PMI('cat', 'dog'): {pmi_value}")

熵相关度

在信息论中,“熵”(Entropy)通常用于衡量一个系统的混乱程度或不确定性。而 “熵相关度” 这一术语并没有明确的定义,可能指的是一种使用熵来衡量两个变量之间关系的概念。
在这里插入图片描述

互信息

互信息(Mutual Information)用于衡量两个随机变量之间的相关性。

在这里插入图片描述

from scipy.stats import entropy# 示例数据
# 假设X和Y是两个离散随机变量
# 这里只是为了演示,实际使用时需要根据具体情况提供相应的概率分布
p_xy = np.array([[0.1, 0.2], [0.3, 0.4]])  # 联合概率分布
p_y = np.sum(p_xy, axis=0)  # Y的边缘概率分布# 计算条件熵 H(X|Y)
h_x_given_y = entropy(p_xy, base=2, axis=0, keepdims=True) - np.log2(p_y)# 计算互信息 I(X;Y)
h_x_y = entropy(p_xy, base=2, axis=None)  # 联合熵
i_x_y = h_x_y - np.sum(h_x_given_y * p_y)print(f"条件熵 H(X|Y): {h_x_given_y}")
print(f"互信息 I(X;Y): {i_x_y}")

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

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

相关文章

iOS简单理解区分MVC、MVP、MVVM

MVC、MVP、MVVM 前言 这篇文章简单介绍MVC、MVP和MVVM三种架构,并配上一个简单的Swift demo来区分MVC和MVVM两种架构。 MVC 传统MVC 下图是传统结构MVC,可以看到这种结构是紧耦合的,不推荐使用。 苹果的MVC 如下图,这是苹果…

AI产业前瞻报告:探讨GPTs背后的产业逻辑:拉开AIGC应用生态的帷幕

今天分享的是AI系列深度研究报告:《AI产业前瞻报告:探讨GPTs背后的产业逻辑:拉开AIGC应用生态的帷幕》。 (报告出品方:光大证券) 报告共计:13页 1、GPTs 拉开 AIGC 应用生态的帷幕 1.1、 Ope…

系列二十二、各种注解

一、Import # 用法 1)Import(User.class):如果导入的是配置类,将会按照配置类正常解析,如果是个普通类就会解析成bean 2)Import(实现了ImportSelector接口的类.class):可以一次性注册…

Python爬虫基础之Scrapy框架详解

目录 1. 简介2. Scrapy的安装3. Scrapy的架构4. Scrapy的数据流程5. Scrapy开发流程5.1 创建项目5.2 创建Spider5.3 创建Item5.4 编写Spider5.5 运行Spider 参考文献 原文地址:https://program-park.top/2023/12/01/reptile_5/ 本文章中所有内容仅供学习交流使用&am…

0Ω电阻最大过流能力及作用用途

0Ω电阻最大过流能力及作用用途 0Ω电阻过流能力0Ω电阻的作用 0Ω电阻过流能力 0Ω电阻不一定是真正的0Ω电阻,0Ω电阻存在一定的阻值偏差,主要看生产电阻厂商做哪种了。厂商都是根据电阻标准文件 EN60115-2, 里头0Ω电阻实际最大阻值有 10…

JAVA全栈开发 day15_集合(Set接口、增强For循环、Map体系)

一、增加for遍历集合 语法: for(数据类型 变量名: 数组名或集合){​ }//集合遍历 ,推荐使用增加for 1.静态导入 注意事项: 方法必须是静态注意不要和本类的方法同名,如果同名,记得加前缀,由此可…

Git——分支应用进阶

主要内容包括以下几个方面: 长期分支和短期分支的类型以及用途。多种分支模型,其中包括基于工作流的主题分支。不同分支模型的发布流程。在多个预览版程序中使用分支修复安全问题。远程跟踪分支和refspecs规范,以及默认远程版本库配置。拉取…

Mongodb 开启oplog,java监听oplog并写入关系型数据库

开启Oplog windows mongodb bin目录下找到配置文件/bin/mongod.cfg,配置如下: replication:replSetName: localoplogSizeMB: 1024双击mongo.exe 执行 rs.initiate({_id: "local", members: [{_id: 0, host: "localhost:27017"}]})若出现如…

深入理解前端路由:构建现代 Web 应用的基石(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

多线程(初阶六:单例模式)

一、单例模式的简单介绍 二、饿汉模式 三、懒汉模式 四、饿汉模式和懒汉模式的线程安全问题分析 一、单例模式的简单介绍 单例模式是一种设计模式,其中设计模式是软性的规定,与它关联的框架是硬性的规定,这些都是大佬已经设计好了的&…

QT线程的使用 循环中程序的等待

QT线程的使用 循环中程序的等待 先看效果1 pro文件2 头文件3 源文件4 ui文件先看效果 1 pro文件 QT += concurrent2 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H

简述MyBatis、MyBatis-Plus、以及MyBatis-Plus的简单运用

什么是MyBatis MyBatis是一个开源的Java持久层框架,用于简化与关系型数据库的交互。它通过将SQL语句与Java代码进行分离,提供了一种优雅的方式来处理数据库操作。 MyBatis的核心思想是将SQL语句与Java方法进行映射,使得开发人员可以通过配置…

集成开发环境PyCharm的使用【侯小啾python领航计划系列(三)】

集成开发环境 PyCharm 的使用【侯小啾python领航计划系列(三)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

【Vue3+Ts项目】硅谷甄选 — 搭建后台管理系统模板

一、 项目初始化 一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提交规范(即统一提交信息),需要使用pre…

Python | 轻量ORM框架Peewee的基础使用(增删改查、自动创建模型类、事务装饰器)

文章目录 01 简介02 安装03 自动创建模型类04 基础使用4.1 查询4.2 新增4.3 更新4.4 删除 05 事务 01 简介 在使用python开发的过程中,有时需要一些简单的数据库操作,而Peewee正是理想的选择,它是一个小巧而灵活的 Python ORM(对…

hadoop-3.3.5安装过程

准备资源三台虚拟机: 1)准备3台服务器(关闭防火墙、静态IP、主机名称) 2)安装JDK 3)配置环境变量 4)安装Hadoop 5)配置环境变量 安装虚拟机(略)--1台即…

如何删除mac苹果电脑上面的流氓软件?

在使用苹果电脑的过程中,有时候我们也会遇到一些不需要的软件。无论是因为不再需要,或者是为了释放磁盘空间,删除这些软件是很重要的。本文将为大家介绍怎样删除苹果电脑上的软件! CleanMyMac X全新版下载如下: https://wm.make…

elementUI实现根据屏幕大小自适应换行,栅格化布局

需求: 默认一行展示4个卡片;当屏幕小于某个大小的时候,一行展示3个卡片;再小就展示2个;以此类推,最小就展示1个。 效果卡片样式如下图: 默认一行4个 屏幕缩小到某个阈值,一行展示…

Linux:vim的简单使用

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、vim的基本概念二、vim的基本操作三、vim正常模式命令集四、vim底行模式命令集五、.xxx.swp的解决总结 前言 本文是对Linux中vim使用的总结 一、vim的基本概念 …

iOS Class Guard 成功了,但无法区分差异

iOS Class Guard 成功了,但无法区分差异 我正在开发一个静态库,并使用 Polidea 的 iOS Class Guard 来混淆我的静态库。我按照步骤在项目的根路径中下载 obfuscate_project,更改其中所需的名称,最后在终端中运行 bash obfuscate_p…