Как настроить RandomForest Sklearn? max_depth против min_samples_leaf

max_depth VS min_samples_leaf

Параметры max_depth и min_samples_leaf меня больше всего сбивают с толку при многократных попытках использования GridSearchCV. Насколько я понимаю, оба этих параметра позволяют контролировать глубину деревьев, поправьте меня, если я ошибаюсь.

max_features

Я выполняю очень простую задачу классификации, и изменение min_samples_leaf, похоже, не влияет на показатель AUC; однако настройка глубины улучшает мой AUC с 0,79 до 0,84, что довольно резко. Кажется, больше ничего не влияет на это. Я думал, что главное, что мне нужно настроить, - это max_features, однако значение наилучшего результата недалеко от sqrt(n_features).

scoring='roc_auc'

Еще одна проблема, я заметил, что если все параметры фиксируются при изменении количества деревьев, GridSearchCV всегда будет выбирать наибольшее количество деревьев. Это понятно, но AUC почему-то немного падает, хотя scoring='roc_auc'. почему это происходит? учитывает ли он вместо этого oob_score.

Не стесняйтесь делиться любыми ресурсами, которые могут быть полезны для понимания того, как можно систематически настраивать случайные леса, поскольку кажется, что существует несколько связанных параметров, влияющих друг на друга.


person user2179347    schedule 14.05.2017    source источник


Ответы (1)


По мере увеличения максимальной глубины дисперсия увеличивается, а смещение уменьшается. С другой стороны, увеличивая минимальный лист выборки, вы уменьшаете дисперсию и увеличиваете смещение.

Таким образом, эти параметры будут контролировать уровень регуляризации при выращивании деревьев. Таким образом, уменьшение любого из параметров max * и увеличение любого из параметров min * приведет к увеличению регуляризации.

Во-вторых, сложно сказать, почему падает ваша точность. Вы можете попробовать вложенное резюме, чтобы получить представление о диапазоне точности, который best_params_ демонстрирует при обобщении на невидимые данные.

person spies006    schedule 15.05.2017