特征聚合#
- class sklearn.cluster.FeatureAgglomeration(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', pooling_func=<function mean>, distance_threshold=None, compute_distances=False)[source]#
- 特征聚合。 - 递归地合并成对的特征簇。 - 参考 特征聚合与单变量选择 查看 - FeatureAgglomeration策略与基于ANOVA的单变量特征选择策略的示例比较。- 在 用户指南 中了解更多信息。 - 参数:
- n_clustersint 或 None,默认为2
- 要查找的簇数。如果 - distance_threshold不为- None,则必须为- None。
- metricstr 或 callable,默认为”euclidean“
- 用于计算连接的度量。可以是“euclidean”(欧几里得距离)、“l1”(曼哈顿距离)、“l2”(欧几里得距离的平方)、“manhattan”(曼哈顿距离)、“cosine”(余弦相似度)或“precomputed”(预计算)。如果linkage是“ward”,则只接受“euclidean”。如果为“precomputed”,则拟合方法需要距离矩阵作为输入。 - 1.2 版本新增。 
- memorystr 或具有 joblib.Memory 接口的对象,默认为 None
- 用于缓存树计算结果。默认情况下,不进行缓存。如果给定一个字符串,则表示缓存目录的路径。 
- connectivity类数组、稀疏矩阵或可调用对象,默认为 None
- 连接矩阵。为每个特征定义其相邻特征,遵循数据的给定结构。这可以是连接矩阵本身,也可以是将数据转换为连接矩阵的可调用对象,例如由 - kneighbors_graph派生而来。默认为- None,即层次聚类算法是无结构的。
- compute_full_tree‘auto’ 或 bool,默认为 ‘auto’
- 在 - n_clusters处提前停止树的构建。如果聚类数量与特征数量相比不大,这有助于减少计算时间。此选项仅在指定连接矩阵时才有用。另请注意,当改变聚类数量并使用缓存时,计算完整树可能更有优势。如果- distance_threshold不是- None,则必须为- True。默认情况下,- compute_full_tree为“auto”,当- distance_threshold不是- None或- n_clusters小于 100 和- 0.02 * n_samples之间的最大值时,它等效于- True。否则,“auto” 等效于- False。
- linkage{“ward”, “complete”, “average”, “single”},默认为 “ward”
- 使用哪种连接准则。连接准则决定了在特征集之间使用哪个距离。该算法将合并最小化此准则的聚类对。 - “ward”最小化被合并的聚类的方差。 
- “complete”或最大连接使用两组所有特征之间的最大距离。 
- “average”使用两组每个特征距离的平均值。 
- “single”使用两组所有特征之间距离的最小值。 
 
- pooling_func可调用对象,默认为 np.mean
- 这将聚合特征的值组合成单个值,并且应该接受形状为 [M, N] 的数组和关键字参数 - axis=1,并将其缩减为大小为 [M] 的数组。
- distance_threshold浮点数,默认为 None
- 聚类将不会合并的连接距离阈值。如果非 - None,则- n_clusters必须为- None,并且- compute_full_tree必须为- True。- 0.21 版本新增。 
- compute_distancesbool,默认为 False
- 即使不使用 - distance_threshold,也会计算聚类之间的距离。这可以用于制作树状图可视化,但会带来计算和内存开销。- 0.24 版本新增。 
 
- 属性:
- n_clusters_int
- 算法找到的聚类数量。如果 - distance_threshold=None,它将等于给定的- n_clusters。
- labels_形状为 (n_features,) 的类数组
- 每个特征的聚类标签。 
- n_leaves_int
- 层次树中的叶子数。 
- n_connected_components_int
- 图中连接组件的估计数量。 - 0.21 版本新增: - n_connected_components_已添加以替换- n_components_。
- n_features_in_int
- 在fit期间看到的特征数量。 - 0.24 版本新增。 
- feature_names_in_形状为 (n_features_in_,) 的 ndarray
- 在fit期间看到的特征名称。仅当 - X具有全部为字符串的特征名称时才定义。- 1.0 版本新增。 
- children_形状为 (n_nodes-1, 2) 的类数组
- 每个非叶节点的子节点。小于 - n_features的值对应于树的叶子,它们是原始样本。大于或等于- n_features的节点- i是非叶节点,其子节点为- children_[i - n_features]。或者,在第 i 次迭代中,children[i][0] 和 children[i][1] 合并以形成节点- n_features + i。
- distances_形状为 (n_nodes-1,) 的类数组
- 在 - children_中相应位置的节点之间的距离。仅当使用- distance_threshold或将- compute_distances设置为- True时才计算。
 
 - 另请参见 - AgglomerativeClustering
- 凝聚聚类样本而不是特征。 
- ward_tree
- 使用 ward 连接的层次聚类。 
 - 示例 - >>> import numpy as np >>> from sklearn import datasets, cluster >>> digits = datasets.load_digits() >>> images = digits.images >>> X = np.reshape(images, (len(images), -1)) >>> agglo = cluster.FeatureAgglomeration(n_clusters=32) >>> agglo.fit(X) FeatureAgglomeration(n_clusters=32) >>> X_reduced = agglo.transform(X) >>> X_reduced.shape (1797, 32) - fit(X, y=None)[source]#
- 在数据上拟合层次聚类。 - 参数:
- X形状为 (n_samples, n_features) 的类数组
- 数据。 
- y忽略
- 未使用,此处出于 API 一致性约定而存在。 
 
- 返回:
- self对象
- 返回转换器。 
 
 
 - property fit_predict#
- 拟合并返回每个样本聚类分配的结果。 
 - fit_transform(X, y=None, **fit_params)[source]#
- 拟合数据,然后转换它。 - 将变换器拟合到 - X和- y,使用可选参数- fit_params,并返回- 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字符串类数组或 None,默认为 None
- 仅用于使用在 - fit中看到的名称验证特征名称。
 
- 返回:
- feature_names_out字符串对象的 ndarray
- 变换后的特征名称。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看 用户指南,了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest封装路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool,默认为 True
- 如果为 True,则将返回此估计器及其包含的子对象(它们也是估计器)的参数。 
 
- 返回:
- paramsdict
- 参数名称与其值的映射。 
 
 
 - inverse_transform(X=None, *, Xt=None)[source]#
- 反转变换并返回大小为 - n_features的向量。- 参数:
- X形状为 (n_samples, n_clusters) 或 (n_clusters,) 的类数组
- 要分配给每个样本集群的值。 
- Xt形状为 (n_samples, n_clusters) 或 (n_clusters,) 的类数组
- 要分配给每个样本集群的值。 - 自版本 1.5 起已弃用: - Xt在 1.5 中已弃用,并将从 1.7 中移除。请改用- X。
 
- 返回:
- X形状为 (n_samples, n_features) 或 (n_features,) 的 ndarray
- 大小为 - n_samples的向量,其中包含分配给每个样本集群的- Xred值。
 
 
 - 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估计器实例
- 估计器实例。 
 
 
 
 
     
