sklearn.neighbors.KDTree内存要求

时间:2017-02-05 16:34:29

标签: scikit-learn kdtree

sklearn.neighbors.KDTree documentation中,有一个内存消耗说明:

  

存储树所需的内存量大约为n_samples / leaf_size。

这是否意味着当 leaf_size 变大时,存储树所需的内存会减少?

我认为 leaf_size 指定树中有多少个叶子节点,所以如果有很多节点,则内存会增长。我在想错吗?

1 个答案:

答案 0 :(得分:0)

leaf_size参数指定在树的“分支”底部的终端“叶子”中存储的条目数。另一种说法是,将您的查询与穷举相比较的“邻居”数量......

如果您的leaf_size较小。树需要更大,因此它增加了存储树的内存需求。

实际上,leaf_size可以极大地影响计算时间,并且是每次查询访问较大树的成本(小leaf_size)与更多对象的详尽比较成本之间的平衡对于每个查询(较大的leaf_size

有关详细信息,请参阅此处的leaf_size优化: https://jakevdp.github.io/blog/2013/04/29/benchmarking-nearest-neighbor-searches-in-python/