Как получить сокращенную модель случайного леса после обрезки?

#scikit-learn #random-forest

#scikit-learn #случайный лес

Вопрос:

В регрессоре случайного леса из Scikit Learn можно установить ccp_alpha параметр, который связан с методом обрезки (docs), и я использую его для контроля моей переоснащения.

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

Возможно ли получить эту сокращенную модель?

Комментарии:

1. Что значит «получить» модель? Модель, возвращенная после вашей fit (или перекрестной проверки), действительно является сокращенной моделью, если вы указали это с ненулевым значением ccp_alpha .

Ответ №1:

Когда вы применяете .fit(X_train, y_train) функцию к объекту класса RandomForestClassifier() or RandomForestRegressor() , возвращаемая подогнанная модель уже была обрезана. Это происходит под капотом в реализации sklearn. Теоретически, randomForest — это не просто комбинация деревьев решений, но сокращенная, агрегированная и загруженная с использованием настроек по умолчанию версия нескольких больших деревьев решений.

Будьте уверены, модель, возвращенная здесь, не является чрезмерно подходящей из-за обрезки. Если вы заметили переобучение, я бы посоветовал вам проверить оценку o.o.b вашей модели и описать весь ваш конвейер данных для получения дальнейших предложений

Ответ №2:

Обратитесь к этой документации от scikit-learnhttps://scikitlearn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html

В нем содержится подробное объяснение реализации обрезки с использованием метода «стоимость-сложность».