Birch#
- class sklearn.cluster.Birch(*, threshold=0.5, branching_factor=50, n_clusters=3, compute_labels=True, copy='deprecated')[source]#
- 实现了BIRCH聚类算法。 - 它是一个内存高效的在线学习算法,作为 - MiniBatchKMeans的替代方案。它构建一个树形数据结构,其中簇中心是从叶节点读取的。这些可以是最终的簇中心,也可以作为输入提供给其他聚类算法,例如- AgglomerativeClustering。- 更多信息请参见用户指南。 - 版本0.16中新增。 - 参数:
- thresholdfloat, default=0.5
- 通过合并新样本和最近的子簇获得的子簇的半径应小于阈值。否则,将启动一个新的子簇。将此值设置为非常低的值会促进分裂,反之亦然。 
- branching_factorint, default=50
- 每个节点中 CF 子簇的最大数量。如果一个新的样本进入导致子簇数量超过 branching_factor,则该节点将被分割成两个节点,子簇重新分配到每个节点中。该节点的父子簇将被移除,并添加两个新的子簇作为两个分割节点的父节点。 
- n_clustersint,sklearn.cluster 模型实例或 None,默认为 3
- 最终聚类步骤后的簇数量,该步骤将叶子节点的子簇视为新样本。 - None:不执行最终聚类步骤,直接返回子簇。
- sklearn.cluster估计器:如果提供了一个模型,则该模型将被拟合,并将子簇视为新样本,初始数据将被映射到最近子簇的标签。
- int:模型拟合为- AgglomerativeClustering,- n_clusters设置为该整数。
 
- compute_labelsbool,默认为 True
- 是否计算每次拟合的标签。 
- copybool,默认为 True
- 是否复制给定数据。如果设置为 False,则初始数据将被覆盖。 - 自版本 1.6 起已弃用: - copy在 1.6 中已弃用,将在 1.8 中移除。因为它对输入数据没有效果,因为估计器不对输入数据执行就地操作。
 
- 属性:
- root__CFNode
- CFTree 的根节点。 
- dummy_leaf__CFNode
- 所有叶子节点的起始指针。 
- subcluster_centers_ndarray
- 直接从叶子节点读取的所有子簇的质心。 
- subcluster_labels_ndarray
- 全局聚类后分配给子簇质心的标签。 
- labels_形状为 (n_samples,) 的 ndarray
- 分配给输入数据的标签数组。如果使用 partial_fit 而不是 fit,则将其分配给最后一批数据。 
- n_features_in_int
- 在 fit 期间看到的特征数量。 - 在 0.24 版本中添加。 
- feature_names_in_形状为 (n_features_in_,) 的 ndarray
- 在 fit 期间看到的特征名称。仅当 - X的特征名称全部为字符串时定义。- 在 1.0 版本中添加。 
 
 - 另见 - MiniBatchKMeans
- 使用小批量对中心位置进行增量更新的替代实现。 
 - 注释 - 树形数据结构由节点组成,每个节点包含多个子簇。节点中子簇的最大数量由分支因子决定。每个子簇维护线性总和、平方和以及该子簇中的样本数量。此外,如果子簇不是叶子节点的成员,则每个子簇也可以有节点作为其子节点。 - 对于进入根节点的新点,它将与与其最接近的子簇合并,并更新该子簇的线性总和、平方和以及样本数量。这将递归地进行,直到叶子节点的属性被更新。 - 参见 比较 BIRCH 和 MiniBatchKMeans,以了解与 - MiniBatchKMeans的比较。- 参考文献 - Tian Zhang, Raghu Ramakrishnan, Maron Livny BIRCH:一种用于大型数据库的高效数据聚类方法。 https://www.cs.sfu.ca/CourseCentral/459/han/papers/zhang96.pdf 
- Roberto Perdisci JBirch - BIRCH 聚类算法的 Java 实现 https://code.google.com/archive/p/jbirch 
 - 示例 - >>> 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]) - fit(X, y=None)[source]#
- 为输入数据构建 CF 树。 - 参数:
- X形状为 (n_samples, n_features) 的 {array-like,稀疏矩阵}
- 输入数据。 
- y忽略
- 未使用,出于 API 一致性约定而在此处显示。 
 
- 返回:
- self
- 拟合的估计器。 
 
 
 - fit_predict(X, y=None, **kwargs)[source]#
- 对 - X执行聚类并返回聚类标签。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 输入数据。 
- y忽略
- 未使用,出于 API 一致性约定而在此处显示。 
- **kwargsdict
- 要传递给 - fit的参数。- 在 1.4 版本中添加。 
 
- 返回:
- labels形状为 (n_samples,),dtype=np.int64 的 ndarray
- 聚类标签。 
 
 
 - fit_transform(X, y=None, **fit_params)[source]#
- 拟合数据,然后转换它。 - 使用可选参数 - fit_params将转换器拟合到- X和- y,并返回- X的转换版本。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 输入样本。 
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组,默认为 None
- 目标值(无监督转换则为 None)。 
- **fit_paramsdict
- 其他拟合参数。 
 
- 返回:
- X_new形状为 (n_samples, n_features_new) 的 ndarray 数组
- 转换后的数组。 
 
 
 - get_feature_names_out(input_features=None)[source]#
- 获取转换的输出特征名称。 - 输出的特征名称将以小写的类名作为前缀。例如,如果变换器输出3个特征,则输出的特征名称为: - ["class_name0", "class_name1", "class_name2"]。- 参数:
- input_features类似数组的 str 或 None,默认值=None
- 仅用于使用在 - fit中看到的名称验证特征名称。
 
- 返回:
- feature_names_outstr 对象的ndarray
- 变换后的特征名称。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南,了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool,默认值=True
- 如果为 True,则将返回此估计器和包含的作为估计器的子对象的参数。 
 
- 返回:
- paramsdict
- 参数名称与其值的映射。 
 
 
 - partial_fit(X=None, y=None)[source]#
- 在线学习。防止从头开始重建 CFTree。 - 参数:
- X形状为 (n_samples, n_features) 的{类似数组、稀疏矩阵},默认值=None
- 输入数据。如果未提供 X,则仅执行全局聚类步骤。 
- y忽略
- 未使用,出于 API 一致性约定而在此处显示。 
 
- 返回:
- self
- 拟合的估计器。 
 
 
 - predict(X)[source]#
- 使用子簇的 - centroids_预测数据。- 避免计算 X 的行范数。 - 参数:
- X形状为 (n_samples, n_features) 的 {array-like,稀疏矩阵}
- 输入数据。 
 
- 返回:
- labels形状为 (n_samples,) 的 ndarray
- 标记数据。 
 
 
 - set_output(*, transform=None)[source]#
- 设置输出容器。 - 查看介绍 set_output API,了解如何使用此 API。 - 参数:
- transform{"default", "pandas", "polars"},默认值=None
- 配置 - transform和- fit_transform的输出。- "default":变换器的默认输出格式
- "pandas":DataFrame 输出
- "polars":Polars 输出
- None:变换配置保持不变
 - 1.4 版中新增: - "polars"选项已添加。
 
- 返回:
- self估计器实例
- 估计器实例。 
 
 
 
 
     
