聚类笔记/sklearn笔记:Affinity Propagation亲和力传播

1 算法原理

1.1 基本思想

  • 将全部数据点都当作潜在的聚类中心(称之为 exemplar )
  • 然后数据点两两之间连线构成一个网络( 相似度矩阵 )
  • 再通过网络中各条边的消息( responsibility 和 availability )传递计算出各样本的聚类中心。

1.2 主要概念

Examplar聚类中心
similarity  S(i,j)

相似度

一般使用负的欧式距离,所以 S(i,j) 越大,表示两个点距离越近,相似度也就越高

Preference
  • 点 i 作为聚类中心的参考度(不能为0),取值为 S相似度 对角线的值
  • 此值越大,则为聚类中心的可能性就越大。
  • 如果没有被设置,则一般设置为 S相似度 值的中值

Responsibility 

吸引度

  • 点 k 适合作为数据点 i 的聚类中心的程度,记为 r(i,k) 。

Availability

归属度

  • 点 i 选择点 k 作为其聚类中心的适合程度,记为 a(i,k)
  • r和a都是第二个参数的点作为聚类中心

Damping factor

阻尼系数

主要是起收敛作用

1.3 算法流程

  • 计算相似度矩阵
    • 此时对角线上的值都是0,用某种方法(固定参数/相似度矩阵的中位值/最小值等)填充对角线的值
  • 开始时:构造一个全0的归属度矩阵a
  • 以下不断迭代更新
    • 更新每一个吸引度矩阵r中的单元格值
    • 更新归属度矩阵a
    • 使用阻尼系数更新归属度a和吸引度r
      • 使用阻尼系数(damping factor)来衰减吸引度和归属度信息,以免在更新的过程中出现数值振荡
      • 上面三个公式算出来的是等号右边的a和r
  • 获取聚类中心

1.4 举例

  • 假设有如下样本:共5个维度
  • 计算相似度矩阵
    • 相似度矩阵中每个单元是用两个样本对应值的差的平方和取负值得到的,对角线上的除外
    • 当聚类中心为对角线上的单元格选择了比较小的值,那么AP算法会快速收敛并得到少量的聚类中心,反之亦然。因此。我们使用表格中最小的值 -22 去填充相似度矩阵中的 0 对角线单元格。
  • 计算吸引度矩阵r
    • eg:计算 Bob对 Alice的 吸引度(Responsibility)【Alice视Bob为聚类中心的程度,r(Alice,Bob)
      • 这里套用上面的公式即为:用S(Bob,Alice)- max(a(Alice,others)+s(Alice,others))
        • 即 -7-(-6)=-1
  • 计算归属度矩阵a
      • 以alice为例,a(Alice,Alice)就是 所有大于0的 r(others,Alice)的和,即10+11=21
      • 以Alice支持Bob作为其聚类中心为例
      • a(Alice,Bob)=min(0,r(Bob,Bob)+0)=-15 【没有r(others,Bob)大于0】
  • 假设迭代一次就结束,那么我们计算评估矩阵
    • c=r+a
    • 一般将评估矩阵中取得最大值的一些点作为聚类中心
      • Alice,Bob 和 Cary 共同组成一个聚类簇
      • Doug 和 Edna 则组成了第二个聚类

1.5 主要缺点

  • Affinity Propagation的主要缺点是其复杂性。该算法的时间复杂度为O(N^2 \times I),其中 N 是样本数量,I 是直到收敛的迭代次数
  • 如果使用密集的相似性矩阵,则内存复杂度为 O(n^2),但如果使用稀疏的相似性矩阵则可以降低。
  • 这使得Affinity Propagation最适合小到中等大小的数据集

2 sklearn实现

class sklearn.cluster.AffinityPropagation(*, damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False, random_state=None)

2.1 主要参数


damping

float,默认为0.5

阻尼因子,取值范围是[0.5, 1.0)

max_iter

int,默认为200

最大迭代次数

convergence_iter

int,默认为15

