общее количество листьев в воде

Я сделал случайный лес в h2o, используя r. Там есть деревья и листья.

Я хочу знать, сколько листьев. Мне нравится сравнивать общее количество строк с листьями.

У меня 200 деревьев, 8 слоев в глубину, требуется 5 рядов на каждый конечный лист. Просматриваю ли я большую часть своих данных? У меня 20к строк.

Есть ли чистый способ подсчитать количество листьев в h2o randomForest?


person EngrStudent    schedule 18.05.2016    source источник
comment
Модель случайного леса на самом деле представляет собой набор деревьев. Зачем нужно подсчитывать количество листьев?   -  person Tim Biegeleisen    schedule 19.05.2016
comment
Я хочу использовать отношение листьев к строкам, чтобы подумать о переоснащении или недообучении с точки зрения важности переменных. Если я использую каждую строку 12 раз, то, скорее всего, есть проблема. Если я использую менее 0,5% строк, то у меня может быть недостаточная выборка, даже если она выглядит загрузочной. Возможно, мои деревья используют одну и ту же строку 12 раз или 0,1 раза. Я хочу думать с точки зрения охвата и не знаю, как получить доступ к фактическим листьям «h2o».   -  person EngrStudent    schedule 19.05.2016
comment
Такой подход неверен AFAIK. Переменные, которые используются для разделения на ранней стадии, обычно доминируют в поведении данного дерева. Если вам нужна переменная важность, вы должны использовать importance() или для более простого варианта попробуйте лучшую постоянную модель.   -  person Tim Biegeleisen    schedule 19.05.2016
comment
@TimBiegeleisen - я агрессивно использую важность. Мне понравилось разбираться в основах пакета «Boruta», включая разницу между z и gini. Это не проблема. Моя проблема в том, что в некоторых случаях у меня есть разреженные данные, и дерево выглядит так, как будто подмножество строк доминирует в подгонке. В некоторых случаях у меня есть огромные данные, и я хочу убедиться, что они адекватно выбраны. Все значение в мире будет бессмысленным, если я не сделаю здоровый лес. Мне нужна лучшая мера, чем норма глазного яблока на графике конвергенции.   -  person EngrStudent    schedule 19.05.2016
comment
Что такое строка в контексте случайных лесов?   -  person Tim Biegeleisen    schedule 19.05.2016
comment
@TimBiegeleisen - ввод данных. единый образец. Об этом говорит параметр частоты дискретизации в h2o.   -  person EngrStudent    schedule 19.05.2016


Ответы (1)


Вы будете рады узнать, что H2O хранит эту информацию! Например. (это для набора данных Iris)

m <- h2o.randomForest(1:4, 5, data)

При печати m я вижу:

number_of_trees model_size_in_bytes min_depth max_depth mean_depth min_leaves  max_leaves mean_leaves
            150               20217         1         9    3.72667          21         15     6.17333

Итак, есть 926 листьев (6.17333 * 150).

Чтобы получить его с кодом:

ms = m@model$model_summary
ms$number_of_trees * ms$mean_leaves
person Darren Cook    schedule 19.05.2016