kNN中点的最远点

时间:2018-12-10 09:59:18

标签: python machine-learning scikit-learn knn

kNN classifier的文档中,有一种方法kneighbors,该方法返回k个最近的邻居。我对如何优雅地返回此类分类器中k个最远的邻居感兴趣?

2 个答案:

答案 0 :(得分:2)

不,没有这样的功能。

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

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

答案 1 :(得分:0)

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

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

另一个选择可能是CoverTree,我认为Hjaltason / Samet的算法无法在其中运行,但是您不必搜索整个树。

如果您确实必须使用scikit-learn,我也不确定scikit-learn提供哪些选项。