在文档 for sklearn.neighbors.KDTree中,有一个内存消耗的描述:
将树规模存储为近似n_samples / leaf_size所需的内存量。
这是否意味着当leaf_size变得更大时,存储树所需的内存就会减少?
我认为leaf_size指定了树中有多少叶节点,所以如果有很多节点,内存就会增长。我是不是想错了?
发布于 2017-06-09 14:08:52
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/
https://stackoverflow.com/questions/42054527
复制相似问题