Affinity Propagation (AP)近邻传播聚类

news/2024/5/6 5:02:38/文章来源:https://blog.csdn.net/MarkAustralia/article/details/126967176

近邻传播聚类:根据 N 个数据点之间的相似度聚类,相似度可以是对称的,即两个数据点互相之间的相似度一样(如欧氏距离);也可以是不对称的,即两个数据点互相之间的相似度不等。这些相似度组成 N×N 的相似度矩阵 S (N代表N个数据点)。

不需要事先指定聚类数目,将所有的数据点都作为潜在的聚类中心,称为 exemplar。

以 S 矩阵的对角线上的数值s (k, k)作为 k 点能否成为聚类中心的评判标准,该值越大,这个点成为聚类中心的可能性越大,称为参考度 p ( preference) 。聚类的数量受到参考度 p 的影响,如果每个数据点都有可能作为聚类中心,则 p 取相同的值。如果取输入的相似度的均值作为 p 的值,聚类数量是中等的;如果取最小值,得到较少的聚类。

AP算法传递的两种消息类型,responsibility 和 availability;r(i,k) 表示从点 i 发送到候选聚类中心 k的数值消息,反映 k 点是否适合作为 i 点的聚类中心。a(i,k) 则从候选聚类中心 k 发送到 i 的数值消息,代表 i 点是否选择 k 作聚类中心。

r (i, k)与a (i, k)越强,则 k 点作为聚类中心的可能性就越大,且 i 点属于 k 点的可能性也越大。

AP算法不断更新每个点的吸引度和归属度,直到产生m个高质量的exemplar,同时将其余的数据点分配到相应的聚类中。

名词解释

exemplar:聚类中心。

similarity:点 i 和 j 的相似度,记为S(i,j)。j 为 i 的聚类中心的相似度。

preference:点 i 的参考度称为 P(i) 或 S(i,i)。点 i 作为聚类中心的参考度。可取S相似度中值。

responsibility:r(i,k) 代表点 k 适合作为点 i 的聚类中心的程度。

availability:a(i,k) 描述点 i 选择点 k 作为其聚类中心的适合程度。

damping factor:阻尼系数,主要是起收敛作用的。防止数据震荡,引入地衰减系数,每个信息值等于前一次迭代更新的信息值的λ倍加上此轮更新值得1-λ倍,其中λ在0-1之间,默认为0.5。

AP聚类算法将每个数据看成图中的一个节点,迭代的过程是在图中通过传播信息找到聚类集合。计算两个数据点的相似度采用距离的负数,此时距离越近,相似度越大

相似矩阵S中 i 到 j 的相似度就是距离的负数。但是主对角线上的那些数表示的是某个点和自身的相似度,根据算法要求,主对角线上的值s(k,k)一般称为偏向参数,通常对所有 k,s(k,k) 都是相等(是其自身),取非主对角线上的所有数的中位数(其大小与最后得到的类的数目有关,通常这个数越大,得到的类的数目就越多)。

如此设定可能是因为AP聚类算法是要用图论理解,把所有的点都看成一个图中的节点,通过节点之间的信息传递来达到聚类的效果。

聚类就是个不断迭代的过程,迭代的过程主要更新两个矩阵,

代表(Responsibility)矩阵R = [r(i,k)]N×N 和适选 (Availabilities)矩阵A=[a(i,k)]N×N。

这两个矩阵初始化为0,N是所有样本的数目。

r(i,k)表示第k个样本适合作为第i个样本的类代表点的代表程度,

a(i,k)表示第i个样本选择第k个样本作为类代表样本的适合程度。

每次更新后就可以确定当前样本 i 的代表样本(exemplar)点k,k 是使 {a(i,k)+r(i,k)} 取得最大值的那个k 点,如果 i=k,代表样本 i 就是这个簇的类代表点。

迭代停止的条件就是所有的样本的所属都不在变化为止,或者迭代了n次没有变化(n 自定义)。

还有一种判断点属于哪一类的方法,找出所有决策矩阵主对角线元素 {a(k,k)+r(k,k)} 大于 0 的所有点,这些点全部都是类代表点,之后在决定其余的点属于这里面的一类。

AP聚类算法迭代过程很容易产生震荡,因此每次迭代都加上一个阻尼系数 λ。

公式解释

a(i,k’) 表示除 k外,其他点对 i 点的归属度值,初始为0;

