在sklearn.neighbors.KDTree的文档中,有内存消耗的描述:
存储树所需的内存量大约为 n_samples/leaf_size。
这是否意味着当leaf_size变大时,存储树所需的内存会减少?
我认为leaf_size指定树中有多少个叶节点,所以如果有很多节点,内存就会增长。我是不是想错了?
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/