我想计算python中的K最近邻居。我应该使用哪个库?python中的K最近邻居
13
A
回答
20
我认为你应该使用scikit ann。
关于最近的neighbour here有一个很好的教程。
根据文档:
安为近似最邻近(ANN)库(http://www.cs.umd.edu/~mount/ANN/),由David M.摩和苏尼的Arya开发了SWIG生成Python包装。安提供一个不可变kdtree实现(经由ANN)能够执行k-最近邻和近似k
3
scipy.spatial.cKDTree 是快速和固体。 有关将其用于NN插值的示例,请参阅SO上的(ahem) inverse-distance-weighted-idw-interpolation-with-python。
(如果你可以说,例如:“我在3D 1M点,想K = 5楼最接近的1K新点的邻居”, 你可能会得到更好的答案或代码示例。
你想要做什么邻居们一旦找到了它们?)
5
我写了一个脚本来比较FLANN和scipy.spatial.cKDTree,无法获得ANN包装器来编译。您可以尝试一下,看看适用于您的应用程序的内容。我的测试用例与FLANN相比,cKDTree的运行时间相当,FLANN的速度快了1.25倍。当我增加testSize FLANN的速度比cKDTree快两倍。由于它不是标准python软件包的一部分,因此像FLANN似乎更难以整合,具体取决于项目。
import cProfile
from numpy import random
from pyflann import *
from scipy import spatial
# Config params
dim = 4
knn = 5
dataSize = 1000
testSize = 1
# Generate data
random.seed(1)
dataset = random.rand(dataSize, dim)
testset = random.rand(testSize, dim)
def test1(numIter=1000):
'''Test tree build time.'''
flann = FLANN()
for k in range(numIter):
kdtree = spatial.cKDTree(dataset, leafsize=10)
params = flann.build_index(dataset, target_precision=0.0, log_level = 'info')
def test2(numIter=100):
kdtree = spatial.cKDTree(dataset, leafsize=10)
flann = FLANN()
params = flann.build_index(dataset, target_precision=0.0, log_level = 'info')
for k in range(numIter):
result1 = kdtree.query(testset, 5)
result2 = flann.nn_index(testset, 5, checks=params['checks'])
import cProfile
cProfile.run('test2()', 'out.prof')
3
它本身在SciPy的,如果你希望做一个kd树的方法:http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html#scipy.spatial.KDTree
相关问题
- 1. K-最近邻居
- 2. 查找K最近邻居
- 3. k最近邻居算法k的值
- 4. sklearn k最近邻居问题
- 5. chisel k最近邻居verilog输出
- 6. K-NN邻居到Python
- 7. 如何通过R最近邻居求解最近邻居?
- 8. k最近邻居关系图在Java中的实现
- 9. k最近邻居中浮点数的文字无效
- 10. k-最近邻算法
- 11. 存储最近的邻居
- 12. JavaScript的最近邻居库
- 13. k最近邻居在3维空间中查询
- 14. 点的第k个最近邻居的空间查询
- 15. matlab中的k最近邻分类器
- 16. 使用openmp和分段错误的并行K最近邻居
- 17. 如何使用k-d树找到最近的邻居?
- 18. 具有闭环维数的K最近邻居
- 19. K最近的邻居与高尔距离测量在R
- 20. 寻找给定矢量的k-最近邻居?
- 21. K最近的邻居在sklearn半径 - 椭圆
- 22. 如何获得geodjango的k个最近邻居?
- 23. 最近邻居算法
- 24. Excel宏最近邻居
- 25. 最近邻居2维
- 26. 为K-最近的邻居安装Python Fancy Impute模块空值的插补
- 27. 最近邻居 - k-d树 - 维基百科证明
- 28. 使用K最近邻居创建特征
- 29. 使用K-最近邻居推测缺少值
- 30. 确定Dijkstra中的最近邻居
+1这个库是非常容易的工作。 – 2011-04-06 12:56:38
+1,非常有用的链接! – juanchopanza 2011-04-06 13:03:28
一个用于有用的链接 – pylover 2012-06-15 19:28:14