Python和C++及MATLAB距离相关性生物医学样本统计量算法及数据科学
🎯要点
- 统计观测值之间距离计算
- 代谢组学和脂质组学分析
- 相关距离矩阵计算
- 卡方检验偏差校正
- 快速计算距离协方差算法
- 大规模生物系统分析
- 距离矩阵相关性测试
- 石油勘探统计学关系

Python距离矩阵
在数学、计算机科学,尤其是图论中,距离矩阵是一个方阵(二维数组),其中包含一组元素之间成对的距离。根据所涉及的应用,用于定义此矩阵的距离可能是也可能不是度量。如果有 N 个元素,则此矩阵的大小为 N×N。在图论应用中,元素通常被称为点、节点或顶点。
一般来说,距离矩阵是某个图的加权邻接矩阵。在网络(即为弧分配权重的有向图)中,网络两个节点之间的距离可以定义为连接两个节点的最短路径上权重之和的最小值(其中路径中的步数是有界的)。[2] 这个距离函数虽然定义明确,但不是度量。除了需要能够组合和比较权重之外,不需要对权重进行任何限制,因此在某些应用中会使用负权重。由于路径是有向的,因此无法保证对称性,并且如果存在负权重循环,距离矩阵可能不是空心的(并且如果没有对步数的限制,矩阵可能未定义)。
上述的代数公式可以通过使用最小加代数来获得。该系统中的矩阵乘法定义如下:给定两个 n × n n \times n n×n 矩阵 A = ( a i j ) A=\left(a_{i j}\right) A=(aij) 和 B = ( b i j ) B=\left(b_{i j}\right) B=(bij),它们距离积 C = ( c i j ) = A ⋆ B C=\left(c_{i j}\right)=A \star B C=(cij)=A⋆B 定义为 n × n n \times n n×n 矩阵,使得
c i j = min k = 1 n { a i k + b k j } c_{i j}=\min _{k=1}^n\left\{a_{i k}+b_{k j}\right\} cij=k=1minn{aik+bkj}
请注意,非直接连接的对角线元素需要设置为无穷大或合适的大值,以使 min-plus 操作正常工作。这些位置的零将被错误地解释为没有距离、成本等的边。
Python示例说明如何对距离矩阵进行排序,以便最终(分层)集群是明显的。
import numpy as np
from scipy.spatial.distance import pdist, squareform
from sklearn import datasets
import matplotlib.pyplot as plt
iris = datasets.load_iris()
iris.data.shape
(150, 4)
该数据集包含 R^4 中的 150 个点(由 4 个特征描述的 150 朵花)。使用 pdist 我们可以计算一个 150 x 150 的距离矩阵,如下所示。
dist_mat = squareform(pdist(iris.data))N = len(iris.data)
plt.pcolormesh(dist_mat)
plt.colorbar()
plt.xlim([0,N])
plt.ylim([0,N])
plt.show()
我们可以看到有 3 个明显的簇:一个相当密集(左下)并且距离其他两个簇很远,另外两个非常接近,但与第三个簇(左下)的距离不同。
这些聚类对应于可以在 iris.target 中找到的 3 个类:一个是线性可分的(下面的 0 类,对应于距离矩阵中左下方的聚类),另外两个不是线性可分的(类 1 和 2,对应于最右边的两个聚类)。
iris.target
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
为了展示所提出的相异矩阵排序方法的有用性,我们对数据点应用随机排列。这是相关的,因为数据点通常以任意顺序提供并且通常没有任何标签。
X = iris.data[np.random.permutation(N),:]dist_mat = squareform(pdist(X))plt.pcolormesh(dist_mat)
plt.xlim([0,N])
plt.ylim([0,N])
plt.show()
在该过程结束时,所有点都根据树状图施加的顺序进行排序。
def seriation(Z,N,cur_index):if cur_index < N:return [cur_index]else:left = int(Z[cur_index-N,0])right = int(Z[cur_index-N,1])return (seriation(Z,N,left) + seriation(Z,N,right))def compute_serial_matrix(dist_mat,method="ward"):N = len(dist_mat)flat_dist_mat = squareform(dist_mat)res_linkage = linkage(flat_dist_mat, method=method,preserve_input=True)res_order = seriation(res_linkage, N, N + N-2)seriated_dist = np.zeros((N,N))a,b = np.triu_indices(N,k=1)seriated_dist[a,b] = dist_mat[ [res_order[i] for i in a], [res_order[j] for j in b]]seriated_dist[b,a] = seriated_dist[a,b]return seriated_dist, res_order, res_linkage
👉更新:亚图跨际
相关文章:
Python和C++及MATLAB距离相关性生物医学样本统计量算法及数据科学
🎯要点 统计观测值之间距离计算代谢组学和脂质组学分析相关距离矩阵计算卡方检验偏差校正快速计算距离协方差算法大规模生物系统分析距离矩阵相关性测试石油勘探统计学关系 Python距离矩阵 在数学、计算机科学,尤其是图论中,距离矩阵是一…...
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
文章目录 C模板进阶编程前言第一章: 非类型模板参数1.1 什么是非类型模板参数?1.1.1 非类型模板参数的定义 1.2 非类型模板参数的注意事项1.3 非类型模板参数的使用场景示例:静态数组的实现 第二章: 模板的特化2.1 什么是模板特化?2.1.1 模板…...
golang学习笔记20-面向对象(二):方法与结构体【重要】
本节内容是面向对象的核心与基础,很重要。 注意:由于导包语句已经在19讲(笔记19:面向对象的引入)展示过了,所以这里就不展示了。 一、方法的定义与细节 方法是与特定类型(通常是结构体&#x…...
广州C++信奥老师解一本通题 1919:【02NOIP普及组】选数
【题目描述】 已知nn个整数x1,x2,……xn 以及一个整数K(K<n)。从n个整数中任选K个整数相加,可分别 得到一系列的和。例如当n4, k3 4个整数分别为3,7,12,19 3, 7,12,19时,可得全部的组合与它们的和为: 371222 371929 7121938 3121934 现在,要求你计算出和为…...
cas5.3统一登录前后端分离改造方案(源码)
cas5.3 为什么选择cas5.3 版本 5.3 版本是最新的支持jdk8 的版本,并且项目架构基于maven ,商业项目中jdk8 仍是主流,在考虑商业收益的情况下,如果客户不要求,不会升级jdk, 基于Maven的项目比gradle 简单,…...
【ComfyUI】控制光照节点——ComfyUI-IC-Light-Native
原始代码(非comfyui):https://github.com/lllyasviel/IC-Light comfyui实现1(600星):https://github.com/kijai/ComfyUI-IC-Light comfyui实现2(500星):https://github.c…...
LVS+keepalived整合负载均衡配置
准备三台服务器;负载均衡服务器192.168.45.136,后端机器1,92.168.45.135,后端机器2,192.168.45.138 在两台后端机器上安装nginx服务,yum install -y nginx,并且启动nginx服务,systemctl start …...
Goland无法使用debug的修复
现象goland在debug的时候,一直卡在打的断点处,释放断点程序就执行结束。 查看其他博客说是当使用老版本的goland,golang版本为高版本时就会出现debug问题,需要手动更换dlv。 接下来以window为例子: 第一步࿱…...
MySQL和Doris开窗函数LAG执行时的区别
目标表的表结构 CREATE TABLE point_value_status_color_tmp ( id bigint NOT NULL, org_id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, device_id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, origin_ti…...
都是小憨憨!
周五晚上约了俩哥们儿吃饭,天南海北地聊着。其中一个哥们儿 L 讲,他在外面如何辛苦跑业务,维系客户,拿单子……但却被合伙人说是合伙人拉了 L 一把,而且可以分分钟灭了 L。所以 L 感觉到很委屈。然后我们俩就劝说趁早决…...
高级java每日一道面试题-2024年9月30日-服务器篇[Redis篇]-Redis持久化有几种方式?
如果有遗漏,评论区告诉我进行补充 面试官: Redis持久化有几种方式? 我回答: Redis 是一个高性能的键值存储系统,常用于缓存、消息队列和实时数据分析等场景。为了保证数据的持久性,Redis 提供了两种主要的持久化方式:RDB(Redi…...
ICML 2024 论文分享┆一个简单且通用的交通预测提示调优框架
论文简介 本推文介绍了2024 ICML的优秀论文之一《FlashST: A Simple and Universal Prompt-Tuning Framework for Traffic Prediction》。论文的核心目标是通过整合空间和时间因素,精准地预测和分析交通流量的动态变化。然而,在交通预测领域,…...
【C++打怪之路Lv4】-- 类和对象(中)
🌈 个人主页:白子寰 🔥 分类专栏:C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分82)&#…...
滚雪球学MySQL[1.1讲]:MySQL简介与环境配置
全文目录: 前言1. MySQL简介与环境配置1.1 MySQL简介什么是MySQLMySQL的历史和版本MySQL的应用场景 1.2 安装与配置安装MySQL(Windows、Linux、macOS)配置文件解析(my.cnf)启动与停止MySQL服务 1.3 MySQL客户端工具MyS…...
Llama微调以及Ollama部署
1 Llama微调 在基础模型的基础上,通过一些特定的数据集,将具有特定功能加在原有的模型上。 1.1 效果对比 特定数据集 未使用微调的基础模型的回答 使用微调后的回答 1.2 基础模型 基础大模型我选择Mistral-7B-v0.3-Chinese-Chat-uncensored&#x…...
中关村环球时尚产业联盟 东晟时尚产业创新中心成立
2024年9月6日,中关村环球时尚产业联盟与东晟时尚创新科技(北京)有限公司于中关村科技园东城园举行了隆重的战略合作签约仪式。 中关村科技园东城园领导发表了致辞,并表示东城区作为首都北京的核心区域,拥有深厚的历史…...
基于SSM的宠物领养管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的宠物领养管理系统2拥有两种角色 管理员:宠物分类管理、领养管理、宠物商品管理、用户管理、寄存管理、丢失信息管理、订单管理等 用户:登录注册、收藏评…...
为什么要配置环境变量?
在 Windows 操作系统中配置环境变量有多个重要的原因,这些原因与软件开发、系统管理和日常使用密切相关。以下是一些主要的原因: 1. 系统路径(PATH) 可执行文件的位置:PATH 环境变量用于指定操作系统在何处查找可执行…...
条件熵公式详细解释、举例说明计算步骤
公式 7-4 是条件熵的表达式: E ( Y ∣ X ) ∑ i 1 m p ( X x i ) E ( Y ∣ X x i ) E(Y|X) \sum_{i1}^m p(X x_i) E(Y | X x_i) E(Y∣X)i1∑mp(Xxi)E(Y∣Xxi) 这个公式表示的是条件熵,它是衡量在已知某一特征 X X X 的情况下,…...
颍川陈氏始祖陈寔逆势崛起的原由(一)不屈的努力
园子说颍川 按陈寔的出身,与当官是风马牛不相及的。 东汉末年的社会,朝中外戚、宦官当道,地方则由世家大族把持,郡县的政治经济资源都由他们掌控分配,平民以及中小地主很难有出头之日,弄不好就被兼并了。…...
从OODA循环到代码实现:构建可自我优化的决策执行系统
1. 项目概述:一个决策循环系统的诞生最近在整理过往项目时,我重新审视了一个名为SimplixioMindSystem/decision-loop的内部工具。这个名字听起来可能有点抽象,但它的核心思想非常朴素:构建一个能够自我迭代、自我优化的决策执行闭…...
【可口可乐全球设计中心认证流程】:从Prompt工程到DPI输出的12小时高保真印相交付链
更多请点击: https://intelliparadigm.com 第一章:【可口可乐全球设计中心认证流程】:从Prompt工程到DPI输出的12小时高保真印相交付链 可口可乐全球设计中心(Coca-Cola Global Design Hub)采用端到端AI增强型印前认证…...
spawnfile:轻量级进程编排工具,提升本地开发与测试效率
1. 项目概述:一个被低估的进程管理利器如果你在Linux或macOS环境下做过开发,尤其是需要频繁启动、停止、监控一堆后台服务(比如微服务架构下的多个组件),那你一定对进程管理工具不陌生。从最基础的nohup加&&#x…...
WinDirStat插件开发终极指南:构建自定义磁盘管理功能
WinDirStat插件开发终极指南:构建自定义磁盘管理功能 【免费下载链接】windirstat WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/wi/windirstat 作为Windows平台最知名的…...
Navicat导入Excel实战:从数据准备到成功入库的完整避坑指南
1. 数据准备:Excel规范整理实战 第一次用Navicat导入Excel时,我对着报错提示整整折腾了两小时。后来才发现,90%的问题都出在数据准备阶段。就像做饭前要洗菜切配,数据导入前也需要做好这些准备工作: 字段命名要像给变量…...
从DataOperation接口到QuickSort实现:探究适配器模式在算法整合中的应用
1. 适配器模式:解决接口不兼容的桥梁 想象一下你从国外带回来一个三脚插头的电器,但家里的插座都是两孔的。这时候你会怎么做?大多数人会选择买一个转换插头。在编程世界里,适配器模式就是这个万能的"转换插头"。 最近我…...
4sapi 企业级实战:统一模型网关与全生命周期管理解决方案
引言随着大模型技术在企业中的广泛应用,越来越多的企业开始面临 "模型碎片化" 的挑战。不同部门、不同业务线各自对接不同的大模型厂商,使用不同的 API 接口,导致企业内部出现了多个独立的 AI 孤岛,带来了一系列严重的问…...
美政府AI主管:Anthropic 将在 18 个月内成为人类历史最有价值公司
Anthropic 已经成为人工智能革命中最成功的案例之一,但这或许还不是全部。风险投资家兼美国政府人工智能和加密货币沙皇大卫萨克斯在 All-In播客节目中提出了一个惊人的说法:Anthropic 不仅有望成为科技界最强大的公司,而且有望成为人类历史上…...
NVIDIA显卡终极调校指南:用Profile Inspector释放游戏潜能的简单方法
NVIDIA显卡终极调校指南:用Profile Inspector释放游戏潜能的简单方法 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗?NVIDIA Profile Inspect…...
TINA-TI仿真实战:从运放振铃到电源设计的电路调试指南
1. 为什么我们需要TINA-TI仿真软件 作为一个在硬件设计领域摸爬滚打多年的工程师,我见过太多因为电路设计问题导致的返工案例。记得有一次,我们团队花了两周时间手工焊接的样机,上电后运放输出端出现了严重的振铃现象,不得不全部拆…...
