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

Machine learning 如何减少降维后的位置变化?,machine-learning,scikit-learn,data-visualization,dimensionality-reduction,Machine Learning,Scikit Learn,Data Visualization,Dimensionality Reduction,免责声明:我是机器学习初学者 我正在将高维数据(文本作为tdidf向量)可视化到2D空间。我的目标是标记/修改这些数据点,并在修改和更新2D绘图后重新计算其位置。逻辑已经起作用了,但是每次迭代可视化都与前一次非常不同,尽管在一个数据点中28.000个特征中只有1个发生了变化 有关该项目的一些细节: 约1000个文本文档/数据点 约28.000 tfidf矢量特征 由于其交互性质,必须非常快速地进行计算(比方说

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

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

有关该项目的一些细节:

  • 约1000个文本文档/数据点
  • 约28.000 tfidf矢量特征
  • 由于其交互性质,必须非常快速地进行计算(比方说<3s)
以下是两张图片来说明问题:

步骤1

步骤2

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

略读一些研究论文,我发现这篇论文有一个类似的问题(高维中的小变化导致2D中的大变化): 总之,他们使用t-sne以第一步的结果初始化每个迭代步骤

第一:我将如何在实际代码中实现这一点?这是否与tsne的随机状态有关

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

或者,对于这个问题,有没有更好的解决方案