UMAP对HDBScan聚类的结果可以更加一致吗?

问题描述 投票:0回答:1

我有一组约 40K 的短语,在使用 UMAP 进行降维后,我使用 HDBScan 对它们进行聚类。步骤是:

  1. 使用微调的 BERT 模型生成嵌入
  2. 使用 UMAP 减少尺寸
  3. 使用 HDBScan 进行集群

我发现有时 HDBScan 会找到 100-200 个簇,这是期望的结果。但其他时候,它只能找到 2-4 个。这是使用相同的数据集,并且 UMAP 或 HDBScan 的参数没有变化。

UMAP 文档 我看到 UMAP 是一种随机算法,因此不应期望完全再现性。但它也说“理想情况下,运行之间的差异应该相对较小”,但这里的情况并非如此。而且,方差似乎是双峰的——我要么得到 2-4 个簇,要么得到 100 个以上,中间没有任何东西。

我尝试了 UMAP (n_components: 3, 4, 6, 10; min_dist: 0.0, 0.1, 0.3, 0.5; n_neighbors: 15, 30) 和 HDBScan (min_cluster_size: 50, 100, 200) 的不同参数值但到目前为止,对于所有组合,我仍然偶尔会得到不想要的 2-4 个簇。

为什么 UMAP 会这样,我如何确保它产生所需的 100 多个簇而不是 2-4 个?

python cluster-analysis dimensionality-reduction hdbscan runumap
1个回答
0
投票

除非我们看到一些可以重现的数据(例如嵌入的张量),否则我们只能给出有根据的猜测。

首先,我建议在嵌入文本(BERT 的输出)上使用可视化工具绘制几次 UMAP 运行。请注意,40k 绝对是“可绘制的”,请参阅链接的教程。

其次,可能存在一些不明显的数据问题导致UMAP不太稳定。其中一个问题是存在许多重复项(例如,在分析口语短语时多次发生)。另一种可能是由于可能处于实验阶段的GPU 加速实现(基于最近的研究论文,尚未得到充分验证)。

© www.soinside.com 2019 - 2024. All rights reserved.