s(i,k’) 表示除 k 外,其他点对 i 的吸引度,即 i 外其他点都在争夺 i 点的 所有权;

r(i,k)表示点 k 成为点 i 的聚类中心的累积证明,r(i,k)值大于0 表示点 k 成为聚类中心的能力强。

此时只考虑哪个点 k 成为点 i 的聚类中心的可能性最大,但是没考虑这个吸引度最大的 k 是否也经常成为其他点的聚类中心(即归属度),若点 k 只是点 i 的聚类中心,不是其他任何点的聚类中心,则会造成最终聚类中心个数大于实际的中心个数。

a(i,k):归属度信息,表示点 i 选择点 k 为其聚类中心的合适程度;

r(i’,k) 表示点 k 作为除 i 外其他点的聚类中心的相似度值,取所有大于等于0的吸引度值,加上k作为聚类中心的可能程。即点 k 在这些吸引度值大于 0 的点的支持下,点 i 选 k 为中心的累积证明。

:算法复杂度较高,为O(N*N*logN),而K-Means只是O(N*K)的复杂度。当N较大时(N>3000),

        AP聚类算法往往需要算很久。

        若以误差平方和衡量优劣,AP聚类比其他方法的误差平方和都低。

        AP通过输入相似度矩阵来启动算法,允许数据呈非欧拉分布,及非常规的点-点度量方法。

 

参考:

AP近邻传播聚类算法(Affinity Propagation)_船长工作室的博客-CSDN博客

Affinity Propagation: AP聚类算法_winkake的博客-CSDN博客

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

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

相关文章

IP静态路由

IP静态路由基础概述 为了实现数据的转发,路由器必须有能力建立、刷新路由表,并根据路由表转发数据包 定义 路由是数据通信网络中的最基本的要素。路由信息就是知道报文发送的路径信息,路由的过程就是报文中继转发的过程 目的 为了实现数据的转发,路由器、路由表和路由协议是…

selenium工具之find_element(by=By.xx, value=xxx) find_elements(by=By.xx, value=xxx)详解

