fcluster()函数的使用方法和参数解析
发布时间:2024-01-14 20:39:32
fcluster()函数是scipy.cluster中的一个函数,用于对层次聚类结果进行切断和提取聚类簇。它的使用方法和参数解析如下:
使用方法:
fcluster(z, t, criterion='inconsistent', depth=2, R=None, monocrit=None)
参数解析:
- z:一个层次聚类结果的连接矩阵,可以通过使用linkage()函数得到;
- t:一个阈值,用于切断树的连接;
- criterion:用于确定切断树连接的准则。可以设置为'inconsistent'、'distance'、'maxclust'、'monocrit',默认为'inconsistent'。
- depth:一个整数,用于指定在返回结果时返回层次树的哪一层。默认为2,表示返回最底部的分支。
- R:一个矩阵,用于指定聚类中心。
- monocrit:一个字符串或者可调用的函数,用于指定用于计算monotonicity的准则。
使用例子:
import numpy as np from scipy.cluster.hierarchy import linkage, fcluster # 生成一个随机数据集 np.random.seed(0) x = np.random.randn(10, 2) # 计算层次聚类结果的连接矩阵 z = linkage(x, 'ward') # 根据给定的阈值切断连接矩阵,并返回聚类簇标签 labels = fcluster(z, 2, criterion='maxclust') print(labels)
输出结果:
[1 2 2 2 1 1 2 1 1 2]
在上述例子中,我们首先使用numpy生成一个随机数据集x。然后,使用linkage(x, 'ward')计算层次聚类结果的连接矩阵z。接着,我们使用fcluster(z, 2, criterion='maxclust')函数将连接矩阵切断并返回聚类簇标签。最后,输出标签结果。
从输出结果可以看出,属于同一聚类簇的数据点具有相同的标签。
