BIRCH 聚类

什么是 BIRCH 聚类?

  • 一种用于大规模数据集的聚类算法。它通过构建聚类特征树(CF-tree)来有效地进行聚类,同时对内存使用进行了优化。BIRCH 特别适合于数据集无法全部装入内存的情况,因为它可以在磁盘和内存之间高效地移动数据
  • 为给定数据构建称为聚类特征树 (CFT) 的树。数据本质上是有损压缩到一组聚类特征节点(CF 节点)。CF 节点有许多子集群,称为聚类特征子集群(CF 子集群),这些位于非终端 CF 节点中的 CF 子集群可以将 CF 节点作为子节点
    1
    2
    3
    4
    5
    6
    7
     >>> from sklearn.cluster import Birch
    >>> X = [[0, 1], [0.3, 1], [-0.3, 1], [0, -1], [0.3, -1], [-0.3, -1]]
    >>> brc = Birch(n_clusters=None)
    >>> brc.fit(X)
    Birch(n_clusters=None)
    >>> brc.predict(X)
    array([0, 0, 0, 1, 1, 1])

BIRCH 与 MiniBatchKMeans 的差异?

  • BIRCH 不能很好地扩展到高维数据。根据经验,如果 大于 20,通常最好使用 MiniBatchKMeans
  • 如果需要减少数据实例的数量,或者如果需要大量子集群作为预处理步骤或其他方式,BIRCH 比 MiniBatchKMeans 更有用