欢迎访问宙启技术站
智能推送

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')函数将连接矩阵切断并返回聚类簇标签。最后,输出标签结果。

从输出结果可以看出,属于同一聚类簇的数据点具有相同的标签。