Случайные леса и выбор архитектур
Экспериментирование с архитектурой часто является ключом к построению эффективных современных моделей. Мы сделали это на базовом уровне с деревьями принятия решений, но единственным ограничением для этого является наше воображение, и, возможно, память нашего компьютера. На самом деле, мышление более широко на деревьях принятия решений привело к очень популярной архитектуре модели, которая снижает тенденцию деревьев принятия решений к избыточности данных.
Что такое случайный лес?
Случайный лес — это коллекция деревьев принятия решений, которые используются вместе для оценки того, какая метка должна быть назначена. Например, если нам нужно обучить случайный лес для прогнозирования призеров с медалями, может потребоваться обучить 100 различных деревьев принятия решений. Для создания прогноза нужно будет использовать все деревья независимо друг от друга. Это будет эффективно "голосовать" за то, будет ли спортсмен выиграть медаль, предоставив окончательное решение.
Как обучается случайный лес?
Случайные леса основываются на концепции того, что одно дерево принятия решений будет иметь высокий уровень смещения или наличие лжевзаимосвязей, но обучение нескольких деревьев принятия решений даст нам множество смещений в разные стороны. Это требует, чтобы каждое дерево обучено независимо и каждый из них немного отличается от учебного набора.
Чтобы обучить одно дерево принятия решений, определенное количество выборок спортсменов в нашем сценарии извлекается из полного набора тренировок. Каждый пример может быть выбран несколько раз, и это происходит случайным образом. Затем дерево обучается по стандартному принципу. Этот процесс повторяется для каждого дерева. По мере того как каждое дерево получает различное сочетание обучающих примеров, каждое дерево будет обучено и смещено отлично от других.
Преимущества случайного леса
Производительность случайных лесов часто впечатляет, поэтому их часто сравнивают с нейронными сетями — еще одним популярным и высокопроизводительным типом модели. В отличие от нейронных сетей, модели случайных лесов легко обучить: современные платформы предоставляют полезные методы, которые позволяют сделать это только в нескольких строках кода. Случайные леса также обучаются быстро и не требуют больших наборов данных для оптимальной работы. Это отделяет их от нейронных сетей, которые часто могут занять минуты или дни для обучения, требуют существенного опыта и часто требуют очень больших наборов данных. Архитектурные решения для случайных лесов, являясь моделями более сложными, чем, скажем, линейная регрессия, по-прежнему намного проще, чем решения для нейронных сетей.
Недостатки случайного леса
Основным недостатком случайных лесов является их трудность для понимания. В частности, в то время как эти модели полностью прозрачны, каждое дерево можно проверить и понять, они часто содержат так много деревьев, что делать это практически невозможно.
Как можно настроить эти архитектуры?
Как и в случае с другими моделями, случайные леса имеют различные параметры архитектуры. Проще всего рассмотреть размер леса: сколько деревьев участвует, а также размер этих деревьев. Например, можно создать лес для прогнозирования победителей, содержащий 100 деревьев, каждое из которых имеет максимальную глубину в 6 узлов. Это означает, что окончательное решение о том, будет ли спортсмен выиграть медаль, необходимо сделать не более шести "если" заявлений.
Как мы уже узнали, увеличение размера дерева (с точки зрения глубины или количества листьев) делает его более вероятным перенаполнение данных, на которых он обучен. Это ограничение также применяется к деревьям в случайных лесах. Однако в случайных лесах это ограничение можно обойти, увеличив число деревьев. Это делается из предположения, что каждое дерево будет смещено по-другому. Мы также можем ограничить каждое дерево только определенным количеством признаков или запретить создавать листья, когда это приведет только к незначительной разнице в производительности обучения. Способность случайного леса сделать хорошие прогнозы не является бесконечной. В какой-то момент увеличение размера и количества деревьев не дает дальнейшего улучшения из-за ограниченного количества обучающих данных, которые у нас есть.