估计的簇数量没有变化的迭代次数,达到该次数则停止收敛

preference

array-like形状为(n_samples,)或浮点数,默认为None

每个点的偏好 - 具有较大偏好值的点更有可能被选择为典型样本

如果没有传递偏好作为参数,它们将被设置为输入相似度的中值。

affinity

{‘euclidean’, ‘precomputed’},默认为‘euclidean’

使用哪种亲和力。目前支持‘precomputed’和欧几里得。‘euclidean’使用点之间的负平方欧几里得距离。

2.2 主要属性

from sklearn.cluster import AffinityPropagation
import numpy as npX = np.array([[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]])ap=AffinityPropagation(damping=0.8).fit(X)
cluster_centers_indices_

簇中心的索引

cluster_centers_

簇中心

labels_

每个点的标签

affinity_matrix_

亲和力矩阵

n_iter_

收敛所需的迭代次数

 

参考内容:AP聚类算法(Affinity propagation) - 知乎 (zhihu.com)

常见聚类算法及使用--Affinity Propagation(AP)_af nity propagation 是什么意思-CSDN博客

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

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

相关文章

【ARM CoreLink 系列 3.2 -- CCI-400,CCI-500, CCI-550 差异】

文章目录 CCI-400 和 CCI-500 差异ARM CCI-400ARM CCI-500ARM CCI-550CCI-400 和 CCI-500 差异 ARM的 CCI(Cache Coherent Interconnect)系列产品是用于多核处理器之间的高性能缓存一致性互连。CCI-400 和 CCI-500 是该系列中的两种设计,它们旨在允许多个处理器核心和其他资…

TopNet-(CVPR2023)前背景图像合成

