在kNN classifier的文档中,有一种方法kneighbors
,该方法返回k个最近的邻居。我对如何优雅地返回此类分类器中k个最远的邻居感兴趣?
答案 0 :(得分:2)
不,没有这样的功能。
您需要记住,为了提高性能,将有一棵树来获取最近的邻居。试图找到最远的距离意味着要遍历整棵树,基本上是计算所有距离。
因此,在这种情况下不要使用kNN,只需计算距离并对它们进行排序即可。
答案 1 :(得分:0)
可以轻松修改许多空间索引(四叉树,R树),以支持最远的邻居查询。 here描述了一种常见的算法(请参见第4.5节)。但是,大多数都不是开箱即用的。
如果您使用的是kd树,那么,正如另一位发帖人所说,可能无法有效地做到这一点。
另一个选择可能是CoverTree,我认为Hjaltason / Samet的算法无法在其中运行,但是您不必搜索整个树。
如果您确实必须使用scikit-learn,我也不确定scikit-learn提供哪些选项。