Random Forest – один из самых популярных и мощных алгоритмов машинного обучения. Это своего рода ансамблевый алгоритм машинного обучения, называемый Bootstrap Aggregation или bagging.

В этой заметке вы откроете для себя алгоритм ансамбля суммирования и, следовательно, алгоритм Случайного леса для предсказательного моделирования. После прочтения этой заметки вы узнаете об этом:

Метод бутстрап для оценки статистических величин по образцам.

Алгоритм Bootstrap Aggregation для создания нескольких различных моделей из одного набора обучающих данных.

Алгоритм Random Forest, который создает небольшую подстройку под Bagging и приводит к действительно мощному классификатору.

Этот пост был написан для разработчиков и не предполагает никакой подготовки в области статистики или математики. Пост фокусируется на том, как алгоритм работает и как его использовать для прогнозирования проблем моделирования.

Если у вас есть вопросы, оставьте комментарий, и я постараюсь на них ответить.

Узнайте, как работают алгоритмы машинного обучения, включая kNN, деревья принятия решений, наивные байи, SVM, ансамбли и многое другое в моей новой книге, с 22 учебниками и примерами в excel.

Давайте начнем.

Метод Bootstrap

Перед тем, как мы доберемся до Бэггинга, давайте быстро проверим важнейшую технику основания, называемую бутстрапом.

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

Предположим, что мы имеем выборку из 100 значений (x) и хотим получить оценку среднего значения выборки.

Мы можем вычислить среднее значение непосредственно из выборки как:

среднее(x) = 1/100 * сумма(x)

Мы знаем, что в нашем примере мало того, что в нашем средстве есть ошибка. Мы улучшим оценку нашего среднего с помощью процедуры bootstrap:

Создадим много (например, 1000) случайных подвыборок нашего набора данных с заменой (это означает, что мы выберем эквивалентное значение несколько раз).

Вычислим среднее значение каждой подвыборки.

Вычислите типичное для всех собранных нами средств и используйте его в качестве оценочного среднего для информации.

Допустим, мы использовали 3 ресэмпла и получили средние значения 2.3, 4.5 и 3.3. Если взять типичные из них, то мы можем считать, что среднее арифметическое информации равно 3.367.

Этот процесс часто не позволяет оценить другие величины, такие как дисперсия и даже величины, используемые в алгоритмах машинного обучения, например, выученные коэффициенты.

Агрегация по методу Bootstrap (упаковка в мешки)

Bootstrap Aggregation (или Bagging for short), может быть простым и действительно мощным методом ансамбля.

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

Bootstrap Aggregation может быть общей процедурой, которая не будет уменьшать дисперсию для того алгоритма, который имеет высокую дисперсию. Алгоритмом с высокой дисперсией являются деревья принятия решений, такие как деревья классификации и регрессии (CART).

Деревья решений чувствительны к точным данным, по которым они обучаются. Если обучающие данные модифицируются (например, дерево обучается по подмножеству обучающих данных), то получившееся дерево решений часто бывает совсем другим, а последовательно предсказания часто бывают совсем другими.

В качестве примера можно привести применение процедуры Bootstrap к алгоритму машинного обучения с высокой вариативностью, как правило, к деревьям решений.

Допустим, мы имеем примерный набор данных 1000 экземпляров (x) и используем алгоритм CART. Пакетирование алгоритма CART будет работать следующим образом.

Создадим много (например, 100) случайных подвыборок нашего набора данных с заменой.

Обучить модель CART на каждом образце.

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

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

При использовании пакетированных деревьев принятия решений мы меньше заботимся об отдельных деревьях, чем о подгонке учебных данных. По этой причине и для эффективности отдельные деревья принятия решений выращиваются глубоко (например, несколько тренировочных образцов в каждом узле дерева), и поэтому они не подрезаются. Эти деревья будут иметь как высокую дисперсию, так и малый уклон. Они являются важной характеристикой подмоделей при совмещении предсказаний с использованием мешков.

Единственным параметром при упаковке деревьев решений в мешки является количество образцов и, следовательно, количество деревьев для включения. Этот параметр будет выбираться путем увеличения количества деревьев в беге за бегом до тех пор, пока точность не начнет препятствовать улучшению результатов (например, при перекрестном тестировании). Для организации очень большого количества моделей может потребоваться продолжительное время, но при этом данные тренировки не будут перегружены.

Как и сами деревья выбора, мешковина часто используется для классификации и регрессии.

Случайный лес

Случайные леса – это улучшение по сравнению с мешковитыми деревьями принятия решений.

Проблема с такими деревьями принятия решений, как CART, в том, что они жадные. Они выбирают, какую переменную отделить, используя жадный алгоритм, который минимизирует ошибку. Таким образом, даже при использовании мешковины, деревья выбора могут иметь тонны структурных сходств и последовательно иметь высокую корреляцию в своих прогнозах.

Объединение предсказаний от нескольких моделей в ансамбли работает лучше, если предсказания от подмоделей не связаны или в лучшем случае слабо коррелированы.

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

Это легкая настройка. В CART, при выборе точки разделения, алгоритм обучения разрешается просматривать все переменные и значения каждой из них таким образом, чтобы выбрать наиболее оптимальную точку разделения. Алгоритм случайного леса изменяет эту процедуру таким образом, что тренировочный алгоритм ограничивается случайной выборкой особенностей, на которые следует обратить внимание.

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

Для классификации честным по умолчанию является: m = sqrt(p).

Для регрессии честное значение по умолчанию: m = p/3

Где m – это число случайно выбранных объектов, которые будут искаться в точке разделения, а p – это число входных переменных. Например, если набор данных имел 25 входных переменных для задачи классификации, то?

m = sqrt(25)

m = 5

Расчетная производительность

Для каждого образца бутстрапа, взятого из тренировочных данных, будут оставлены образцы, которые не были включены. Эти образцы называются образцами Out-Of-Bag или OOB.

Производительность каждой модели на пропущенных образцах при усреднении может обеспечить оценочную точность моделей в мешках. Эта оценочная эффективность обычно называется оценкой OOB.

Эти измерения производительности являются надежной оценкой погрешности тестирования и хорошо коррелируют с перекрестными валидационными оценками.

Переменная важность

По мере построения деревьев решений Bagged, мы будем вычислять, какую пропорцию функция ошибки опускает для переменной в каждой точке разделения.

В задачах регрессии это может быть ошибка падения на сумму в квадрате, а в классификации это может быть оценка Джини.

Эти падения ошибки часто усредняются по всем деревьям решений и выводятся для получения оценки важности каждой входной переменной. Чем больше падение при выборе переменной, тем больше значение.

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