用于获得相等大小的聚类的聚类算法
Posted
技术标签:
【中文标题】用于获得相等大小的聚类的聚类算法【英文标题】:Clustering algorithm for obtaining equal sized clusters 【发布时间】:2016-10-03 19:34:36 【问题描述】:我正在尝试使用 R 中的 PAM 算法在中心点周围形成集群。是否有固定 PAM 的集群大小(有点强行集群大小)?是否有任何其他聚类算法可以为中心点提供相同大小的聚类?
提前感谢您的帮助。
【问题讨论】:
复制到:stats.stackexchange.com/questions/8744/… 重复的特殊情况:Optimal grouping/clustering of items in groups with minimum size 嗨@Lawrence 你得到这个问题的答案了吗?我正在寻找这种算法的 R 实现,但找不到。谢谢 【参考方案1】:您可以修改聚类算法以满足您的需要。
你可以关注这个Tutorial for Same-Size K-Means,或者简单地使用ELKI中tutorial
包/模块中的这个算法(从GitHub构建最新版本,因为我刚刚修复了那里的一个错误——这将包含在ELKI 0.7中。 2).
本质上,此算法执行 k-means 风格的最小二乘优化,但所有集群的大小必须相同(如果 N/k 不是整数,则集群大小可能相差 1)。
如果您转到上面的教程并滚动到底部,您可以看到示例结果。
【讨论】:
感谢您的回答。不幸的是,我正在使用一个相异矩阵(我没有能够使用 kmeans 的坐标)。我的数据在表单对象中,权重是每对的属性。这就是我使用 PAM 的原因。然而,我已经开发了适合我的问题的自己的聚类算法。当我完成编码时会发布它。再次感谢! 您基本上可以按照教程进行操作,但使用 KMedoidsEM 而不是 KMeans。它类似于 k-means,但使用像 PAM 这样的 medoid。通过上述修改,您将获得一个确保集群具有相同大小的 k-medoids。以上是关于用于获得相等大小的聚类的聚类算法的主要内容,如果未能解决你的问题,请参考以下文章