Как было сказано раннее, основным недостатком алгоритма деревьев решений является склонность к переобучению. В то же время применение алгоритма случайного леса – алгоритма машинного обучения с учителем – решает данную проблему.
Случайный лес представляет собой набор деревьев решений, в котором каждое дерево будет незначительно отличаться по параметрам от остальных. Суть данного алгоритма заключается в том, что каждое дерево хорошо обучается, но, вероятно, переобучается на части данных. Если построить большое количество деревьев решений, которые хорошо отрабатывают и переобучаются с разной степенью, то существует возможность уменьшить переобучение через усреднение их результатов. Для описания данного решения строится множество деревьев решений, которые прогнозируют целевую переменную на должном уровне и отличаются друг от друга [156]. Алгоритм построения случайного леса выглядит следующим образом [128]:
для каждого n=1, … , N генерируются выборка 𝑋𝑛, по которой строится решающее дерево:
по заданному критерию выбирается лучший признак, по которому проводится разбиение дерева (до исчерпания выборки);
дерево строится до тех пор, пока в каждом из листьев будет не более 𝑛𝑚𝑖𝑛 объектов или пока не будет достигнута определенная глубина дерева;
при каждом разбиении сначала выбирается m случайных признаков из n исходных;
поиск оптимального разделения выборки проводится только среди них. Итоговый классификатор выглядит так:
𝑎(𝑥) = 1 ∑𝑁 𝑏 (𝑥), (2.9)
𝑁 𝑖=1 𝑖
иначе говоря, для задачи классификации решение выбирается голосованием по большинству [156].
Количество отбираемых признаков определяется с помощью параметра max_features. Процесс отбора подмножества признаков повторяется отдельно для каждого из узлов, в связи с чем на узле может приниматься решение с использованием “своего” подмножества признаков. Условие max_features = n_features будет означать, что при каждом разбиении могут участвовать все признаки выборки данных, а в процессе отбора признаков не будет привнесена случайность. Если установить max_features = 1, то при разбиении не будет проводиться никакого отбора для тестирования, вместо этого будет выполняться поиск с учетом различных пороговых значений для случайно выбранного признака. Высокое значение этого параметра приведет к тому, что деревья в случайном лесе будут весьма схожими и смогут легко аппроксимировать данные, применяя наиболее дискриминирующие признаки. Низкое значение приведет к сильным различиям между деревьями леса и, возможно, их большой глубине для лучшего соответствия данным.
При получении прогноза для случайного леса алгоритм сначала вычисляет прогноз для каждого дерева в лесе. Для классификации применяется стратегия “мягкого голосования”, посредством вычисления вероятности для каждого класса и выдачи “мягкого” прогноза. Эти вероятности усредняются для всех деревьев, после чего прогнозируется класс с наибольшей вероятностью.
Основные преимущества использования алгоритма случайного леса над алгоритмом дерева решений заключаются в отсутствии необходимости масштабирования данных, а также в более высокой эффективности алгоритма. Значительным недостатком, однако, становится невозможность продуктивной работы с разреженными и высокоразмерными данными. [129, 156].
Do'stlaringiz bilan baham: |