Python kNN中点的最远点

Python kNN中点的最远点,python,machine-learning,scikit-learn,knn,Python,Machine Learning,Scikit Learn,Knn,在的文档中,有一个方法返回k个最近邻。我感兴趣的是如何在这样的分类器中优雅地返回k个最远的邻居?不,没有这样的功能 您需要记住,为了提高性能,将有一棵树来获取最近的邻居。试图找到最远的距离意味着穿过整棵树,基本上计算所有的距离 因此,在这种情况下不要使用kNN,只需计算距离并对它们进行排序。许多空间索引四叉树、R树。。。可以轻松修改以支持最远邻居查询。一种常见算法见第4.5节。然而,大多数人并不支持开箱即用 如果您使用的是kd树,那么,正如另一张海报所说,可能无法有效地执行此操作 另一种选择可能

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

不,没有这样的功能

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


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

许多空间索引四叉树、R树。。。可以轻松修改以支持最远邻居查询。一种常见算法见第4.5节。然而,大多数人并不支持开箱即用

如果您使用的是kd树,那么,正如另一张海报所说,可能无法有效地执行此操作

另一种选择可能是CoverTree,我认为Hjaltason/Samet的算法在那里不起作用,但不太可能需要搜索整个树


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

为了确定,我是否需要担心kNN分类器使用哪一棵树?不,任何树都可能无法检索最远的邻居。最近邻的kNN树是针对这项任务进行优化的。这取决于,大多数空间索引不支持开箱即用的最远邻查询,但大多数空间索引可以很容易地修改以有效地执行此操作,而无需搜索整个树。参考我的答案。你会推荐其他库吗?对不起,我对机器学习库不太了解。我也不知道python的空间索引库。我知道一些Java库,但可能没有最远的邻居。最远邻居搜索有点“罕见”,因此您可能必须自己调整现有库/代码。