Как Random Forest может выжить в Feature Drift

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

«С большой силой приходит большая ответственность». Успех, достигнутый Random Forest, может скрывать его недостатки. Известно, что он может давать некачественные прогнозы, если во время обучения выборка принадлежит к малоизученным областям. Это типично для многих реальных случаев использования, когда данные не являются стационарными и выходят за пределы диапазона, исследуемого при подборе. Наша обязанность как специалистов по данным состоит в том, чтобы заранее обнаруживать эти возможные недостатки и помогать нашим моделям работать наилучшим образом. В соответствии с нашими знаниями в предметной области и нашим предварительным исследованием данных мы можем разработать наиболее подходящий конвейер предварительной обработки. Мы также можем пойти дальше и выбрать лучшую модель по характеристике наших данных.

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

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

Реализация Linear Random Forest просто доступна в linear-treeбиблиотеке. Она предоставляет реализации LinearTree, LinearForest, и LinearBoosting как для контекста классификации, так и для контекста регрессии. Этот пакет предназначен для предоставления готовых к использованию алгоритмов, полностью совместимых с экосистемой scikit-learn, которые сочетают в себе обучаемость линейных моделей и деревьев решений.

ДАННЫЕ

Мы моделируем данные из распределения Гаусса. Затем мы применяем определенные виды преобразований, такие как линейные, квадратичные, синусоидальные и взаимодействия, к подмножеству признаков. Цель, которую мы хотим предсказать, — это комбинация ранее преобразованных признаков. В качестве следующего шага мы дублируем наши данные и добавляем тенденции роста ко всем функциям. Новая цель показывает ту же тенденцию к увеличению, что и все предикторы.

МОДЕЛИРОВАНИЕ

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

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

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

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

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

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

КРАТКОЕ СОДЕРЖАНИЕ

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

ПРОВЕРЬТЕ МОЙ РЕПО GITHUB

Оставайтесь на связи: Linkedin