集成聚类之EAC算法(证据积累数据聚类)附:单连接(SL)易理解详谈

2023-11-05 20:41

本文主要是介绍集成聚类之EAC算法(证据积累数据聚类)附:单连接(SL)易理解详谈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       最近要写论文涉及到聚类集成,想先从EAC做起,集成方面做得还不是很好。如果有机会的话,希望也在研究集成聚类的大佬们和我联系,一起研究探讨集成聚类这方面的知识。感谢各位!

   

       证据积累的想法是这样的:将每个聚类结果作为数据组织独立的证据,把多个聚类的结果合并到一个分区中。

 

方法为拆分合并:

(1)拆分:把大型的多维数据分成小型的球型簇。

                    使用K-Means算法执行此步骤,因为通过K的随机初始化,可以获得各种聚类结果。

(2)结合:为将不同数目的聚类分区并到一块,使用“投票法”合并聚类的结果。

         那么肯定会有这么一种可能,“自然”产生的集群可能在不同集群下的统一集群(不同的划分,做出一个邻近度矩阵)          

         在同一个集群下模式对的同时出现做一个投票标记给关联上。做一个矩阵co-assocation(i,j)=\frac{votes_{ij}}{N}

         N是聚类的数目,votes_{ij}是ij对,被分配给N个聚类数中相同聚类的次数。

(3)合并:恢复自然簇,根据邻域关系,用MST算法(最小生成树),用t的阙值切断弱连接,这句话说的专业一点就是用阙值t在相似性矩阵上切割单连接(SL)生成的树状图,来合并拆分阶段生成的簇。

补充

          1.MST(最小生成树):学过数据结构的一定都会,包括解决方法两种,克鲁斯卡尔和普利姆算法,很简单,如果有忘记的朋友们可以自行复习一下。

          2.那么什么是单连接(SL)呢?:单连接和全连接都是由(2)的邻近度矩阵所出现的。

                                                                 单连接是作用于阙值图的

(阙值图是N个节点的无向图,每个节点都是一个对象,图中不存在环和多重边。用G(v)表示,v表示不相似的程度。给一个v,如果节点i和j之间的不相似度小于v,就在i和j之间插入一条边edge(i,j)。)

例:邻近度矩阵:D=\begin{Bmatrix} 0\, \, 0\, \, 0\, \, 2\, \,0\\ 0\, \, 0\, \, 1\, \, 5\, \, 3\\ 0\, \, 1\, \, 0\, \, 0\, \, 0\\ 2\, \, 5\, \, 0\, \, 0\, \, 4\\ 0\, \, 3\, \, 0\, \, 4\, \, 0 \end{Bmatrix}设定邻近度为5

(1)G(0):刚开始都是点,没有边,每个点都是一个簇,有n个点就是有n个簇。

(2)G(1):根据邻近度矩阵,找1,发现(2,3)满足条件

(3)G(2):找2,发现

(4)G(3):(2,5)

(5)G(4):设定不超过5,所以4是最后一个(4,5)

我们做聚类,最后把它拉成树状图:

总结

EAC步骤:

n ---维数    k---初始簇数   N---聚类数   t---阙值   邻近度矩阵设为空

(1)做N次:1.随机选择K聚类中心;2.初始化用K-Means,生成分区P;3.更新关联度矩阵,对P中同一集群中每对ij更新

(2)用SL找到一致性簇:1.投票法找到多数关联,对每对(i,j)合并到统一集群;2.没包含集群里剩下的做单个集群。

 

本人尚才疏学浅,如内容中有任何错误的地方,望告知,我会加以修改,之后会继续更新。

这篇关于集成聚类之EAC算法(证据积累数据聚类)附:单连接(SL)易理解详谈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352372

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