Когда следует избегать Random Forest?

25

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

tSchema
источник
8
Здравствуй. «PLS - кожевник из…», «Bootstrap - кожевник из…», «Случайный лес - кожевник из…» <- Я советую вам с подозрением относиться к таким заявлениям. Это был просто комментарий :)
Стефан Лоран

Ответы:

24

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

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

Есть несколько очевидных случаев, когда случайные леса будут бороться:

  • Разреженность - Когда данные очень разрежены, очень вероятно, что для некоторого узла загруженный образец и случайное подмножество объектов будут сотрудничать, чтобы создать инвариантное пространство объектов. Производительного разделения не будет, поэтому маловероятно, что дочерние элементы этого узла будут вообще полезны. XGBoost может добиться большего успеха в этом контексте.

  • Данные не выровнены по оси. Предположим, что существует диагональная граница решения в пространстве двух объектов: и . Даже если это единственное релевантное измерение для ваших данных, для описания этой диагональной границы потребуется обычная модель случайного леса с множеством расщеплений. Это связано с тем, что каждое разбиение ориентировано перпендикулярно оси или . (Это должно быть интуитивно понятно, потому что обычная модель случайного леса делает разбиения видаИкс1Икс2Икс1Икс2Икс1>4.) Лес преодоления, который выполняет проекцию PCA на подмножество объектов, выбранных для каждого разделения, можно использовать для преодоления этого: проекции на ортогональную основу, в принципе, уменьшат влияние свойства выравнивания по оси, поскольку разделения больше не будет выравниваться по оси в исходной основе.

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

  • Случайные леса в основном работают только с табличными данными,т. е. не существует сильной, качественно важной взаимосвязи между признаками в том смысле, что данные представляют собой изображение или наблюдения объединяются в сеть на графике. Эти структуры обычно плохо аппроксимируются многими прямоугольными перегородками. Если ваши данные живут во временном ряду, или являются серией изображений, или живут на графике, или имеют какую-то другую очевидную структуру, случайному лесу будет очень трудно это распознать. Я не сомневаюсь, что исследователи разработали варианты метода, чтобы попытаться приспособиться к этим ситуациям, но случайный лес ванили не обязательно обнаружит эти структуры полезным способом. Хорошей новостью является то, что вы, как правило, знаете, когда это так, т.е. вы знаете, что у вас есть изображения, временные ряды или график для работы,
Sycorax говорит восстановить Монику
источник
Я думаю, что ванильные случайные леса способны распознавать непрямоугольные перегородки. Например, мы можем иметь квадратичные особенности и распознавать границы, такие как x ^ 2 <c.
Анируддха Ачарья
2
@AniruddhaAcharya Я сказал "бороться", а не провал. Мой ответ здесь проясняет, что квадратичные особенности не являются непреодолимой проблемой. Но диагонали, квадратики или другие несогласованные типы расщеплений потребуют, чтобы деревья снова и снова разбивались по этим признакам прямоугольным образом для аппроксимации диагонали / кривой. Вы можете увидеть этот эффект в сюжете к этому посту: посмотрите на острые углы. РФ использует квадрат, чтобы приблизить круг.
Sycorax сообщает, что восстановит Монику
Я имел в виду, что передача квадратичных (и других более высоких порядков) функций в RF уменьшит трудности при моделировании непрямоугольных разбиений. Например, RF могут использовать 2 квадратика для аппроксимации круга вместо использования квадрата. Хотя я согласен, что это не так просто, как модели, которые включают взаимодействие между переменными, я чувствую, что это не так сложно, потому что RF не ограничены использованием пороговых значений для необработанных функций.
Анируддха Ачарья
1
@AniruddhaAcharya Если вы знаете, что квадратные термины являются правильной моделью, вам не нужен случайный лес: просто добавьте квадратные термины в линейную модель. RF - хороший способ аппроксимировать произвольные функции, особенно когда они имеют выровненные по оси функции решения.
Sycorax говорит восстановить Монику
Почему (квадратичные термины) разработка функций, предложенная @AniruddhaAcharya, не является полезным шагом в сочетании с RF? Да, эти функции могут быть добавлены к линейной модели: но последняя не обеспечивает поведение объединения вкладов многих результатов, которые индивидуально оптимизированы для различных подмножеств объектов.
Джавадба
22

