【问题标题】:Order Preserving Hierarchical Agglomerative Clustering - Python顺序保持分层凝聚聚类 - Python
【发布时间】:2022-01-01 06:08:12
【问题描述】:

是否有任何可用的分层凝聚聚类实现(在 Python 中)可以保留数据点的顺序?例如,我想要这样的输出。

(((seg1, seg2), (seg3, seg4)), seg5)

但不是这样

(((seg1, seg5), (seg2, seg3)), seg4)

例如,实际输出与现有实现

预期输出(任何实现?)

【问题讨论】:

  • 你知道这会弄乱聚类图吗?例如,Segment1Segment14 将被分开放置,即使它们在层次上很接近。 可能有办法以这种方式呈现数据,但至少可以说生成的图表会令人困惑。
  • @jfaccioni,上图是一个例子。我有一本小说(书),我喜欢根据一些条件将它按顺序分段。之后,我想根据相似性对连续的段进行分组,我不想对不连续的段进行分组。

标签: python hierarchical-clustering


【解决方案1】:

Vijaya,据我所知,只有一个公共图书馆可以保留层次聚类 (ophac),但如果您的数据完全有序,那么它只会返回一个微不足道的层次结构(这些部分就是这种情况)一本书)。

有一种理论可以为您的答案提供理论上的答复,但目前不存在行业强度的算法:https://arxiv.org/abs/2109.04266。我有一个这个理论的实现,最多可以处理 20 个元素,所以如果这很有趣,请给我一个提示,我会分享代码。

【讨论】:

  • 谢谢丹尼尔提供的信息。是的,我已经看到并尝试使用“ophac”库。它不适用于我的数据集。我也看过你提到的那篇论文。在看论文之前,我有同样的直觉;但是,我没有实现它。如果你能分享你的代码,那就太好了。我可以从那里为我的数据集工作。
  • 我公开了以下 repo:bitbucket.org/Bakkelund/wophac_benchmark/src/master 实现集群的方法是文件 whophac_approx.py 中的“层次结构”方法。这是正在进行的工作,而且,我必须承认,目前对用户不太友好。您可以在 src/comparative_analysis.run_wophac(...) 中看到使用此方法的示例。在此方法中,输出被转换为与 ophac 方法相同类型的输出。
  • 感谢 Daniel 分享您的代码。我去看看。
猜你喜欢
  • 2013-06-09
  • 2020-11-30
  • 2014-06-28
  • 2017-10-24
  • 1970-01-01
  • 2021-07-21
  • 2016-09-06
  • 2018-04-10
  • 2021-10-04
相关资源
最近更新 更多