2017-02-05 3 views
0

В documentation для sklearn.neighbors.KDTree есть описание потребления памяти:требования к памяти sklearn.neighbors.KDTree

Объем памяти, необходимый для хранения дерева весы, как приблизительно n_samples/leaf_size ,

Означает ли это, что, когда leaf_size становится больше, требуется память для хранения дерева уменьшается?

Я думал, что leaf_size указывает, сколько листовых узлов есть в дереве, поэтому, если есть много узлов, память растет. Думаю ли я об этом неправильно?

ответ

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/

Смежные вопросы