kNN 中一个点的最远点

Furthest points of a point in kNN

kNN classifier, there is a method kneighbors 的文档中,returnk 个最近的邻居。我对如何优雅地 return k 个最远邻居感兴趣?

不行,没有这个能力

你需要记住,为了性能,会有一棵树来获得最近的邻居。试图找到最远的意味着遍历整棵树,基本上计算所有距离。

所以在这种情况下不要使用 kNN,只需计算距离并对它们进行排序。

可以轻松修改许多空间索引(四叉树、R 树...)以支持最远邻居查询。 here 描述了一种常见的算法(请参阅第 4.5 节)。但是,大多数不支持开箱即用。

如果您使用的是 kd-tree,那么,正如其他发帖人所说,可能无法有效地执行此操作。

另一个选项可能是 CoverTree,我认为 Hjaltason/Samet 的算法不会在那里起作用,但您不太可能必须搜索整棵树。

我也不确定 scikit-learn 提供了哪些选项,如果你真的必须使用它的话。