我需要将单元聚类成个簇以最小化组内平方和 (WSS),但我需要确保每个簇至少包含个单元。知道 R 的任何聚类函数是否允许在最小集群大小约束kmeans() 似乎没有提供大小约束选项。
具有最小集群大小约束的集群(k-means 或其他)
机器算法验证
r
聚类
2022-02-13 20:38:29
4个回答
使用 EM 聚类
在 EM 聚类中,算法迭代地细化初始聚类模型以拟合数据并确定数据点存在于聚类中的概率。当概率模型拟合数据时,算法结束该过程。用于确定拟合的函数是给定模型的数据的对数似然。
如果在此过程中生成空集群,或者如果一个或多个集群的成员低于给定阈值,则在新点重新播种具有低种群的集群并重新运行 EM 算法。
本文解决了这个问题:
Bradley、PS、KP Bennett 和 Ayhan Demiriz。“受约束的 k 均值聚类。” 微软研究院,雷德蒙德 (2000):1-8。
我在python中有一个算法的实现。
我认为这只是将 k 均值作为 if 循环的一部分运行并测试集群大小的问题,即集群 k 中的计数 n - 还请记住,k 均值将为相同数据上的每次运行给出不同的结果,所以无论如何,您可能应该将其作为循环的一部分运行以提取“最佳”结果
你的数据集有多大?也许您可以尝试运行层次聚类,然后根据您的树状图决定保留哪些聚类。
如果您的数据集很大,您还可以结合两种聚类方法:初始非分层聚类,然后使用非分层分析中的组进行分层聚类。您可以在Martínez-Pastor 等人 (2005)中找到这种方法的示例