降维后如何减少位置变化?

数据挖掘 数据 可视化 降维 特纳
2022-02-20 00:31:10

免责声明:我是机器学习初学者。

我正在将高维数据(文本作为 tdidf 向量)可视化到 2D 空间中。我的目标是标记/修改这些数据点并在修改和更新二维图后重新计算它们的位置。逻辑已经有效,但每次迭代可视化都与前一个非常不同,即使 1 个数据点中的 28.000 个特征中只有 1 个发生了变化。

关于该项目的一些细节:

  • ~1000 个文本文档/数据点
  • 每个约 28.000 个 tfidf 矢量特征
  • 由于其交互性,必须非常快速地计算(假设 < 3s)

这里有2张图片来说明问题:

第 1 步第1步

第 2 步第2步

我尝试了几种降维算法,包括 MDS、PCA、tsne、UMAP、LSI 和 Autoencoder。我使用 UMAP 获得了关于计算时间和视觉表示的最佳结果,所以我大部分时间都坚持使用它。

浏览一些研究论文,我发现这篇论文有类似的问题(高维度的小变化导致 2D 的大变化): https : //ieeexplore.ieee.org/document/7539329 总之,他们使用 t-sne 来初始化每个迭代步骤与第一步的结果。

第一:我将如何在实际代码中实现这一点?这和tsne有关random_state吗?

第二:是否可以将该策略应用于其他算法,如 UMAP?tsne 需要更长的时间,并且不适合交互式用例。

还是有一些我没有想到的更好的解决方案来解决这个问题?

1个回答

您可以使用一组自定义初始位置初始化 UMAP 嵌入,因此您可能可以使用步骤 1 中的嵌入初始化步骤 2(新点的随机位置)。