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’ 标准,
这将是请求的最大聚类数。
- 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 所属的平面聚类编号。
另请参阅
备注
此函数类似于 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
和默认设置)的输出是四个聚类,每个聚类包含三个数据点。