在不每次重新计算树的情况下改变簇的数量

2024-09-26 22:13:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在python中使用sklearn,并尝试使用full_tree在一系列簇号(即N=2-9)上运行聚集聚类(Wards),而不必使用缓存为N的每个单独值重新计算树。这个问题在2016年的一篇旧帖子中得到了回答,但这个答案似乎已经不起作用了。参见(sklearn agglomerative clustering: dynamically updating the number of clusters)。 换句话说,在不同的N值上运行fit,而不是每次都重新聚类。但是,我们得到了语法错误,并且无法调用存储在缓存中的任何集群的标签。代码类似于:

x = AgglomerativeClustering(memory="mycachedir", compute_full_tree=True

但是x.fit_predict(inputDF{2})不适合内存访问命令的语法 有人知道在这种情况下从缓存中调用标签的语法吗?谢谢 另外,我是个新手,所以如果我不清楚的话,请提前道歉

2016年发布的试用解决方案(sklearn agglomerative clustering: dynamically updating the number of clusters

代码类似于:

x = AgglomerativeClustering(memory="mycachedir", compute_full_tree=True

但是x.fit_predict(inputDF{2})不适合内存访问命令的语法

我们希望在给定的数组输入上运行集群,并在一个范围内改变集群数量“N”时检索每个集群的标签,使用缓存,而不是每次都重新计算树


Tags: ofthetreenumber语法集群聚类标签
1条回答
网友
1楼 · 发布于 2024-09-26 22:13:06

sklearnapi非常适合这种情况

最好使用scipy的凝聚聚类。因为它包括两个步骤:建立连锁/树状图,然后从中提取一个平坦的聚类。第一步是O(n)³) 和沃德在一起,但我认为第二步只是O(n)。类似的方法也可以在ELKI中找到。但不幸的是,sklearn遵循这种源自分类的狭隘的“拟合-预测”观点,并且不支持这种两步方法

如果我没弄错的话,scipy中还有其他功能,但sklearn中没有。你看看

相关问题 更多 >

    热门问题