fclusterdata#
- scipy.cluster.hierarchy.fclusterdata(X, t, criterion='inconsistent', metric='euclidean', depth=2, method='single', R=None)[源代码][源代码]#
使用给定的度量标准对集群观测数据进行聚类。
将 n×m 数据矩阵 X 中的原始观测值(n 个观测值在 m 个维度中)进行聚类,使用欧几里得距离度量计算原始观测值之间的距离,使用单链接算法进行层次聚类,并使用不一致性方法形成平面聚类,其中 t 作为截止阈值。
返回一个长度为
n
的一维数组T
。T[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 所属的平面聚类编号。
参见
注释
此函数类似于 MATLAB 函数
clusterdata
。示例
>>> from scipy.cluster.hierarchy import fclusterdata
这是一个便捷方法,它抽象了在典型的 SciPy 层次聚类工作流程中需要执行的所有步骤。
使用
scipy.spatial.distance.pdist
将输入数据转换为压缩矩阵。应用一种聚类方法。
使用
scipy.cluster.hierarchy.fcluster
在用户定义的距离阈值t
处获取扁平簇。
>>> 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
,以及默认设置)是四个簇,每个簇包含三个数据点。