scipy.cluster.hierarchy.

fclusterdata#

scipy.cluster.hierarchy.fclusterdata(X, t, criterion='inconsistent', metric='euclidean', depth=2, method='single', R=None)[源代码][源代码]#

使用给定的度量标准对集群观测数据进行聚类。

将 n×m 数据矩阵 X 中的原始观测值(n 个观测值在 m 个维度中)进行聚类,使用欧几里得距离度量计算原始观测值之间的距离,使用单链接算法进行层次聚类,并使用不一致性方法形成平面聚类,其中 t 作为截止阈值。

返回一个长度为 n 的一维数组 TT[i] 是原始观测值 i 所属的扁平簇的索引。

参数:
X(N, M) ndarray

N 乘 M 的数据矩阵,其中包含 N 个观测值在 M 个维度中。

t标量
对于标准 ‘inconsistent’、’distance’ 或 ‘monocrit’,

这是在形成扁平簇时应用的阈值。

对于 ‘maxclust’ 或 ‘maxclust_monocrit’ 标准,

这将是请求的最大集群数量。

标准str, 可选

指定形成扁平簇的标准。有效值为 ‘inconsistent’(默认)、’distance’ 或 ‘maxclust’ 聚类形成算法。参见 fcluster 了解描述。

指标str 或 function,可选

用于计算成对距离的距离度量。有关描述和链接方法的兼容性验证,请参见 distance.pdist

深度int, 可选

不一致性计算的最大深度。更多信息请参见 inconsistent

方法str, 可选

要使用的链接方法(single, complete, average, weighted, median centroid, ward)。更多信息请参见 linkage。默认是 “single”。

Rndarray,可选

不一致矩阵。如果未传递,将在必要时计算。

返回:
fclusterdatandarray

长度为 n 的向量。T[i] 是原始观测值 i 所属的平面聚类编号。

参见

scipy.spatial.distance.pdist

成对距离度量

注释

此函数类似于 MATLAB 函数 clusterdata

示例

>>> from scipy.cluster.hierarchy import fclusterdata

这是一个便捷方法,它抽象了在典型的 SciPy 层次聚类工作流程中需要执行的所有步骤。

>>> X = [[0, 0], [0, 1], [1, 0],
...      [0, 4], [0, 3], [1, 4],
...      [4, 0], [3, 0], [4, 1],
...      [4, 4], [3, 4], [4, 3]]
>>> fclusterdata(X, t=1)
array([3, 3, 3, 4, 4, 4, 2, 2, 2, 1, 1, 1], dtype=int32)

这里的输出(对于数据集 X ,距离阈值 t ,以及默认设置)是四个簇,每个簇包含三个数据点。