Edit 2: Существует в настоящее время прекрасный пример в sklearn documentation по этому вопросу.Scikit Learn Случайный лес классификатор: Как производить график ошибки OOB от числа деревьев
Для того, чтобы увидеть, сколько деревьев необходимы в моем лесу, я хотел бы построить ошибку OOB как количество деревьев, используемых в лесу увеличивается. Я в Python
, используя sklearn.ensemble.RandomForestClassifier
, но не могу найти, как предсказать использование подмножества деревьев в лесу. Я мог бы сделать это, создав новый случайный лес на каждой итерации с увеличением количества деревьев, но это слишком дорого.
Кажется, аналогичная задача возможна с объектом Gradient Boosting с использованием метода staged_decision_function
. См. this example.
Это довольно простая процедура в R
и может быть достигнуто путем вызова plot(randomForestObject)
:
- Edit - Я вижу теперь RandomForestClassifier
объект имеет атрибут estimators_
, который возвращает все объекты DecisionTreeClassifier
. Чтобы решить эту проблему, я могу перебирать этот список, прогнозируя результаты от каждого дерева и принимая «совокупное среднее». Однако действительно ли нет более простого способа сделать это уже реализовано?
Хотя количество деревьев не является параметром настройки, вам нужно знать, сколько деревьев вам нужно для стабильного решения. Создание этого участка даст вам представление о том, сколько деревьев вам нужно. Время прогноза не вызывает беспокойства, это время обучения. При поиске большого пространства параметров знание большого количества деревьев для использования может иметь большое значение для времени поиска. 'GradientBoostingClassifiers' не параллельны, поэтому не используются здесь. – kungfujam
Если вы ищете большое пространство параметров, количество оценок, которое вам нужно для стабильного решения, будет отличаться для каждого параметра. Итак, как эта кривая поможет? –
Я бы использовал его перед поиском параметров, чтобы дать смутное представление о настройках дерева для поиска (я пробую несколько настроек настройки сетки и создаю этот график). Затем один раз, оптимальные параметры найдены, я делаю это еще раз, чтобы проверить, не могу ли я больше работать, увеличивая лес немного больше. Также очень полезно проверить, как меняется производительность класса (см. Строки rgb на моем сюжете). – kungfujam