当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn Birch用法及代码示例


本文简要介绍python语言中 sklearn.cluster.Birch 的用法。

用法:

class sklearn.cluster.Birch(*, threshold=0.5, branching_factor=50, n_clusters=3, compute_labels=True, copy=True)

实现 BIRCH 聚类算法。

它是一种节省内存的 online-learning 算法,作为 MiniBatchKMeans 的替代方案提供。它构造了一个树形数据结构,其中簇中心从叶子中读取。这些可以是最终的聚类质心,也可以作为其他聚类算法的输入,例如 AgglomerativeClustering

在用户指南中阅读更多信息。

参数

threshold浮点数,默认=0.5

将新样本与最近的子簇合并得到的子簇的半径应小于阈值。否则将启动一个新的子集群。将此值设置为非常低会促进拆分,反之亦然。

branching_factor整数,默认=50

每个节点中的最大 CF 子集群数。如果一个新样本进入,使得子集群的数量超过branching_factor,则该节点将被拆分为两个节点,每个节点都重新分配了子集群。删除该节点的父子集群,并添加两个新子集群作为 2 个拆分节点的父节点。

n_clustersint,sklearn.cluster模型的实例,默认=3

最终聚类步骤后的聚类数,它将叶子中的子聚类视为新样本。

  • None :不执行最后的聚类步骤,子聚类按原样返回。
  • sklearn.cluster Estimator :如果提供了模型,则该模型适合将子集群视为新样本,并且将初始数据映射到最近的子集群的标签。
  • int :模型拟合为 AgglomerativeClustering ,其中 n_clusters 设置为等于 int。
compute_labels布尔,默认=真

是否为每个拟合计算标签。

copy布尔,默认=真

是否复制给定数据。如果设置为 False,初始数据将被覆盖。

属性

root__CFNode

CFTree 的根。

dummy_leaf__CFNode

开始指向所有叶子的指针。

subcluster_centers_ndarray

所有子簇的质心直接从叶子中读取。

subcluster_labels_ndarray

在全局聚类后分配给子聚类质心的标签。

labels_ndarray 形状 (n_samples,)

分配给输入数据的标签数组。如果使用 partial_fit 而不是 fit,则将它们分配给最后一批数据。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

树数据结构由节点组成,每个节点由许多子集群组成。一个节点中的最大子簇数由分支因子决定。每个子集群维护一个线性和、平方和以及该子集群中的样本数。此外,如果子集群不是叶节点的成员,每个子集群也可以有一个节点作为其子节点。

对于进入根的新点,将其与最接近它的子簇合并,并更新该子簇的线性和、平方和和样本数。这是递归完成的,直到叶节点的属性被更新。

参考

例子

>>> 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])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.cluster.Birch。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。