前言 selenium是一款十分强大的Web应用自动化框架,我们可以通过它来自动操控浏览器。操控浏览器的实质是操控浏览器的界面元素,因此定位元素是使用selenium的关键,selenium中通过 find_element() 方法来完成定位。 用法 1、通过webdriver对象的 find_element(by="属性名…

【教程】在 visual studio 共享和重用项目属性

环境 os:windows 10IDE:visual studio 2015 前言 在 visual studio 下开发项目时,通常会配置项目的属性,比如引入外部头文件,引入外部库之类的 尤其是不同的开发模式,debug 和 release,不同…

PHP+经贸时间轴 毕业设计-附源码211617

基于php经贸时间轴小程序 摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,经贸时间轴小程序被用户普遍使用…

Cache与内存映射

全相联 主存的某一Block可以映射到Cache中的任意一Block&#xff0c;多对多N<>M&#xff1b; 全相联地址格式&#xff1a; 高位为块地址与tag比较&#xff0c;offset负责取出Block内的字节 放一道例题把&#xff1a; 既然新开了一章写就写的细一点&#xff0c;Cache全…

深度学习入门:基于Python的理论与实现

1.Python入门 python中使用class关键字来定义类&#xff1a; class 类名&#xff1a;def __init__(self, 参数,...):#构造函数...def 方法1(self, 参数, ...): # 方法1...def 方法2(self, 参数, ...): # 方法2...这里有一股特殊的__init__方法&#xff0c;这是进行初始化的方…

合成/聚合复用原则

合成/聚合复用原则 很多情况继承会带来麻烦:对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常密切的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当需要复用子类时,如果继承下来的实现不适合解决新…

港科夜闻|香港科大为庆祝建校30周年举办慈善义卖,限量推出一批具有收藏价值的非同质化代币(NFT)艺术精品...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科大为庆祝建校30周年举办慈善义卖&#xff0c;限量推出一批具有收藏价值的非同质化代币(NFT)艺术精品。这系列NFT艺术收藏品的亮点&#xff0c;就是26款按英文字母A至Z排列、重现香港科大生活点滴的原创数码图像&#…

【计算机网络】第五章 传输层

第五章 传输层 一、传输层概述 传输层功能 协议&#xff1a;TCP和UDP 是只有主机才有的层次 功能&#xff1a; 提供进程和进程之间的通信&#xff0c;网络层提供的是主机之间的通信复用和分用&#xff1a;将数个进程的信息复用起来&#xff0c;发送出去&#xff1b;收到信息…

安装 Windows Server 2019 VM虚拟机

目录&#xff08;1&#xff09;系统语言设置&#xff08;2&#xff09;点击【Install now】&#xff08;3&#xff09;激活Windows&#xff08;4&#xff09;选择安装版本&#xff08;5&#xff09;同意【license terms】&#xff08;6&#xff09;选择安装类型&#xff08;7&a…

新华三学习记录

文章目录前言计算机网络基础基本概念TCP/IP四层和OSI七层模型LAN/WAN冲突域基本组网基本协议总结前言 本博客仅做学习笔记&#xff0c;如有侵权&#xff0c;联系后即刻更改 科普&#xff1a; 计算机网络基础 参考文章 基本概念 计算机网络 分布各地的具有独立功能的计算机…

【云原生-Docker】Docker 安装 MySQL

&#x1f341;博客主页&#xff1a;&#x1f449;不会压弯的小飞侠 ✨欢迎关注&#xff1a;&#x1f449;点赞&#x1f44d;收藏⭐留言✒ ✨系列专栏&#xff1a;&#x1f449;Docker学习专栏 ✨学习社区&#xff1a;&#x1f449;不会压弯的小飞侠 ✨知足上进&#xff0c;不负…

5.Eureka服务注册的源码分析(springcloud)

一、Eureka 概念的理解 1 服务的注册 当项目启动时&#xff08;eureka 的客户端&#xff09;&#xff0c;就会向 eureka-server 发送自己的元数据&#xff08;原始数据&#xff09;&#xff08;运行的 ip&#xff0c;端口 port&#xff0c;健康的状态监控等&#xff0c;因为使用…

P02 反射

P02 反射1.反射概述1.1 反射的基本作用1.2 反射的关键2.反射获取类对象2.1 forName(String className)2.2 类名.class2.3 对象.getClass()3.反射获取构造器对象![在这里插入图片描述](https://img-blog.csdnimg.cn/e234dd155af94a5c80223d64b112f4bf.png)3.1 Class 类中用于获取…

18.Composition API(四)高级语法补充

1.自定义指令 之前我们学习了各种指令&#xff1a;v-model、v-for、v-show等&#xff0c;除了这些指令外&#xff0c;Vue允许我们自定义指令。 什么时候使用自定义指令&#xff1f; 需要对DOM元素进行底层操作&#xff0c;这个时候就会用到自定义指令。 注意&#xff1a;在V…

第二章 ES数据操作与集群

一、回顾 1.介绍ES 2.ES原理 3.ES功能 4.ES使用场景 5.ES安装 1)ES配置文件(单点配置) [root@es01 ~]# grep ^[a-z] /etc/elasticsearch/elasticsearch.yml node.name: es-1 path.data: /data/es/data path.logs: /data/es/log bootstrap.memory_lock: true network.host: 1…

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

因为另一台机器开发时,android studio提示更新什么东西,无脑点了。 导致原先的那台开发机器,无法build,报异常: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 有两个方法解决: 1、修改jdk从1.8改到11如果没有这个选项,可能需要安装…

高项重点内容

BI&#xff0c;商业智能 联机事务处理OLTP主要是执行基本日常的事务处理&#xff0c;比如数据库记录的增删查改。比如在银行的一笔交易记录&#xff0c;就是一个典型的事务。联机分析处理是数据仓库系统的主要应用&#xff0c;支持复杂的分析操作&#xff0c;侧重决策支持&…

Java高级:IO

笔记来源&#xff1a;尚硅谷Java入门视频教程(在线答疑Java面试真题) 文章目录一 File类的使用1.1 基本概述1.2 File类的常用构造器1.3 路径分隔符1.4 File类常用方法二 IO流原理及流的分类2.1 IO原理2.2 流的分类2.3 节点流和处理流2.4 InputStream & Reader2.4.1 InputSt…

mini LED显示屏—点胶测量

mini LED显示屏作为一种LED的一种技术&#xff0c;其产品已开始应用于超大屏高清显示&#xff0c;如监控指挥、高清演播、高端影院、医疗诊断、广告显示、会议会展、办公显示、虚拟现实等商用领域。 而本次测量mini LED显示屏胶水高度。测试采样步距间隔大小的测量精度&#xf…