使用 UMAP 对二进制稀疏数据进行降维的最佳度量和超参数

数据挖掘 降维 二进制
2022-02-11 22:01:24

在聚类一个包含近 3000 列和 50k 行的相当大的稀疏二进制矩阵之前,我正在使用降维步骤。

我的想法是使用 UMAP 将 3000 个维度嵌入到一个二维空间中,然后使用 HDBScan 对生成的 50,000 个二维点进行聚类。

我发现 UMAP 接受许多选项,例如metricn_neighbors但我不知道什么应该是给我不同集群的最佳组合。对于在大多数情况下最有效的二进制数据,是否有任何关于使用 UMAP 降维的建议或最佳实践,或者我是否希望在找不到合适的组合之前使用参数?min_distspread

1个回答

第一步是随机抽取约 3000 行样本,以便在考虑整个数据集之前尝试多个选项并快速找到好的选项。

注意:在大多数情况下,如果你有一个自然分布,一个随机样本就可以很好地代表它的整个数据集,即使它是 5%。

那么最具代表性的选项是“n_neighbors”,因为它会计算相关点的密度:非常低的值(例如:2)将具有非常集中的集群,而非常高的值(例如:200)将具有非常稀疏的集群集群。在对您的样本进行几次尝试之后,最佳值将介于两者之间(可能是 50 或 100)。

“min_dist”是低维点之间的最小距离,一般来说,如果你想要清晰的簇,它应该是0.0。

二进制数据的“度量”如下:

  • 汉明
  • 杰卡德
  • 骰子
  • 罗素劳
  • 库尔辛斯基
  • 罗杰斯坦尼本
  • 索卡尔米切纳
  • 索卡尔斯尼思
  • 圣诞节

最佳选择取决于您的业务领域。汉明总体上效果很好。

您还可以在此网站上使用不同的参数:https ://pair-code.github.io/understanding-umap/