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’ 标准,

这将是请求的最大聚类数。

criterionstr,可选

指定形成平面聚类的标准。有效值是 ‘inconsistent’ (默认)、‘distance’ 或 ‘maxclust’ 聚类形成算法。有关说明,请参阅 fcluster

metricstr 或 函数,可选

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

depthint,可选

不一致性计算的最大深度。有关更多信息,请参阅 inconsistent

methodstr,可选

要使用的链接方法(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 和默认设置)的输出是四个聚类,每个聚类包含三个数据点。