Случайный лес — это популярный метод «обучения по ансамблю» (объединяет несколько небольших моделей посредством голосования/усреднения для получения прогноза) для задач классификации и регрессии.
Он работает путем построения большого количества деревьев решений во время обучения и вывода класса с большинством голосов среди деревьев решений (классификация) или среднего прогноза (регрессия) отдельных деревьев.
Деревья решений построены таким образом, что каждое дерево немного отличается от других. Идея состоит в том, что при обучении множества различных деревьев общая модель будет более надежной и будет иметь лучшую производительность при обобщении невидимых данных. Это связано с тем, что ни одно дерево не будет сильно влиять на модель, и если какое-либо отдельное дерево не подходит для данных, оно будет компенсировано другими деревьями в лесу.
Как это работает?
- Создайте случайную выборку обучающих данных с заменой (т. е. самозагрузкой).
- При обучении дерева решений на образце для каждого неконечного узла в дереве решений случайным образом выберите подмножество функций и учитывайте только эти функции при принятии решения о разделении в этом узле (т. е. агрегирование). .
- Повторите шаги 1–2 несколько раз (например, 100 раз), создав лес деревьев решений (самозагрузка + агрегирование = пакетирование).
- Во время прогнозирования введите новую выборку, и каждое дерево решений в лесу сделает прогноз.
- Выведите средний прогноз деревьев (для регрессии) или большинство голосов прогнозов (для классификации).
Преимущества и недостатки случайных лесов
Преимущества
Случайные леса имеют ряд преимуществ, которые делают их популярным выбором для многих задач машинного обучения:
- Точность. Было показано, что случайные леса обладают хорошей производительностью обобщения, а это означает, что они часто достигают высокой точности на невидимых данных.
- Надежность по отношению к выбросам. Случайные леса относительно устойчивы к выбросам в данных.
- Обрабатывает отсутствующие значения. Случайные леса могут обрабатывать отсутствующие значения в данных без необходимости импутации.
- Важность признаков. Случайные леса позволяют измерить важность каждого признака в данных, что может быть полезно при выборе признаков.
- Непараметрические. Случайные леса являются непараметрическими, что означает, что они не делают предположений о базовом распределении данных. Это делает их хорошим выбором для задач, где распределение данных неизвестно или сложно.
- Распараллеливание: обучение отдельных деревьев в случайном лесу можно распараллелить, что позволяет эффективно обучать большие случайные леса.
- Работает с широким спектром типов данных. Случайные леса могут обрабатывать широкий спектр типов данных, включая как непрерывные, так и категориальные переменные.
Недостатки
Некоторые потенциальные недостатки использования случайных лесов включают в себя:
- Труднее интерпретировать. Поскольку случайные леса состоят из множества деревьев решений, они менее интерпретируемы, чем одно дерево решений. Может быть трудно понять, почему случайный лес сделал определенный прогноз, особенно если лес большой.
- Медленнее обучать и прогнозировать. Обучение и прогнозирование со случайными лесами может быть медленнее, чем с некоторыми другими алгоритмами, поскольку модель должна делать прогноз для каждого дерева в лесу, а затем объединять прогнозы.
- Менее эффективен для сильно несбалансированных наборов данных. Случайные леса могут иметь проблемы с сильно несбалансированными наборами данных, где существует большая разница в количестве примеров для разных классов. В этих случаях другие алгоритмы, такие как машины опорных векторов или деревья решений с обучением с учетом затрат, могут работать лучше.
- Переобучение.Хотя случайные леса, как правило, устойчивы к переобучению, модель все же может переобучиться, если обучающие данные особенно зашумлены или если в лесу много деревьев.