我有一组约 40K 的短语,在使用 UMAP 进行降维后,我使用 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 个?