小批量K-均值(Mini Batch K-Means)是一种K-Means聚类算法的变种,它旨在处理大规模数据集时降低计算成本和提高效率

传统K-Means算法需要在每一轮迭代中遍历整个数据集,这在数据量巨大时是非常耗时的。

Mini Batch K-Means通过每次仅使用数据集的一个小随机子集(即“mini batch”)来更新聚类中心,从而显著减少了计算时间。

Mini Batch K-Means的基本流程:

  1. 初始化:随机选择 k 个数据点作为初始聚类中心。
  2. 采样:从数据集中随机抽取一个小批量数据子集。
  3. 分配:将这批数据点分配给最近的聚类中心。
  4. 更新中心根据这批数据点,更新聚类中心的位置。
  5. 重复步骤2至4,直到满足停止条件(例如,达到预定的迭代次数或聚类中心的变化低于某个阈值)。

涉及到的公式:

更新聚类中心

在Mini Batch K-Means中,聚类中心的更新是基于当前批次数据点的。

  • mmm 为当前批次中属于簇 iii数据点数量
  • bib_ibi 为属于簇 iii 的当前批次数据点的集合
  • cic_ici为簇 iii当前中心位置
  • nin_ini 为到目前为止分配给簇 iii总数据点数量(包括当前批次)。
    更新公式如下:

ci:=(1−mni+m)ci+mni+mbˉi c_i := \left(1 - \frac{m}{n_i + m}\right) c_i + \frac{m}{n_i + m} \bar{b}_i ci:=(1ni+mm)ci+ni+mmbˉi

这里:

  • cic_ici:簇 iii中心位置。
  • mmm:当前批次中属于簇 iii数据点数量。
  • nin_ini:到目前为止分配给簇 iii总数据点数量
  • bˉi\bar{b}_ibˉi:当前批次中属于簇 iii数据点的平均位置。
对公式的每个字符进行解释:
  • cic_ici:簇iii的中心位置。
  • mmm:当前批次中属于簇iii的数据点数量。
  • nin_ini:到目前为止分配给簇iii的总数据点数量。
  • bˉi\bar{b}_ibˉi:当前批次中属于簇iii的数据点的平均位置,计算方式为这批数据点位置的算术平均。

Mini Batch K-Means的优缺点:

  • 优点:由于每次迭代只需要处理一小部分数据,所以算法的运行速度比标准K-Means快得多,特别适合处理大规模数据集。
  • 缺点:由于更新是基于小批量数据的,最终的聚类结果可能不如标准K-Means精确。此外,结果的稳定性也可能会因批次的不同而有所变化。

Mini Batch K-Means是一种有效的近似方法,能够在保持一定精度的同时,大幅提高处理大规模数据集时的效率。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