图聚类中的亲和力传播
图中展示的是Affinity Propagation(亲和力传播)算法中的一个关键步骤——更新吸引度矩阵。Affinity Propagation是一种聚类算法,它通过消息传递的方式找到数据集中的代表性样本(称为exemplar或原型),并将其他数据点分配给这些原型,从而实现聚类。
### 1. **吸引度矩阵(Responsibility Matrix)与可用性矩阵(Availability Matrix)**
在Affinity Propagation算法中,有两个重要的矩阵:
- **吸引度矩阵 \( r(i, k) \)**:表示数据点 \( i \) 选择数据点 \( k \) 作为其原型的合适程度。
- **可用性矩阵 \( a(i, k) \)**:表示数据点 \( k \) 作为数据点 \( i \) 的原型的合适程度。
### 2. **更新吸引度矩阵的公式**
\[ r(i, k) \leftarrow s(i, k) - \max_{k' \neq k} \{a(i, k') + s(i, k')\} \]
其中:
- \( s(i, k) \) 是相似度矩阵中的元素,表示数据点 \( i \) 和数据点 \( k \) 之间的相似度。
- \( a(i, k') \) 和 \( s(i, k') \) 分别是数据点 \( i \) 对于其他候选原型 \( k' \) 的可用性和相似度。
这个公式的目的是计算数据点 \( i \) 选择数据点 \( k \) 作为其原型的“净吸引力”。具体来说,它考虑了数据点 \( i \) 与数据点 \( k \) 的直接相似度 \( s(i, k) \),并减去数据点 \( i \) 对于其他候选原型的最大吸引力。
### 3. **图示解释**
#### 左图:发送责任(Sending responsibilities)
- **Data point i**:当前考虑的数据点。
- **Candidate exemplar k**:候选原型 \( k \)。
- **Competing candidate exemplar k'**:与其他候选原型 \( k' \) 竞争成为数据点 \( i \) 的原型。
- **r(i, k)**:数据点 \( i \) 选择候选原型 \( k \) 的责任(净吸引力)。
- **a(i, k)**:数据点 \( k \) 作为数据点 \( i \) 原型的可用性。
左图展示了数据点 \( i \) 在选择候选原型 \( k \) 时,需要考虑 \( k \) 与其他候选原型 \( k' \) 的竞争关系。\( r(i, k) \) 表示在排除其他候选原型的影响后,数据点 \( i \) 选择 \( k \) 的净吸引力。
#### 右图:发送可用性(Sending availabilities)
- **Candidate exemplar k**:候选原型 \( k \)。
- **Supporting data point i'**:支持数据点 \( i' \),即认为 \( k \) 是一个好原型的数据点。
- **r(i', k)**:支持数据点 \( i' \) 选择候选原型 \( k \) 的责任。
- **a(i, k)**:数据点 \( k \) 作为数据点 \( i \) 原型的可用性。
右图展示了候选原型 \( k \) 在被数据点 \( i \) 考虑为原型时,需要考虑其他支持数据点 \( i' \) 的意见。\( a(i, k) \) 表示在综合其他支持数据点的意见后,数据点 \( k \) 作为数据点 \( i \) 原型的合适程度。
### 4. **总结**
Affinity Propagation算法通过迭代更新吸引度矩阵和可用性矩阵,逐步确定每个数据点的最佳原型,从而实现聚类。图中展示的步骤是算法的核心部分,通过计算和传递责任与可用性信息,使得算法能够自动发现数据集中的代表性样本,并将其他数据点合理地分配到不同的簇中。
相关文章:
图聚类中的亲和力传播
图中展示的是Affinity Propagation(亲和力传播)算法中的一个关键步骤——更新吸引度矩阵。Affinity Propagation是一种聚类算法,它通过消息传递的方式找到数据集中的代表性样本(称为exemplar或原型),并将其…...
Apache中间件解析漏洞与安全加固
Apache作为全球使用最广泛的Web服务器,其灵活性和模块化设计使其成为开发者的首选。然而,其解析机制和配置不当可能导致严重的安全风险。本文将从漏洞原理、攻击案例和安全配置三个维度,结合真实场景,解析…...
MyBatis-Plus分页插件的使用
从MyBatis-Plus 3.4.0开始,不再使用旧版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。 下面是MyBatis-Plus 3.4.3.3新版分页的使用方法。 配置 使用分页插件需要配置MybatisPlusInterceptor,将分页拦截器添加进来ÿ…...
集结号海螺捕鱼游戏源码解析(第二篇):水浒传捕鱼模块逻辑与服务器帧同步详解
本篇将全面解构“水浒传”子游戏的服务端核心逻辑、帧同步机制、鱼群刷新规则、客户端命中表现与服务器计算之间的协同方式,聚焦于 C 与 Unity3D 跨端同步的真实实现过程。 一、水浒传捕鱼模块资源结构 该模块包含三部分核心目录: 子游戏/game_shuihuz…...
开发体育直播系统后台权限设计实践分享|ThinkPHP 技术栈落地案例
今天我们分享的是一套由 东莞梦幻网络科技 自研的体育直播源码,在 ThinkPHP MySQL 技术栈的加持下,后台权限系统如何从0到1落地,并支撑整个平台稳定运行。 一、整体架构设计 用户端(APP / H5 / PC)↓ 前端接口层&am…...
onlyoffice历史版本功能实现,版本恢复功能,编辑器功能实现 springboot+vue2
文章目录 oonlyoffice历史版本功能实现 (编辑器功能实现)springbootvue2前提 需要注意把这个 (改成自己服务器的ip或者域名) 改成 自己服务器的域名或者地址1. onloyoffice 服务器部署 搜索其他文章2. 前段代码 vue 22.1 需要注意把这个 (改成自己服务器…...
【漫话机器学习系列】219.支持向量机分类器(Support Vector Classifier)
图解支持向量机分类器(Support Vector Classifier) 在机器学习的分类模型中,支持向量机(Support Vector Machine,SVM)是一种功能强大且广泛应用的监督学习算法。它尤其擅长解决小样本、高维度的数据问题&a…...
深入解析 Spring Boot Test:架构、核心组件与最佳实践
深入解析 Spring Boot Test:架构、核心组件与最佳实践 在现代软件开发中,测试是确保应用程序质量的关键环节。Spring Boot Test作为Spring Boot框架的一部分,提供了一套强大且灵活的测试工具,帮助开发者高效地测试Spring Boot应用…...
Sklearn 与 TensorFlow 机器学习实用指南-第八章 降维-笔记
补充: 本文是关于《Sklearn 与 TensorFlow 机器学习实用指南》的学习笔记,基于八、降维 - 【布客】Sklearn 与 TensorFlow 机器学习实用指南 第二版,感谢译者 本文和原文的区别: 本文会更精简、系统地表述书中概念,…...
动态贴纸+美颜SDK的融合实现:底层架构与性能优化技术全解析
如今,美颜动态贴纸功能已经成为提升用户粘性与平台竞争力的“标配”。但从技术实现角度看,如何高效融合动态贴纸与美颜SDK,并在保证画质与流畅度的前提下实现稳定输出,仍然是一项复杂且极具挑战的工程。 本文将深入解析“动态贴纸…...
Git简介与入门
Git的发明 Git由著名的Linux创始人linus于2005年发明(所以git的界面、使用方式与Linux挺像的,即命令行方式) 经过发展,现在广泛应用于代码管理与团队协作。 Git特性 Git是分布式版本控制系统 分布式 每个开发者拥有完整仓库&…...
车载信息安全架构 --- 汽车网络安全
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...
Elasticsearch 堆内存使用情况和 JVM 垃圾回收
作者:来自 Elastic Kofi Bartlett 探索 Elasticsearch 堆内存使用情况和 JVM 垃圾回收,包括最佳实践以及在堆内存使用过高或 JVM 性能不佳时的解决方法。 堆内存大小是分配给 Elasticsearch 节点中 Java 虚拟机的 RAM 数量。 从 7.11 版本开始ÿ…...
基于UDP协议的群聊服务器开发(C/C++)
目录 服务器 一、通信 打开网络文件 绑定IP地址与端口号 接收信息 二、数据处理 客户端 三、端口绑定 四、收发信息 五、源码 服务器 在服务器架构设计中,模块解耦是保障系统可维护性的核心准则。本方案采用分层架构将核心功能拆解为通信层与业务处理层两…...
通过自定义序列化来格式化BigDecimal带千分符的字符串
首先,你需要创建一个自定义的 JsonSerializer 来格式化 BigDecimal 为带千分符的字符串。 public class BigDecimalWithCommaSerializer extends JsonSerializer<BigDecimal> {Overridepublic void serialize(BigDecimal value, JsonGenerator gen, Serialize…...
VulnHub-DarkHole_2靶机渗透教程
1.靶机部署 [Onepanda] Mik1ysomething 靶机下载:https://download.vulnhub.com/darkhole/darkhole_2.zip 直接使用VMware导入打开就行 注意:靶机的网络连接模式必须和kali一样,让靶机跟kali处于同一网段,这样kali才能扫出靶机…...
cf | Common Multiple
题目: 代码: 无注释版: #include<bits/stdc.h> using namespace std; #define int long long signed main(){int t;cin>>t;while(t--){int n;cin>>n;map<int,int> mp;mp.clear();for(int i1;i<n;i){int x;cin…...
leetcode hot100尝试1
目录 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 c m…...
大模型Agent
一 大模型Agent是什么 (一)大模型Agent是指基于大语言模型的,能使用工具与外部世界进行交互的计算机程序 感知(Perception): ● 家庭助理通过摄像头、麦克风、传感器等设备获取家庭成员的活动信息和环境状…...
阻塞队列的介绍和简单实现——多线程编程简单案例[多线程编程篇(4)]
目录 前言 阻塞队列 阻塞队列相比普通队列的优势 1.天然线程安全 2.实现生产者-消费者模型更加简单 3.自动等待与唤醒 生产者-消费者模型 JAVA标准库中的阻塞队列 阻塞队列的简单实现 前言 在现代软件开发中,多线程编程能力已经成为程序员必须掌握的一项核心…...
服务器配置环境-condapytorch_20250422
文章目录 前言一、conda环境1.1 创建固定python版本的conda环境1.2 激活 Conda 环境1.3 关闭 Conda 环境 二、版本查看CUDA版本当电脑里有多个CUDN时 对照表下载 资源 前言 一、conda环境 1.1 创建固定python版本的conda环境 conda create --name tang_py_3.12 python3.12.41…...
Android Gradle Plugin (AGP) 和 Gradle 的關係
Android Gradle Plugin (AGP) 与 Gradle 的核心关系解析 一、功能定位 Gradle 的通用性 Gradle 是跨平台构建工具,支持 Java、Kotlin、C 等多种语言,提供任务自动化、依赖管理等功能。 通过 build.gradle 文件定义构建脚本,管理编译、测试…...
字典树(前缀树)的实现(5)0423
字典树又称前缀树或Trie树,是处理字符串中常见的数据结构。假设组成所有单词的字符仅是"a"~"z",请实现字典树结构,并包含以下四个功能。 void insert(String word) :添加word,可重复添加。 void delete(Str…...
PHP 反序列化原生类 TIPS字符串逃逸CVE 绕过漏洞属性类型特征
#PHP- 属性类型 - 共有 & 私有 & 保护 1 、对象变量属性: public( 公共的 ): 在本类内部、外部类、子类都可以访问 protect( 受保护的 ): 只有本类或子类或父类中可以访问 private( 私人的 ): 只有本类内部可以使用 2 、序列化数据显示: p…...
专题二十:路由策略与策略路由
一、路由策略 1.1 路由策略的概念 路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接受和发布的路由进过滤。这种方式称为路由策略 路由策略功能相关作用控制路由的发布可通过路由策略对所要发布的路由信息进行过滤,只允许发布满足条件的路由信…...
Git 远程操作全攻略:从基础到实战
🌈 个人主页:Zfox_ 🔥 系列专栏:Git 企业级应用 目录 一:🔥 理解分布式版本控制系统 二:🔥 远程仓库 🦋 新建远程仓库🦋 克隆远程仓库🦋 向远程仓…...
VUE自动定义控件SwitchButton
<switch-button style"margin-left: 20rpx;" :buttons["一键打分", "快捷打分"] select"快捷打分" ButtonClick"SwitchButnClick"></switch-button> SwitchButton.vue <template><view class"Di…...
【数据可视化-24】巧克力销售数据的多维度可视化分析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
STM32---串口通信USART
目录 一、串口通信协议 二、USART模块介绍 (1)移位寄存器 (2)控制电路 (3)波特率 (4)C语言接口 三、串口的引脚初始化 (1)引脚分布表 &…...
YOLO11改进-Backbone-引入TransXNet替换YOLO backbone 学习全局和局部动态信息,提高检测精度
Vision Transformer 的缺陷:Vision Transformer(ViT)运用多头自注意力机制在计算机视觉领域取得进展,但它缺乏卷积神经网络(CNNs)所具有的归纳偏差,导致泛化能力相对较弱。像 Swin Transformer …...
SQL 多表查询:数据整合与分析的强大工具
SQL 多表查询:数据整合与分析的强大工具 在关系型数据库中,数据通常被组织在多个表中。这种表的分离有助于减少冗余并提高数据的管理效率。然而,在实际应用中,往往需要对多个表中的数据进行整合查询,来获得更完整的信…...
MCU开发学习记录11 - ADC学习与实践(HAL库) - 单通道ADC采集、多通道ADC采集、定时器触发连续ADC采集 - STM32CubeMX
名词解释: ADC: Analog-to-Digital SAR:Successive Approximation Register 本文将介绍ADC的概念、相关函数以及STM32CubeMX生成ADC的配置函数。针对于ADC实践:单通道采集芯片内部温度传感器(ADC1_ch16)&a…...
MacOS中安装Python(homebrew,pyenv)
前言 由于MacOS中自带Python,而自带的Python关联到许多系统组件,不推荐 禁止使用自带Python 安装homebrew包管理器 homebrew官网 打开终端(terminal)输入以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercon…...
从物理到预测:数据驱动的深度学习的结构化探索及AI推理
在当今科学探索的时代,理解的前沿不再仅仅存在于我们书写的方程式中,也存在于我们收集的数据和构建的模型中。在物理学和机器学习的交汇处,一个快速发展的领域正在兴起,它不仅观察宇宙,更是在学习宇宙。 AI推理 我们…...
新书速览|Hadoop与Spark大数据全景解析(视频教学版)
《Hadoop与Spark大数据全景解析:视频教学版》 01 本书内容 《Hadoop与Spark大数据全景解析:视频教学版》结合作者多年在大数据领域的开发实践经验,采用“理论实战”的形式,以大量实例全面介绍Hadoop和Spark的基础知识及其高级应用。作者将丰富的教学经…...
Linux:42线程控制lesson30
代码1:验证join可以去的线程执行完后的退出码/返回值 #include<iostream> #include<unistd.h> #include<pthread.h> #include<string> using namespace std;void* routine(void* arg){string name static_cast<const char*>(arg);i…...
配置 Apache 的 HTTPS
证书文件 文件名 作用 来源 example.com.key 服务器的私钥,用于加密和解密数据。 本地生成 -----BEGIN PRIVATE KEY----- MIIEowIBAAKCAQEAqp5c... -----END PRIVATE KEY----- example.com.csr Certificate Signing Request 证书签名请求文件,包…...
【Flutter高效开发】GetX指南:一文学会状态管理、路由与依赖注入
GetX是Flutter生态中最受欢迎的轻量级全能框架,以其简洁的API设计和卓越的性能著称。本文将带你全面掌握GetX的核心功能和使用技巧,提升你的Flutter开发效率。 一、GetX框架核心优势 1. 三位一体架构设计 模块功能传统方案对比状态管理响应式状态控制…...
第四节:核心概念高频题-Vue生命周期钩子变化
重命名:beforeDestroy→beforeUnmount,destroyed→unmounted 新增:onServerPrefetch(SSR场景) Vue 生命周期钩子变化详解(Vue2 → Vue3) 一、核心钩子重命名与语义优化 销毁阶段语义化升级 • …...
安全邮件系统的Maple实现详解
代码改进版: # # 安全邮件系统实现 - 结合DES和RSA加密 # 功能:实现安全的消息加密、签名和传输 # # -------------------------- # 第一部分:消息准备和加密 # --------------------------# 原始消息内容 message : "This is an atte…...
VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
参考: 安装VTK 详细图文讲解CMake编译VTK,包含详细的编译环境版本 Visual Studio 2022 配置VTK9.3.0 VTK-8.2.0源码编译和初步使用(CmakeVS2015Qt5.14.2) 文章目录 下载编译编译环境介绍配置CMake信息BUILD_SHARED_LIBS控制生成的库是动态链接库…...
【playwright】学习--持续汇总
seleniumplaywrightselenium 需要结合其他自动化框架,比如pytest之后才能支持web自动化测试playwright 不需要其他自动化框架selenium库》webdriver》浏览器驱动playwright库》playwright driver》浏览器驱动 目录 安装playwright通过pip安装通过VScode安装 安装pla…...
深度解析算法之模拟
39.替换所有的问号 题目链接 给你一个仅包含小写英文字母和 ? 字符的字符串 s,请你将所有的 ? 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。 注意:你 不能 修改非 ? 字符。 题目测试用例保证 除 ? 字符 之外&#…...
leetcode刷题日记——插入区间
[ 题目描述 ]: [ 思路 ]: intervals 有序,需要将一个新的范围插入,然后进行整合方法一,将新的范围插入原 intervals 区间,然后使用 56 题的合并区间函数直接解决方法二, 找出能够包容 newInte…...
gbase8s存储学习一 rootdbs存储结构以及寻址分析
主要层次自下而上为 最小物理存储单元page ,多个page 组成逻辑存储单元extent,多个extent 组成物理存储单元chunk ,而多个chunk组成逻辑存储单元dbspace,多个dbspace 组成一个数据库实例 在数据库初始化阶段会生成一个rootdbs表空间,该表空…...
学习设计模式《五》——工厂方法模式
一、基础概念 工厂方法模式的本质是【延迟到子类来选择实现】; 工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类 。 工厂方法模式的功能 序号说明0工厂方法模…...
如何将 Azure Active Directory (Azure AD) 作为 SAML IdP 对接到 Keycloak
✅ 一、在 Azure AD 创建 SAML 应用 🔧 1. 登录 Azure 门户 前往 https://portal.azure.com,使用管理员账号登录。 📌 2. 创建企业应用(Enterprise Application) 左侧菜单进入 “企业应用程序”。点击 “新建应用程…...
OCR之身份证识别
前言 OCR身份证识别是光学字符识别技术在身份证领域的应用。通过扫描或拍照获取身份证图像,利用图像处理、深度学习等技术,自动提取姓名、性别、民族、出生日期、地址、身份证号等信息,可大幅提升信息录入效率,广泛应用于政务、金…...
JavaScript 渲染内容爬取:Puppeteer 高级技巧与实践
在现代网络应用中,动态网页内容的爬取一直是开发者面临的挑战之一。Puppeteer 作为一种强大的浏览器自动化工具,为这一问题提供了优雅的解决方案。本文将深入探讨 Puppeteer 的高级技巧,包括动态内容抓取、性能优化、反检测与伪装、复杂自动化…...
组织级项目管理OPM
组织级项目管理(Organizational Project Management, OPM)是一种系统化的管理方法,旨在通过整合项目组合、项目集和项目管理,确保组织的战略目标与项目执行的一致性,提升资源利用效率和项目成功率。以下是其核心内容与框架的详述: 一、组织级项目管理的定义与目标 定义 组…...