类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means...

类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means..._第1张图片

k-means很适合对簇状分布的数据聚类,同时可以得到每类数据的prototype,也就是均值点,用来做向量量化之类的任务。但k-means解决不了非簇状分布的数据聚类问题,所以也就没法给出非簇状数据的prototype。

谱聚类虽然可以很好的解决非簇状分布的数据聚类问题,但也没有办法给出每一类数据对应的prototype。

Multiple Prototype试图通过对每一类数据用多个prototype进行表示,解决非簇状分布数据的原型聚类问题。这个小问题的研究工作比较少。以前的工作往往采用自上而下的凝聚式策略进行聚类,运算时间很高。

K-Multiple-Means (KMM) 定义了一个显示的目标函数,在给定总的聚类数k和总的prototypes数m时,通过优化问题求解,自适应的把m个prototype以及n个原始数据点划分到k类中。K-Multiple-Means并不是不考虑n个原始数据点,仅仅对m个prototype进行聚类,而是迭代地划分prototype和原始数据形成的二部图,最终得到的二部图刚好划分为k类,聚类结果可以直接根据图的连通性得到。同时还会给出每个原始数据点和最近的j个prototype的连接概率(就是边的权重)。KMM 的计算复杂度是O(nm^2),相对于n是线性,但对m是二次的。我们在理论上分析了 KMM 和k-means的联系。

类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means..._第2张图片
算法流程及对应步骤的时间复杂度

下面是几个演示示意图,解释算法效果。

类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means..._第3张图片
toy data-1

类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means..._第4张图片
toy data-2

代码在github,https://github.com/CHLWR/KDD2019_K-Multiple-Means

参数选择上需要注意m取的过大会使得运算速度变慢,m取的过小有可能使得聚类效果变差。同时由于在构造二部图时选择了近邻图,所以近邻数j的选取也要注意,通常可以选小一点来学习数据的局部结构。

审稿人也指出了我们的实验部分很weak,但他很喜欢文章的证明(虽然证明也不是很完美)。这个工作幸运地被2019年的kdd接收为oral,不过论文的会议版本还是有很多粗糙的地方。

自我评价:这个工作最大的创新点在于可以学到划分为k类的Multiple Means(之前的算法要么很慢要么没这个解释性好),但参数选取依然没有做到自适应,因为算法是启发式的算法,实际聚类效果其实也是有限的。属于创新性较好,性能一般的工作。还请有注意到这个工作的大佬轻喷。

你可能感兴趣的:(类k-均值算法无法解决非簇状分布的数据聚类问题_一种新的原型聚类方法:K-multiple-means...)