#neighbor #knn #prediction #ml

ball-tree

用于K最近邻的球树实现

6个版本 (破坏性更新)

0.5.0 2024年3月22日
0.4.0 2023年4月6日
0.3.0 2021年6月3日
0.2.0 2019年6月18日
0.1.1 2018年11月12日

#328 in 数据结构

Download history 206/week @ 2024-04-07 34/week @ 2024-04-14 14/week @ 2024-04-21 2/week @ 2024-04-28 89/week @ 2024-05-05 23/week @ 2024-05-12 17/week @ 2024-05-19 1/week @ 2024-05-26 118/week @ 2024-06-02 108/week @ 2024-06-09 32/week @ 2024-06-16 34/week @ 2024-06-23 54/week @ 2024-06-30 118/week @ 2024-07-07 107/week @ 2024-07-14 191/week @ 2024-07-21

每月470次下载

MIT 协议

24KB
407

BallTree 是一种空间分割数据结构,允许以对数时间找到最近邻。

它通过将数据分割成一系列嵌套的边界球体(文献中的“球”)来实现。使用球体是因为计算点与球体之间的距离很简单(到球心距离减去半径)。关键观察结果是,潜在邻居必定比位于上述邻居之外的所有边界球体中的邻居更近。

图形表示


   A -  
   |  ----         distance(A, B) = 4
   |      - B      distance(A, S) = 6
    |       
     |
     |    S
       --------
     /        G \ 
    /   C        \
   |           D |
   |       F     |
    \ E         /
     \_________/

在图中,AB 更接近,而因为 S 包含 CDEFG,因此可以确定 A 必定比其他点更接近 B,甚至不需要计算到它们的精确距离。

球树通常用作一种预测模型,其中点代表特征,每个点都与一个值或标签相关联。因此,此实现允许用户将值与每个点相关联。如果不需要此功能,可以使用 () 作为值。

此实现返回最近邻、它们的距离以及它们关联的值。返回距离允许用户对邻居进行某种加权插值,以便进行预测。

无运行时依赖项