Python 有没有办法找到数组中n个最远的向量?

Python 有没有办法找到数组中n个最远的向量?,python,vector,cluster-analysis,doc2vec,dimensionality-reduction,Python,Vector,Cluster Analysis,Doc2vec,Dimensionality Reduction,我有一个包含数千个90维doc2vec向量的数组。就我目前的目的而言,我想找到一种方法来“采样”这个向量空间的不同区域,以了解语料库的多样性。例如,我想将我的空间划分为n个区域,并为每个区域获取最相关的单词向量 我尝试过使用hdbscan进行聚类(在使用UMAP降低维度之后),以在向量空间的自然关节处雕刻向量空间,但效果并不理想 所以现在我想知道是否有一种方法可以对空间中的“遥远区域”进行采样(n个彼此距离最远的向量) 这是一个好策略吗 我怎么能这样做 非常感谢 来自所有向量的随机样本不一定会遇

我有一个包含数千个90维doc2vec向量的数组。就我目前的目的而言,我想找到一种方法来“采样”这个向量空间的不同区域,以了解语料库的多样性。例如,我想将我的空间划分为n个区域,并为每个区域获取最相关的单词向量

我尝试过使用hdbscan进行聚类(在使用UMAP降低维度之后),以在向量空间的自然关节处雕刻向量空间,但效果并不理想

所以现在我想知道是否有一种方法可以对空间中的“遥远区域”进行采样(n个彼此距离最远的向量)

  • 这是一个好策略吗
  • 我怎么能这样做

  • 非常感谢

    来自所有向量的随机样本不一定会遇到集合中的任何不同“区域”吗

    如果文档有“自然关节”和簇,一些聚类算法应该能够找到N个簇,那么每个簇的质心到其他簇的质心之间的较小数量的NxN距离可能会识别出那些“最远”的簇

    注意:对于任何向量,您可以使用
    Doc2Vec
    doc vectors
    most_similable()
    ,将
    topn
    值设置为
    0
    /false-ish,以获得与所有其他模型文档向量的(未排序)相似性。然后,您可以在该集合中找到最不相似的向量。如果您的数据集足够小,可以对文档向量的“全部”(或一些大样本)执行此操作,那么对于其他向量的数量最多、最不相似的“底部N”中出现的其他文档可能是最“遥远”的


    目前还不清楚数据中是否显示了这种“远”的想法,或者这种想法是否有用。(在高维空间中,任何事物都可能与其他事物相去甚远,这与我们的2d/3d直觉不符,而某些向量中稍微“远”一点的细微差异可能不符合有用的区别。)

    非常感谢gojomo,这非常有帮助。如果你不介意的话,我还有几个后续问题。我的模型有大约15000个文档,分别有40和90个维度。1.您认为在Doc2Vec模型中查找文档集群的最佳方法是什么?(a) 首先执行一些降维是否更好(如果是,umap是否比t-sne更好?)(b)哪种聚类算法最有效?当我用t-sne或umap降维时,我得到了一大堆没有清晰边界的文档。除了聚类之外,对语料库中讨论的主题进行抽样的最佳方式是什么?我的特定语料库包含对主观经验的描述,我想描绘出这些经验的“状态空间”,也就是说,了解语料库中描述的主观经验的多样性。对于这一点,我想知道我是否能得到n个均匀划分空间的向量,并得到每个向量最相似的词向量。我应该这样做吗?如果是这样,我会和gensim一起做吗?非常感谢您的帮助!我只使用
    Doc2Vec
    向量对已知标签进行了监督分类,而不是无监督聚类,因此不能推荐任何特定的聚类方法。许多文档应该可以工作,然后查看哪些文档在其他集群中有邻居可能会提供信息。您可能希望避免将任何簇向下折叠为单个质心,因为它可能隐藏高维关系的某些“形状”。在低维投影中看到“大团块”可能是特定投影/聚类的一个限制-这些聚类可能在其他方式中仍然有用,或者可以通过调整步骤来改进。非常感谢gojomo!最后,我在向量上使用了球形kmeans聚类(使用余弦距离),而没有进行降维。它实际上工作得很好,所以谢谢你!我会听从你关于质心的建议。