【发布时间】:2021-10-26 20:14:52
【问题描述】:
可以说,我有这种类型的层次聚类,如下图所示。要获得聚类标签,我需要定义适当的阈值距离。例如,如果我将阈值设置为 0.32,我可能会得到 3 个集群,如果我设置为 3.5 左右,我会从下图中得到 2 个集群。
我想根据它们的合并顺序获取聚类标签,而不是使用阈值并使用一些固定距离。
我想根据它们的合并来定义聚类;比如第一次合并,第二次合并等等。
例如,在这里我想获得聚类标签,当它们至少第一次合并时,那将是 3 个聚类;
cluster1: p1
cluster2: p3 and p4
cluster3: p2 and p5.
如果我在这里设置,则在至少发生第二次合并时找到聚类。 在这种情况下,我将有 2 个集群,例如:
cluster1: p1
cluster2 = p3, p4, p2 and p5.
scipy 是否有内置方法来提取此类信息。如果没有,有什么方法可以从hierarchical clustering 中提取此类信息?任何建议都会很棒。
示例:
这个想法是,我不想硬编码任何阈值限制来定义集群的数量,而是根据它们的合并顺序找到集群。例如,如果存在 p1、p2 和 p3,并且在一种情况下,p1 和 p2 在 0.32 处属于同一个簇,另一种情况下,为 p1、p2 和 p3 添加更多数据,现在它们可能属于同一个簇,但距离为它们的集群的合并可能已经改变。这样,p1 和 p2 仍然在同一个集群中。所以,这里定义聚类的距离阈值是无关紧要的
【问题讨论】:
-
你需要使用'scipy'吗?
-
@wundermahn 不,我不必使用 scipy。如果他们有这个功能,我也可以使用其他库
标签: python scipy hierarchical-clustering unsupervised-learning