【发布时间】:2020-02-22 17:44:51
【问题描述】:
我正在尝试对包含大约 1,100,000 个观察值的数据集进行聚类,每个观察值具有三个值。由于我不知道正确的集群数量,我尝试了分层集群,但它需要 4095 GB 内存才能解决问题。作为替代方案,我使用 K-means 并解决了 k=2 到 10 的问题。现在的问题是我找不到比较这些集群性能的方法。 This website 建议了十种方法来“暂时”猜测最佳聚类数,但它们不适用于相当大的数据集并返回内存错误消息。
我的问题:是否有任何方法(包)可以完成相同的任务但不是这种内存贪婪以便我可以运行测试?
我的机器有 64 GB 的 RAM,它的虚拟内存是 171 GB。 谢谢!
【问题讨论】:
-
您所指的网站列出了肘部方法作为选择集群数量的一种方式。由于您成功地对 k=2 到 10 的数据进行聚类,因此只需计算聚类内的平方和。
-
@G5W 我尝试使用他们为肘部方法提供的代码,但它返回错误消息。您能想到什么“调整”可以解决问题吗?
-
是的,不要使用
fviz_nbclust,而是自己计算平方的簇内总和(然后绘制它们。见Wikipedia -
您可以查看高性能任务视图(google it),看看是否有针对大规模集群的包...
标签: python r bigdata cluster-analysis data-mining