假设我们有四个观察结果,scipy.cluster.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.cluster.hierarchy.fcluster返回3 , 1,2,1。当然,我可以编写python代码来分析链接返回的二维数组,但是我认为如果我将阈值设置为0.4,f群集函数可以返回我想要的结果。但是,我不知道如何为它提供参数,所以我想知道您是否可以提供一些示例代码来使用linkage
进行分层聚类,并给出使用fcluster
进行分层聚类的最终结果,并将观察分组在一个由集合表示的集群中。谢谢。
发布于 2013-12-01 13:25:04
fcluster
将inconsistent
作为标准参数供标准选择。以distance
为参数,取连接矩阵Z[:,2]
的对应距离。如果您想要指定集群的数量,可以只使用maxclust
作为标准。如果您使用单个链接进行聚类,则可能有些集群是单个的(离群点)。帮助(f群集)提供了关于如何使用该函数的所需信息,文档也是如此。
https://stackoverflow.com/questions/20011627
复制相似问题