关于scipy.cluster.hierarchy.fcluster的返回值和用法

use*_*994 2 hierarchical-clustering scipy

假设我们有四个观察值,scipy.cluster.hierarchy.linkage的返回值是:

[[ 1.          3.          0.08        2.        ]
 [ 2.          4.          0.28813559  3.        ]
 [ 0.          5.          1.          4.        ]]
Run Code Online (Sandbox Code Playgroud)

该返回值意味着:首先将观察1和3合并到新的簇4,然后将观察2添加到该新簇中以形成新的簇5.最后,观察0被聚类.由于我想获得两个集群{1,3,2}和{0},我期望返回值为[2,1,1,1],这意味着元素0属于集群2,其余集合为另一个集群.簇1,使用阈值0.4.但实际上scipy.cluster.hierarchy.fcluster返回[3 1,2,1].当然我可以编写python代码来自己分析链接返回的二维数组,但我认为如果我将阈值设置为0.4,fcluster函数可以返回我想要的.但是,我不知道如何为它提供参数,所以我想知道你是否可以提供一些示例代码来进行层次聚类,linkage并使用fcluster分组在由集合表示的聚类中的观察结果给出最终结果.谢谢.

emb*_*ert 5

fcluster具有inconsistent为标准来选择为标准的说法.使用distance作为参数,采取从联动矩阵同表象距离Z[:,2].maxclust如果要指定群集数,则可以仅将其用作标准.如果您使用单个链接进行聚类,则可能某些聚类是单例(异常值).帮助(fcluster)提供了有关如何使用该函数的所需信息,文档也是如此