【生物信息学】层次聚类过程
文章目录
- 一、理论
- 二、实践
- 过程1
- 过程2
一、理论
层次聚类是一种基于树状结构的聚类方法,它试图通过在不同层次上逐步合并或分裂数据集来构建聚类结构。这个树状结构通常被称为“树状图”(dendrogram),其中每个节点代表一个数据点或一组数据点,而连接节点的分支表示聚类的形成过程。
下面是层次聚类的一般原理:
-
距离矩阵计算: 首先,计算数据集中每对数据点之间的距离。这可以是欧氏距离、曼哈顿距离、相关性等不同的距离度量。
-
初始化: 将每个数据点作为一个独立的簇,形成初始的聚类。
-
迭代合并或分裂: 从最小距离开始,迭代地合并或分裂簇,直到满足某个停止条件。
-
合并(Agglomerative): 从底层开始,将最近的两个簇合并为一个新的簇。合并的标准可以是簇内点之间的最小距离、最大距离、平均距离等。
-
分裂(Divisive): 从顶层开始,将一个簇分裂成两个新的簇。分裂的标准通常是选择一个簇中的一个点,然后将其他点分配给最近的簇。
-
-
更新距离矩阵: 在每次合并或分裂后,更新距离矩阵,反映新形成的簇之间的距离。
-
形成树状图: 记录每次合并或分裂的过程,形成树状图。树状图的叶子节点代表单个数据点,内部节点代表合并的簇。
-
停止条件: 根据具体任务和目标选择停止合并或分裂的条件,可以是簇的数量、簇的直径、距离的阈值等。
层次聚类的优点之一是它提供了在不同层次上观察数据结构的能力,同时不需要预先指定簇的数量。然而,由于其复杂度较高,对大型数据集的处理可能会受到计算资源的限制。
二、实践
考虑下图所示的单链聚类,其中数据集包含 5 个点,任意两点之间的距离在图的左下角给出。绘制其按照Mini-Distance树状图
| δ \delta δ | B | C | D | E |
|---|---|---|---|---|
| A | 1 | 3 | 2 | 4 |
| B | 3 | 2 | 3 | |
| C | 1 | 3 | ||
| D | 5 |
聚类过程:
用 δ ( A , B ) \delta(A, B) δ(A,B) 表示两个簇 A 和 B 之间的距离,这个距离可以根据不同的标准进行计算,比如最小距离、最大距离、平均距离等。
过程1
这里 δ ( A , B ) = 1 , δ ( C , D ) = 1 \delta(A,B)=1,\delta(C,D)=1 δ(A,B)=1,δ(C,D)=1,选择先合并AB,则 δ ( A B , E ) = min ( δ ( A , E ) , δ ( B , E ) ) = 3 \delta(AB,E)=\min(\delta(A,E),\delta(B,E))=3 δ(AB,E)=min(δ(A,E),δ(B,E))=3
| δ \delta δ | C | D | E |
|---|---|---|---|
| AB | 3 | 2 | 3 |
| C | 1 | 3 | |
| D | 5 |
- 再合并CD,则
| δ \delta δ | CD | E |
|---|---|---|
| AB | 2 | 3 |
| CD | 3 |
- 再合并ABCD,则
| δ \delta δ | E |
|---|---|
| ABCD | 3 |
┌──────── ABCDE ────────┐│3 │┌──── ABCD ────┐ ││2 2│ 3│
┌───── AB ────┐ ┌──── CD ───┐ │
│1 1│ │1 │1 │
A B C D E
过程2
- 选择先合并CD
| δ \delta δ | B | C | D | E |
|---|---|---|---|---|
| A | 1 | 3 | 2 | 4 |
| B | 3 | 2 | 3 | |
| C | 1 | 3 | ||
| D | 5 |
- δ ( C D , E ) = min ( δ ( C , E ) , δ ( D , E ) ) = 3 \delta(CD,E)=\min(\delta(C,E),\delta(D,E))=3 δ(CD,E)=min(δ(C,E),δ(D,E))=3
- δ ( C D , A ) = min ( δ ( C , A ) , δ ( D , A ) ) = 2 \delta(CD,A)=\min(\delta(C,A),\delta(D,A))=2 δ(CD,A)=min(δ(C,A),δ(D,A))=2
- δ ( C D , B ) = min ( δ ( C , B ) , δ ( D , B ) ) = 2 \delta(CD,B)=\min(\delta(C,B),\delta(D,B))=2 δ(CD,B)=min(δ(C,B),δ(D,B))=2
| δ \delta δ | B | CD | E |
|---|---|---|---|
| A | 1 | 2 | 4 |
| B | 2 | 3 | |
| CD | 3 |
-
再合并AB
-
δ ( A B , C D ) = min ( δ ( A , C D ) , δ ( B , C D ) ) = 2 \delta(AB,CD)=\min(\delta(A,CD),\delta(B,CD))=2 δ(AB,CD)=min(δ(A,CD),δ(B,CD))=2
-
δ ( A B , E ) = min ( δ ( A , E ) , δ ( B , E ) ) = 3 \delta(AB,E)=\min(\delta(A,E),\delta(B,E))=3 δ(AB,E)=min(δ(A,E),δ(B,E))=3
| δ \delta δ | CD | E |
|---|---|---|
| AB | 2 | 3 |
| CD | 3 |
- 再合并ABCD,则
| δ \delta δ | E |
|---|---|
| ABCD | 3 |
相关文章:
【生物信息学】层次聚类过程
文章目录 一、理论二、实践过程1过程2 一、理论 层次聚类是一种基于树状结构的聚类方法,它试图通过在不同层次上逐步合并或分裂数据集来构建聚类结构。这个树状结构通常被称为“树状图”(dendrogram),其中每个节点代表一个数据点或…...
变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整
一、说明 在深入研究第 1 部分中的介绍和实现,并在第 2 部分中探索训练过程之后,我们现在将重点转向在第 3 部分中通过超参数调整来优化模型的性能。要访问本系列的完整代码,请访问我们的 GitHub 存储库在GitHub - asokraju/ImageAutoEncoder…...
KnowLM知识抽取大模型
文章目录 KnowLM项目介绍KnowLM项目的动机ChatGPT存在的问题 基于LLama的知识抽取的智析大模型数据集构建及训练过程预训练数据集构建预训练训练过程指令微调数据集构建 指令微调训练过程开源的数据集及模型局限性信息抽取Prompt 部署环境配置模型下载预训练模型使用LoRA模型使…...
MySQL数据库 索引
目录 索引概述 索引结构 二叉树 B-Tree BTree Hash 索引分类 索引语法 慢查询日志 索引概述 索引 (index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种…...
ES 错误码
2xx状态码(如200)表示请求成功处理,并且不需要重试。 400状态码表示客户端发送了无效的请求,例如请求的语法有误或缺少必需的参数。在这种情况下,重试相同的请求很可能会导致相同的错误。因此,应该先检查并…...
听GPT 讲Rust源代码--src/tools(18)
File: rust/src/tools/rust-analyzer/crates/ide-ssr/src/from_comment.rs 在Rust源代码中的from_comment.rs文件位于Rust分析器(rust-analyzer)工具的ide-ssr库中,它的作用是将注释转换为Rust代码。 具体来说,该文件实现了从注…...
如何实现设备远程控制?
在工业自动化领域,设备远程控制是一项非常重要的技术。它使得设备可以在远离现场的情况下进行远程操作和维护,大大提高了设备的可用性和效率。 设备远程控制的应用场景有哪些? 远程故障排除:当设备出现故障时,工程师…...
百度侯震宇详解:大模型将如何重构云计算?
12月20日,在2023百度云智大会智算大会上,百度集团副总裁侯震宇以“大模型重构云计算”为主题发表演讲。他强调,AI原生时代,面向大模型的基础设施体系需要全面重构,为构建繁荣的AI原生生态筑牢底座。 侯震宇表示&…...
[Java]FileOutputStream的换行/续写/一次性写出一个字符串的方法
1.续写:FileOutputStream这个io流中的write方法默认情况下是覆盖写入的,如果需要追加写入,需要添加一个参数true 2.虽然write只能一个字符一个字符写入 但是我们可以把想输入的字符串放在str 再将str转化成byte数组 import java.io.FileOutp…...
VM进行TCP/IP通信
OK就变成这样 vm充当服务端的话也是差不多的操作 点击连接 这里我把端口号换掉了因为可能被占用报错了,如果有报错可以尝试尝试换个端口号 注: 还有一个点在工作中要是充当服务器,要去网络这边看下他的ip地址 拉到最后面...
剑指Offer 队列栈题目集合
目录 用两个栈实现队列 用两个栈实现队列 刷题链接: https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6 题目描述 思路一: 使用两个栈来实现队列的功能。栈 1 用于存储入队的元素,而栈 2 用于存储出队的元素。 1.push…...
grafana基本使用
一、安装grafana 1.下载 官网下载地址: https://grafana.com/grafana/download官网包的下载地址: yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.2-1.x86_64.rpm官网下载速度非常慢,这里选择清华大…...
备份至关重要!如何解决iCloud的上次备份无法完成的问题
将iPhone和iPad备份到iCloud对于在设备发生故障或丢失时确保数据安全至关重要。但iOS用户有时会收到一条令人不安的消息,“上次备份无法完成。”下面我们来看看可能导致此问题的原因,如何解决此问题,并使你的iCloud备份再次顺利运行。 这些故…...
【项目问题解决】% sql注入问题
目录 【项目问题解决】% sql注入问题 1.问题描述2.问题原因3.解决思路4.解决方案1.前端限制传入特殊字符2.后端拦截特殊字符-正则表达式3.后端拦截特殊字符-拦截器 5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 在处理接口入参的一些sql注入问题,虽然通过M…...
B/S医院手术麻醉临床管理系统源码 手术申请、手术安排
手术麻醉系统概述 手术室是医院各个科室工作交叉汇集的一个重要中心,在时间、空间、设备、药物、材料、人员调配的科学管理、高效运作、安全质控、绩效考核,都十分重要。手术麻醉管理系统(Operation Anesthesia Management System࿰…...
解锁高效工作!5款优秀工时管理软件推荐
工时管理,一直是让许多企业和团队头疼的问题。传统的纸质工时表、复杂的电子表格,不仅操作繁琐,还容易出错。幸好,随着科技的进步,我们迎来了工时管理软件的春天。今天,就让我们一起走进这个新时代…...
ICLR 2024 高分论文 | Step-Back Prompting 使大语言模型通过抽象进行推理
文章目录 一、前言二、主要内容三、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 ICLR 2024 高分论文:《Step-Back Prompting Enables Reasoning Via Abstraction in Large Language Models》 论文地址:https://openreview.net/forum?id=3bq3jsvcQ1 …...
边缘计算有哪些常用场景?TSINGSEE边缘AI视频分析技术行业解决方案
随着ChatGPT生成式人工智能的爆发,AI技术在业界又掀起一波新浪潮。值得关注的是,边缘AI智能也在AI人工智能技术进步的基础上得到了快速发展。IDC跟踪报告数据显示,2021年我国的边缘计算服务器整体市场规模达到33.1亿美元,预计2020…...
配置BGP的基本示例
目录 BGP简介 BGP定义 配置BGP目的 受益 实验 实验拓扑 编辑 组网需求 配置思路 配置步骤 配置各接口所属的VLAN 配置各Vlanif的ip地址 配置IBGP连接 配置EBGP 查看BGP对等体的连接状态 配置SwitchA发布路由10.1.0.0/16 配置BGP引入直连路由 BGP简介 BGP定义 …...
Flask解决接口跨域问题
1、什么是跨域CROS CORS(Cross-Origin Resource Sharing,跨域资源共享)是一种浏览器安全策略,用于控制在一个网页应用中如何让一个域的Web页面能够请求另一个域的资源。在Web开发中,由于同源策略(Same-Ori…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
