SciPy - fcluster() 方法

SciPy fcluster() 方法是 层次聚类 的一部分,它借助 无监督机器学习 识别聚类(链接矩阵)的类别。

以下是此方法的一些实际用途 −

  • 它识别客户细分。
  • 最流行的是遗传聚类,它用于医疗保健领域定义其遗传相似性。
  • 它根据人口统计区域识别图像的相似性。

语法

以下是 SciPy fcluster() 方法的语法 −

fcluster(Z, t, criterion)

参数

此方法接受以下参数 −

  • Z:定义链接矩阵。
  • t:此参数定义可以请求的聚类数量。
  • criterion:该参数用于定义平面聚类的类型,例如距离、不一致和最大距离。所有这些聚类都可以以字符串的形式编写。

返回值

此方法返回 n 维数组。

示例 1

以下是说明 fcluster() 方法用法的基本示例。

from scipy.cluster.hierarchy import linkage, fcluster
import numpy as np

data = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [1, 0]])
Z = linkage(data, 'ward')
clusters = fcluster(Z, t=10, criterion='distance')
print(clusters)

输出

上述代码产生以下结果 −

[1 1 1 1 1]

示例 2

此程序指定确切的簇数,即 t = 3,并将 maxclust 设置为将给定数据划分为确切的 3 个簇的标准。

from scipy.cluster.hierarchy import linkage, fcluster
import numpy as np

data = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [1, 0]])
Z = linkage(data, 'ward')
res_cluster = fcluster(Z, t=3, criterion='maxclust')
print(res_cluster)

输出

上述代码产生以下结果 −

[1 2 2 3 1]

示例 3

下面的程序将值 'inconsistent' 设置为 fcluster() 方法中的标准,此用法定义了矩阵的不一致性。因此,这可以识别出与值不一致程度较小的簇。

from scipy.cluster.hierarchy import linkage, fcluster, inconsistent
import numpy as np

data = np.array([[11, 12], [13, 14], [15, 16], [17, 18], [11, 10]])
Z = linkage(data, 'ward')
R = inconsistent(Z)
res_cluster = fcluster(Z, t=1.15, criterion='inconsistent')
print(res_cluster)

输出

上述代码产生以下结果 −

[1 1 1 1 1]

scipy_reference.html