哪种算法适合对十亿个数据点进行聚类?

数据挖掘 机器学习 聚类 k-均值
2022-03-14 03:01:55

sklearn在 6 维超平面(使用 6 个特征)上约 350k 个数据点的聚合数据集上运行 K-means 算法(使用实现)。

我想做同样的事情,但在我的数据集的“非聚合”版本中,这是使用相同 6 个特征的 ~1b 数据点

我知道这对 K-means 来说是一项非常繁重的任务,数据点的数量太大了,尽管维度的大小非常小。

除了 mini batch K-means 之外,还有其他算法可以帮助我完成这项任务吗?

1个回答

我不知道是否有其他聚类方法可以处理这么多的数据,但是对于 K-means,我建议这样做:

  1. 使用随机选取的不同数量的实例运行 K-means,并根据数据大小研究质心之间有多少变化(您也可以研究不同随机样本之间的变化)。我希望质心在数据大小方面会很快稳定下来:假设质心随着数据大小 N 变得稳定,那么使用更多数据运行完整的 K-means 过程是没有意义的。
  2. 获得具有 N 个数据点(质心)的模型后,该模型可以应用于所有剩余的数据点,以找到它们属于哪个集群。

这比在整个数据上运行 K-means 过程效率更高,因为在第二阶段质心是固定的,算法不必迭代更新它们。