文章目录 摘要引言算法架构结构损失函数 实验数据集评估SOTA比较模型是否过拟合到修复区域泛化到真实图片消融实验 讨论及结论限制 参考文献 摘要 作者调研自动放置目标到背景进行图像合成的问题。提供背景图、分割的目标,训练模型预测合理放置信息(位置…

程序员接单,宝藏好平台抄底攻略清单!五大平台精选。

前阵子“双十一”购物节狂欢促销,各种好货清单席卷而来。 程序员购不购物我不知道,但是这个兼职、接单清单相信你一定用得着。 搜罗海量信息,整理大量数据与评价,挖出了5个宝藏平台,绝对个个精选,保证量大…

图片转换成pdf格式的软件ABBYY16

ABBYY PDF这款提供多种图像处理选项,可提高源图像的质量,便于准确地识别光学字符。我们扫描纸质文档或从图像文件创建 PDF 时,务必选择合适的图像处理选项。而在ABBYY PDF 中包含下列图像处理选项。 识别文本 — 选择此选项会将文本层放在图…

(保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示

讲解 MySQL 中索引、触发器、存储过程、存储函数的使用 文章目录 1. 索引1.1 索引的分类1.2 索引的设计原则1.3 如何使用(create index) 2. 触发器2.1 触发器的分类2.2 如何使用(create trigger) 3. 存储过程3.1 如何使用&#xf…

新生儿散光:原因、科普和注意事项

引言: 散光是一种常见的眼睛问题,虽然在新生儿时期相对较少见,但了解其原因、科普相关知识,并提供一些建议的注意事项,对于婴儿的视力健康至关重要。本文将深入探讨新生儿散光的原因、相关科普知识,并为父…

大厂前沿技术导航

百度Geek说 - 知乎 腾讯技术 - 知乎 美团技术团队

YaRN方法:无需微调,高效扩展语言模型上下文窗口/蚂蚁集团与浙大发布原生安全框架v1.0,引领企业网络安全新时代 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 YaRN方法:无需微调,高效扩展语言模型上下文窗口 蚂蚁…

2023 hnust 湖南科技大学 信息安全管理课程 期中考试 复习资料

前言 ※老师没画重点的补充内容★往年试卷中多次出现或老师提过的,很可能考该笔记是奔着及格线去的,不是奔着90由于没有听过课,部分知识点不一定全,答案不一定完全正确 题型 试卷有很多题是原题 判断题(PPT&#xff…

python-冒泡排序

冒泡排序 (稳定) O(n^2) (稳定:表示相等的数,相对位置会不会改变) 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次遍历待排序的元素,比较相邻两个元素的大小并交换它们&…

Kafka 常用功能总结(不断更新中....)

kafka 用途 业务中我们经常用来两个方面 1.发送消息 2.发送日志记录 kafka 结构组成 broker:可以理解成一个单独的服务器,所有的东西都归属到broker中 partation:为了增加并发度而做的拆分,相当于把broker拆分成不同的小块&…

党建信息管理系统源码 支持在线交党费 附带完整的搭建教程

传统的党建管理模式通常采用手工方式,不仅效率低下,而且容易出错。随着组织规模的扩大和党员数量的增加,这种管理方式已经无法满足现实需求。此外,传统的党建管理模式缺乏在线交党费功能,给党员带来不便。因此&#xf…

Kubernetes 离线部署 Spinnaker

离线部署 Spinnaker 离线部署 spinnaker 需要提前准备以下依赖项 halyard 安装工具:该hal命令的apt源地址https://us-apt.pkg.dev/projects/spinnaker-community位于国外halyard boms物料清单:Spinnaker 将其halyard boms配置存储在公共谷歌云存储 ( g…

如何在 Web 应用程序中查找端点?

如何在 Web 应用程序中查找端点? 这篇文章主要讲述了如何在网络应用中找到端点。以下是文章的主要要点: 端点是网络服务的访问地址,通过引用这个URL,客户可以访问服务提供的操作。端点提供了寻址Web服务端点所需的信息。 HTTP消息是服务器和客户端之间交换数据的方式,包…

2024免费MacBook清理工具CleanMyMac X4.15

CleanMyMac X 是一款专业的Mac清理软件,可智能清理mac磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级 Mac 上的应用。同时 CleanMyMac X 可以强力卸载恶意软件,修复系统漏洞,一键扫描和优化 Mac 系统&…

【ChatGLM3-6B】Docker下部署及微调

【ChatGLM2-6B】小白入门及Docker下部署 注意:Docker基于镜像中网盘上上传的有已经做好的镜像,想要便捷使用的可以直接从Docker基于镜像安装看Docker从0安装前提下载启动访问 Docker基于镜像安装容器打包操作(生成镜像时使用的命令&#xff0…

什么手机30万?VERTU唐卡手机顶配56.8万

近日,一则新闻在社交媒体上引发了广泛关注。一名男子遗失了一部价值30万的VERTU唐卡定制款手机,而一位女士在捡到这部手机后,误以为是一部普通的老年机,引发了种种误会。30万的手机是什么牌子?VERTU唐卡手机浮出水面 据了解,这部VERTU唐卡定制款手机是一款豪华的奢侈品定制手机…

GoogleNet详解

一、亮点 AlexNet、VGG都只有一个输出层。googlenet有三个(其中两个是辅助分类层) 二、先看看Inception结构 1、Inception 之前的网络: AlexNet、VGG都是串行结构 Inception: 并行结构 上一层的输出同时传入四个并行结构&…

有了倾斜摄影,如何搭建一座智慧城市?

随着无人机航测、倾斜摄影等全新一代测绘信息技术方法的发展,可以迅速搜集制作精细化的城市三维模型,搭建城市地理信息基础服务架构。 近期都在重点关注的“智慧城市”究竟是什么,有什么重大作用,同时又面临着什么难关&#xff0c…

短剧付费变现小程序源码系统+开通会员+在线充值 附带完整的搭建教程

大家好啊,今天小编来给大家分享一款短剧付费变现小程序源码系统。近年来,随着互联网技术的飞速发展,短剧成为了一个备受瞩目的领域。短剧以其简洁、紧凑的故事情节和制作周期短、传播速度快的特点,成为了越来越多人的选择。然而&a…