假设我们有四个观测值和scipy的返回值。集群。hierarchy.linkage是:

[[ 1.          3.          0.08        2.        ]
 [ 2.          4.          0.28813559  3.        ]
 [ 0.          5.          1.          4.        ]]

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

有帮助吗?

解决方案

fclusterinconsistent 作为标准参数的标准选择.使用方法 distance 作为参数,取联动矩阵的共面距离 Z[:,2].你可以用 maxclust 作为标准,如果你想指定集群的数量。如果您使用单个链接进行聚类,则可能有些聚类是单例(异常值)。帮助(fcluster)提供了有关如何使用该函数的所需信息, 文件

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top