Острые углы. Точность.

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

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

« Кожевников » не существует. Здесь нет "серебряных пуль". Есть наборы инструментов. Знайте свои инструменты и хорошо заботьтесь о них, чтобы они могли заботиться о вас. Будьте осторожны с «когда вы молоток, тогда каждая проблема выглядит как гвоздь», особенно если у вас нет плотной библиотеки в вашем наборе инструментов.

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

Добавлено: если у вас достаточно вычислительных ресурсов или запаса времени, чтобы использовать что-то еще. РФ не только быстро обучается, но и быстро исполняется. Очень глубокая усиленная структура - меньше этого. Вы должны иметь накладные расходы, чтобы поддержать это.

EngrStudent - Восстановить Монику
источник
2
Для того, чтобы быть адвокатом дьявола здесь: Ничего будет «подходят сложные и очень подробные вещи хорошо , когда размер выборки низкий »
usεr11852 говорит восстановило Monic
5

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

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

1.) Когда размерность (количество признаков) очень высока по отношению к количеству обучающих выборок, в этих случаях лучше использовать регуляризованную линейную регрессию или SVM.

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

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

Однако, если вы хотите максимально возможную производительность, я считаю, что в настоящее время нейронные сети ака. Глубокое обучение выглядит как очень привлекательный подход. Все больше и больше победителей на таких веб-сайтах, как Kaggle, используют модели Deep Learning для конкуренции. Другим преимуществом нейронных сетей является то, что они могут обрабатывать очень большое количество выборок (> 10 ^ 6 можно обучать их с использованием стохастического градиентного спуска, подавая биты данных за один раз). Лично я считаю, что это очень привлекательный профессионал для глубокого обучения.

MJW
источник
2
Хороший ответ, но ваш последний пункт неверен: мини-пакетное обучение может быть реализовано для всех распространенных алгоритмов машинного обучения, см., Например, h2o .
Jubo
Ок, интересно, я этого не знал. Вы говорите, что с помощью этих методов можно обучить дерево (решений) с помощью мини-пакетного / SGD-обучения и, таким образом, построить единое дерево, основанное на разделении большинства данных обучения (скажем, 65%)?
MJW
1
Я думаю, что случайный лес все еще должен быть хорошим, когда число функций велико - просто не используйте много функций одновременно при построении одного дерева, и в конце у вас будет лес независимых классификаторов, которые в совокупности должны ( надеюсь) сделай хорошо.
Алексей Григорьев
Насколько я понимаю, h2o использует парадигму карты-сокращения для обучения мини-пакетам. Одиночные (CART) деревья не реализованы как таковые в h2o (но я предполагаю, что необрезанное дерево - это особый случай случайного леса с одним деревом и максимальным выбором предикторов?).
Jubo
2
Каково обоснование для (1)? Вы предъявляете претензию, но не приводите никаких аргументов в поддержку.
Sycorax сообщает восстановить Monica
0

Прежде всего, Случайный Лес не может быть применен к следующим типам данных:

  • картинки
  • аудио
  • текст (после предварительной обработки данные будут разреженными, а RF плохо работает с разреженными данными)

Для табличного типа данных всегда полезно проверить случайный лес, потому что:

  • он требует меньше подготовки и предварительной обработки данных, чем нейронные сети или SVM. Например, вам не нужно делать масштабирование объектов.
  • Для обучения Random Forest вы можете просто использовать параметры по умолчанию и установить количество деревьев ( чем больше деревьев в RF, тем лучше ). Когда вы сравниваете случайный лес с нейронными сетями , обучение очень простое (не нужно определять архитектуру или настраивать алгоритм обучения). Случайный лес легче обучить, чем нейронные сети.
pplonski
источник