scipy.cluster.hierarchy.
fclusterdata#
- scipy.cluster.hierarchy.fclusterdata(X, t, criterion='inconsistent', metric='euclidean', depth=2, method='single', R=None)[source]#
使用给定度量对观测数据进行聚类。
对 n×m 数据矩阵 X 中的原始观测值进行聚类(n 个观测值在 m 维中),使用欧几里得距离度量来计算原始观测值之间的距离,使用单链接算法执行层次聚类,并使用不一致方法(以 t 作为截止阈值)形成扁平聚类。
返回一个长度为
n
的 1-D 数组T
。T[i]
是原始观测值i
所属的扁平聚类的索引。- 参数::
- X(N, M) ndarray
N×M 数据矩阵,其中 N 个观测值在 M 维中。
- t标量
- 对于标准“不一致”、“距离”或“单标准”,
这是形成扁平聚类时要应用的阈值。
- 对于“最大聚类”或“最大聚类_单标准”标准,
这将是请求的最大聚类数。
- criterion字符串,可选
指定形成扁平聚类的标准。有效值为“不一致”(默认)、“距离”或“最大聚类”聚类形成算法。有关描述,请参阅
fcluster
。- metric字符串或函数,可选
用于计算成对距离的距离度量。有关描述和链接以验证与链接方法的兼容性,请参阅
distance.pdist
。- depth整数,可选
不一致计算的最大深度。有关更多信息,请参阅
inconsistent
。- method字符串,可选
要使用的链接方法(单链接、完全链接、平均链接、加权链接、中位数重心、ward)。有关更多信息,请参阅
linkage
。默认值为“单链接”。- 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
和默认设置)是四个聚类,每个聚类包含三个数据点。