Mini Batch K-means 聚类算法2025年6月21日 | 阅读 5 分钟 K-means 因其速度性能而成为最著名的聚类算法之一。随着待分析数据量的增加,K-means 的计算时间也随之增长,因为它有一个限制,即需要将整个数据集存储在内存中。这就是为什么提出了多种方法来降低该方法的时空成本。另一种可以使用的方法是Mini Batch K-means 算法。 Mini Batch K-means 算法的主要思想是利用固定大小的小型随机数据样本,这些样本可以存储在内存中。每次从数据集中抽取一个新的随机样本并用于更新聚类;此过程一直重复直到收敛。每个 mini-batch 使用原型和数据结果的近似组合来更新聚类,并使用随迭代次数减少的学习率。这个学习率与在整个过程中分配给聚类的数据量成反比。当迭代次数增加且新数据添加的影响减小时,当连续迭代中聚类没有发生变化时,观察到收敛。研究表明,该算法可以显著节省计算时间,但会以降低聚类质量为代价,但尚未对该方法进行广泛分析,以确定数据的特定特性(如聚类的大小或其规模)如何影响分区质量。 ![]() 每个数据批次根据聚类质心的先验位置分配给聚类。该算法每次都使用小而随机的数据部分。然后,它根据批次中的更新点更新聚类质心的位置。更新是梯度下降更新的一种,比标准的批量 K-Means 更新快得多。 算法以下是 Mini K-means 批处理使用的算法。 ![]() 说明 Mini Batch K-means 是一种使用微小的随机样本而不是完整数据集来更新聚类的方法。算法的工作方式如下:
实施使用 scikit-learn 库对上述算法的 Python 实现 代码 Mini-batch K-means 比普通批量 K-means 更快,但产生的结果略有不同。 在这种情况下,我们首先使用 K-means 对一组数据进行分组,然后使用 mini-batch K-means。然后我们显示结果。我们还绘制了这两种方法中具有不同标签的点。 ![]() 随着聚类数量和数据量的增加,计算时间也随之增加。只有在聚类数量很大的时候,计算节省才显现出来。批次大小对计算时间的影响在聚类数量较高时更为明显。可以得出结论,聚类数量的增加降低了 Mini-Batch K-Means 算法与 K-means 解决方案之间的相似度。同时,当聚类数量增加时,分区的协议会降低。然而,目标函数并没有以同样的方式减小。这意味着所有最终分区都会有所不同;然而,它们的质量更接近。 与 K-means 比较
实际用例Mini Batch K-means 用于各种领域,例如:
鉴于其有效处理大数据能力,它特别适合需要大型数据集的场景。该算法的快速和可扩展性使得能够对不断变化的数据流进行快速响应,以进行实时聚类作业。 参数调整技巧考虑调整聚类数量、学习率和最大迭代次数等参数,以最大化 Mini Batch K-means 的性能。尝试多种参数,以确定最适合您特定数据集和需求的参数。 结论Mini Batch K-means 聚类算法为传统 K-means 在大型数据集上遇到的计算难题提供了一个实用的解决方案。虽然它可能会带来略有不同的聚类结果,但其效率使其在大数据应用中非常重要。通过了解效率和聚类质量之间的权衡,专家可以利用 Mini Batch K-means 的强大功能来执行灵活且强大的数据聚类。 下一主题为什么对数在机器学习中如此重要 |
我们请求您订阅我们的新闻通讯以获取最新更新。