kNN中一个点的最远点



在kNN分类器的文档中,有一个方法kneighbors,它返回k个最近邻居。我感兴趣的是如何在这样的分类器中优雅地返回k个最远的邻居?

不,没有这样的功能。

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

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

许多空间索引(四叉树、R-Trees…(都可以轻松修改,以支持最远邻居查询。这里描述了一种常见的算法(见第4.5节(。然而,大多数算法并不支持开箱即用的算法。

如果你使用的是kd树,那么,正如另一位发帖者所说,可能不可能有效地做到这一点。

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

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

最新更新