AgglomerativeClustering#
- class sklearn.cluster.AgglomerativeClustering(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', distance_threshold=None, compute_distances=False)#
凝聚聚类。
递归地合并样本数据的对簇;使用链接距离。
更多信息请参阅 用户指南 。
- Parameters:
- n_clustersint 或 None, 默认=2
要找到的簇的数量。如果
distance_threshold
不是None
,则必须为None
。- metricstr 或 callable, 默认=”euclidean”
用于计算链接的度量。可以是 “euclidean”, “l1”, “l2”, “manhattan”, “cosine” 或 “precomputed”。如果链接是 “ward”,则只接受 “euclidean”。如果为 “precomputed”,则需要为 fit 方法输入一个距离矩阵。
Added in version 1.2.
Deprecated since version 1.4:
metric=None
在 1.4 中已弃用,并将在 1.6 中移除。请将metric
设为默认值(即"euclidean"
)。- memorystr 或具有 joblib.Memory 接口的对象, 默认=None
用于缓存树的计算输出的对象。默认情况下,不进行缓存。如果给定一个字符串,则是缓存目录的路径。
- connectivityarray-like, sparse matrix 或 callable, 默认=None
连接矩阵。定义每个样本的邻近样本,遵循数据的给定结构。这可以是一个连接矩阵本身,或一个将数据转换为连接矩阵的可调用对象,例如从
kneighbors_graph
派生的。默认是None
,即层次聚类算法是无结构的。有关使用
kneighbors_graph
的连接矩阵示例,请参见 带有和不带有结构的凝聚聚类 。- 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’ 最小化正在合并的簇的方差。
‘average’ 使用两组中每个观察的平均距离。
‘complete’ 或 ‘maximum’ 链接使用两组中所有观察之间的最大距离。
‘single’ 使用两组中所有观察之间的最小距离。
Added in version 0.20: 添加了 ‘single’ 选项
有关比较不同
linkage
标准的示例,请参见 对比不同层次聚类方法在玩具数据集上的表现 。- distance_thresholdfloat, 默认=None
链接距离阈值,在此阈值或以上,簇将不会合并。如果
None
,则n_clusters
必须为None
,且compute_full_tree
必须为True
。Added in version 0.21.
- compute_distancesbool, 默认=False
即使不使用
distance_threshold
,也计算簇之间的距离。这可以用于树状图可视化,但会引入计算和内存开销。Added in version 0.24.
有关树状图可视化的示例,请参见 绘制层次聚类树状图 。
- Attributes:
- n_clusters_int
算法找到的簇的数量。如果
distance_threshold=None
,则等于给定的n_clusters
。- labels_ndarray of shape (n_samples)
每个点的簇标签。
- n_leaves_int
层次树中的叶子数量。
- n_connected_components_int
图中估计的连接组件数量。
Added in version 0.21:
n_connected_components_
被添加以替换n_components_
。- n_features_in_int
fit 期间看到的特征数量。
Added in version 0.24.
- feature_names_in_ndarray of shape (
n_features_in_
,) fit 期间看到的特征名称。仅当
X
的特征名称均为字符串时定义。Added in version 1.0.
- children_array-like of shape (n_samples-1, 2)
每个非叶节点的子节点。值小于
n_samples
对应于树的叶子,即原始样本。节点i
大于或等于n_samples
是非叶节点,其子节点为children_[i - n_samples]
。或者在第 i 次迭代中,children[i][0] 和 children[i][1] 被合并以形成节点n_samples + i
。- distances_array-like of shape (n_nodes-1,)
children_
中相应位置的节点之间的距离。仅当使用distance_threshold
或compute_distances
设置为True
时计算。
See also
FeatureAgglomeration
凝聚聚类,但针对特征而非样本。
ward_tree
使用 ward 链接的层次聚类。
Examples
>>> from sklearn.cluster import AgglomerativeClustering >>> import numpy as np >>> X = np.array([[1, 2], [1, 4], [1, 0], ... [4, 2], [4, 4], [4, 0]]) >>> clustering = AgglomerativeClustering().fit(X) >>> clustering AgglomerativeClustering() >>> clustering.labels_ array([1, 1, 1, 0, 0, 0])
- fit(X, y=None)#
拟合从特征或距离矩阵得到的层次聚类。
- Parameters:
- Xarray-like, shape (n_samples, n_features) 或 (n_samples, n_samples)
要聚类的训练实例,或者如果
metric='precomputed'
,则为实例之间的距离。- y忽略
未使用,此处存在是为了通过约定保持API一致性。
- Returns:
- selfobject
返回已拟合的实例。
- fit_predict(X, y=None)#
拟合并返回每个样本的聚类分配结果。
除了拟合之外,该方法还返回训练集中每个样本的聚类分配结果。
- Parameters:
- X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的类数组
要聚类的训练实例,或者如果
affinity='precomputed'
,则为实例之间的距离。- y忽略
未使用,此处存在是为了通过约定保持API一致性。
- Returns:
- labels形状为 (n_samples,) 的 ndarray
聚类标签。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。