天天看点

集成聚类之EAC方法

刚看完一篇集成聚类的文章:

Combining Multiple Clusterings Using Evidence Accumulation(EAC)

做个简单的笔记,方便复习。

和一般的集成聚类不同,EAC并不直接组合不同的划分,而是由这些不同的划分得到一个邻近度矩阵(proximity matrix),之后便可在这个邻近度矩阵上运用层次聚类中的单连接(single link)或平均连接(average link)算法得到最终的划分。

(单连接算法:http://blog.csdn.net/tyh70537/article/details/76768802)

首先要想的到不同的划分(partition)有以下方法:

1,使用不同的聚类算法

2,使用相同的算法,但进行不同的初始化或使用不同的参数

3,使用不同的特征空间

假设数据集 X 包含n个样本,X={x1,x2,⋯,xn}。现有m种不同的划分,划分集合 P={P1,P2,⋯,Pm} ,注意EAC并不限制每种划分中的簇的个数。EAC算法构建一个n*n的邻近度矩阵D, Nij=Nji 表示样本i和样本j在m种划分中属于同一个簇的次数。则矩阵D的元素 Dij=Nij/m ,在D的基础上运营单连接算法,得到最终的划分。

相比一般层次聚类中使用的邻近度矩阵,

EAC方法集成不同的划分构建新的邻近度矩阵,新的邻近度矩阵相比直接使用原始数据构建的邻近度矩阵,更能反应样本之间的关系。

下面几张图说明用EAC集成k-means和单一的k-means算法的不同效果:

原始数据的分布情况如下:

集成聚类之EAC方法

使用单个k-means算法(k=25):

集成聚类之EAC方法

使用单个k-means算法(k=11):

集成聚类之EAC方法

EAC法(集成了30个k-means划分,每种划分的簇的数量k随机从区间 [10,30] 里选择):

集成聚类之EAC方法

可以看出,集成后的k-means算法可以识别复杂的结构。

继续阅读