Algorithm 求最近向量的算法
我有一组向量。对于那个向量集中的向量,我想找到最接近这个向量的子集。什么算法可以做到这一点。使用向量之间的余弦相似性(),然后对它们进行排序。这类算法称为最近邻或K最近邻 如果向量的方向很重要的话,正如Excepiont所说的那样,它将起作用。如果向量表示空间中的位置,则表示空间中距离的任何度量都将起作用 例如:取每个维度的平方和差的平方根。这将为每个向量提供一个距离,然后根据该距离对向量集进行升序排序Algorithm 求最近向量的算法,algorithm,vector,cluster-analysis,Algorithm,Vector,Cluster Analysis,我有一组向量。对于那个向量集中的向量,我想找到最接近这个向量的子集。什么算法可以做到这一点。使用向量之间的余弦相似性(),然后对它们进行排序。这类算法称为最近邻或K最近邻 如果向量的方向很重要的话,正如Excepiont所说的那样,它将起作用。如果向量表示空间中的位置,则表示空间中距离的任何度量都将起作用 例如:取每个维度的平方和差的平方根。这将为每个向量提供一个距离,然后根据该距离对向量集进行升序排序 这个过程将在时间上是O(N)。如果这对您来说太慢,您可能需要查看一些常见的算法。如果您的问题
这个过程将在时间上是O(N)。如果这对您来说太慢,您可能需要查看一些常见的算法。如果您的问题与大量数据有关: 我在ddj.com上发布了一个相关算法,可以找到离给定点最近的直线: 您必须通过将给定向量转换为多个点来修改此算法。这将大大减少可能匹配的数量。然后,必须通过以下方式检查每个可能匹配的精确匹配:
- 找到两个向量的切割点或
- 获取从矢量起点和终点到可能匹配点的距离,如本文所述