Algorithm 延迟选择k的有效kNN图构造

Algorithm 延迟选择k的有效kNN图构造,algorithm,levenshtein-distance,knn,Algorithm,Levenshtein Distance,Knn,使用Levenshtein距离作为度量,我想为一大组字符串中的所有元素找到精确的k-最近邻,但我还不确定k的值需要多高。是否有一种算法或数据结构允许我推迟选择,并逐渐增加k,而不会在计算k的较高值时产生显著的效率成本?如果可能的话,我希望能够灵活地为不同的元素使用不同的k值 我有很多可以使用的数据集,但我想使用一个包含500000个字符串的数据集,每个字符串大约100个字符,这会使接近距离函数的O(N^2)调用的方法花费太长时间 我曾尝试使用GNAT,但发现knn查询有点太慢(通常每个元素接近N

使用Levenshtein距离作为度量,我想为一大组字符串中的所有元素找到精确的k-最近邻,但我还不确定k的值需要多高。是否有一种算法或数据结构允许我推迟选择,并逐渐增加k,而不会在计算k的较高值时产生显著的效率成本?如果可能的话,我希望能够灵活地为不同的元素使用不同的k值

我有很多可以使用的数据集,但我想使用一个包含500000个字符串的数据集,每个字符串大约100个字符,这会使接近距离函数的O(N^2)调用的方法花费太长时间


我曾尝试使用GNAT,但发现knn查询有点太慢(通常每个元素接近N个距离函数调用)。

您希望需要的
k
的最大值是多少?正如我希望暗示的,我不确定!作为一种暗箭伤人的做法,5设定最大值
k=20
,我认为最好的方法是首先使用最大值
k
进行计算。数据存储要求是每个字符串大约80字节,总共40MB,用于存储20个邻居中每个邻居的ID和距离。我不太关心空间/内存(否则我不会使用GNAT);问题在于时间的复杂性。