Случайный лес - модель, созданная для создания структуры в хаосе

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

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

Этого должно быть достаточно, чтобы убедить любого человека, стремящегося проникнуть в мир Data Science, иметь в своем наборе инструментов случайный лес.

Что такое случайный лес? Почему это так хорошо?

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

Содержание

  1. Случайный лес и демократия - случайное сравнение
  2. Рим был построен не за один день - Дерево решений, основа случайного леса
  3. Дерево решений - незаконченное решение
  4. Случайный лес - Мессия
  5. Примеры из практики

1. Случайный лес и демократия - случайное сравнение

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

С концептуальной точки зрения, каковы основные идеалы, которых пытается достичь демократия, и какой аспект случайного леса находит в ней резонанс?

  1. В условиях демократии решение о правлении принимает большинство. Поэтому окончательное решение принимается на основе голосования, в отличие от монархии или диктатуры. Параллель со случайным лесом состоит в том, что прогнозная модель строится с несколькими деревьями решений, и результат каждого дерева агрегируется для определения окончательного результата.
  2. В демократических условиях, например, в Индии, выборы проходят по всей стране, охватывая множество округов. Учитывая разнообразие населения, партия не может завоевать большинство, имея манифест, который обращается только к нескольким слоям / сообществам / культурам страны. Таким образом, демократия проверяет манифест каждой партии. Я бы сказал, что если манифест благоприятен только для нескольких слоев общества, он не носит всеобъемлющего характера, поскольку цель состоит в том, чтобы выиграть выборы, не обращая внимания на потребности всего населения. Следовательно, если манифест партии сопоставим с моделью в области науки о данных, манифест перекликается с концепцией перекрестной проверки, используемой в модели случайного леса. Ключевая цель перекрестной проверки - предотвратить переход к власти любого жадного алгоритма (концепция жадного алгоритма, описанная в последних разделах). Перекрестная проверка - это статистический метод, используемый для оценки того, как результаты статистического анализа будут обобщены на независимый набор данных. В отсутствие перекрестной проверки выходные данные модели могут сильно зависеть от данных, на которых модель была обучена.
  3. Как упоминалось ранее, в такой демократической стране, как Индия, выборы проходят во многих округах в каждом штате. Таким образом, результат выборов в каждом округе играет определенную роль в окончательном результате выборов. Случайный лес - это совокупность деревьев решений, где решение от каждого дерева учитывается в окончательном решении прогнозирования для каждого наблюдения. Выборы являются синонимом деревьев решений в случайном лесу, то есть попытка избрать правящую партию представляет собой совокупность многих выборов (отдельных деревьев решений) на уровне округа.
  4. На выборах в Лок Сабха ни один кандидат не может баллотироваться более чем в двух округах. Это устраняет возможную предвзятость в сознании избирателей в отношении популярного кандидата и помогает установить ответственность перед всеми участниками, участвующими в выборах. В случайном лесу не все предикторы учитываются в каждом построенном дереве решений. Подмножество предикторов случайным образом выбирается каждым деревом решений для прогнозирования. Это помогает всем предикторам вносить значительный вклад в окончательное решение.

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

2. Рим был построен не за один день - Дерево решений, основа случайного леса

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

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

В науке о данных алгоритмы дерева решений работают для разделения данных на однородные группы. Это достигается путем выбора предиктора, который помогает получить наилучшее разбиение. Он работает как с категориальными, так и с регрессионными проблемами. Критерии, которые обычно используются для определения значимых предикторов, которые в конечном итоге помогают в разделении данных, - это Энтропия, Прирост информации и Индекс Джини. Цель всех этих трех методов - определить наилучшее разделение, которое поможет нам перейти к четкому разделению между различными уровнями целевой переменной. В тот момент, когда у нас есть раскол, который не может быть далее гомогенизирован, у нас есть решение для этой ветви. В дереве решений у нас может быть несколько ветвей, которые в конечном итоге помогают в определении правил, дающих информацию, необходимую для прогноза. Более подробное техническое объяснение того, как работают эти концепции, можно найти в очень интересном блоге, который я нашел в самой Medium, Decision Trees.Decoded, написанном Ахилом Гуптой.

Я представляю небольшой пример того, как работает дерево решений, которое при чтении с упомянутым выше блогом поможет лучше понять. См. ниже. Для этого я использую знаменитый набор данных «Титаник», в котором собраны данные о пассажирах, которые путешествовали на корабле и попали в аварию со смертельным исходом в море. См. Ниже раздел R, который заканчивается деревом решений, которое можно использовать для прогнозирования того, умер пассажир или выжил, если бы у нас была информация об остальных переменных.

3. Дерево решений - незавершенное решение

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

Недостатки:

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

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

III. Они подвержены влиянию жадного алгоритма, поскольку цель каждого узла - найти наилучшее разбиение на этом узле. Мы не можем найти глобально оптимальное дерево. В результате жадной стратегии, применяемой деревьями решений при поиске правильной начальной точки дерева, конечный результат может сильно повлиять. То есть небольшие изменения на раннем этапе могут иметь большое влияние позже.

IV. Деревья решений не работают, если у вас плавные границы. то есть они работают лучше всего, когда у вас есть прерывная кусочно-постоянная модель. Границы, нарисованные деревьями, всегда параллельны оси X (или оси Y). Если у вас действительно линейная целевая функция, деревья решений не самые лучшие.

4. Случайный лес - Мессия

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

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

Шаг 2. Каждое дерево строится на основе подмножества предикторов, имеющихся в исходных данных. Это вторая случайность, введенная в алгоритм. При построении этих деревьев решений каждый раз, когда рассматривается разбиение в дереве, случайная выборка из «m» предикторов выбирается в качестве кандидатов на разбиение из полного набора «p» предикторов. В разбиении может использоваться только один из этих m предикторов. При каждом разбиении берется свежая выборка из m предикторов, и обычно m ≈√p в задаче классификации. Отношение по умолчанию m: p в задаче регрессии составляет 1/3.

Шаг 3. Классификация

На основе образца 'n' строятся 'n' деревья. Каждая запись классифицируется по всем построенным деревьям. Итак, с построением 'n' деревьев у нас будет n 'прогнозов для каждой записи. В задаче классификации окончательный класс для каждой записи определяется на основе голосования, то есть режим прогнозов является окончательным прогнозом. В приведенном ниже примере Tree1 построено с наблюдениями внутри зеленой границы. Аналогично Tree2 с наблюдениями, выделенными оранжевым цветом, и Tree3 с наблюдениями внутри фиолетовых границ. У каждого из них разные предикторы. Конечный результат для первой строки наблюдения, как вы можете видеть, - это режим трех прогнозов, полученных на основе трех деревьев.

Преимущества случайного леса:

  1. Перекрестная проверка предоставляется бесплатно со случайным лесом. По умолчанию случайный лес выбирает 2/3 данных для обучения и отдыха для тестирования на регрессию и почти 70% данных для обучения и отдыха для тестирования во время классификации. Перекрестная проверка помогает предотвратить чрезмерную подгонку, поскольку модель обобщает опыт работы с несколькими выборками данных.
  2. Поскольку в каждом узле для разделения выбирается подмножество функций, как описано выше, деревья обычно декоррелированы. Это также помогает предотвратить захват любого жадного алгоритма , поскольку, если был очень сильный предиктор, он не будет присутствовать во всех деревьях, чтобы доминировать над результатом.
  3. Дисперсия, которую могут продемонстрировать отдельные деревья, значительно уменьшается в случайном лесу за счет усреднения результатов по всем деревьям. Ожидается, что дисперсия уменьшится на 1 / n, где n - количество выращенных деревьев.
  4. Мы можем получить относительную важность всех предикторов с точки зрения того, как они влияют на целевую переменную. Это, в свою очередь, помогает при выборе функций. Мы можем увидеть это в тематических исследованиях, представленных в следующем разделе.
  5. Границы решений могут стать намного более точными при большей гибкости. См. Ниже пример с границами решений, нарисованными деревом решений и случайной моделью леса в том же наборе данных. Ошибочные классификации, видимые в дереве решений, в основном решаются в случайном лесу.

5. Тематические исследования: два тематических исследования по классификации, взятые с наборами данных с чрезвычайно большим количеством предикторов.

Пример I - Прогнозирование деятельности человека (560 предикторов)

Набор данных, используемых для проекта, собран из записей 30 человек, снятых с помощью смартфонов, оснащенных встроенными инерциальными датчиками. Многие курсы машинного обучения используют эти данные в учебных целях. Это проблема множественной классификации. Набор данных состоит из 10 299 строк и 561 столбца.
Для набора данных 30 человек были задействованы для выполнения 6 различных действий. У каждого из них на поясе был Samsung Galaxy SII. С помощью встроенных в смартфон датчиков (акселерометра и гироскопа) скорость и ускорение пользователя измерялись в трех осевых направлениях. Данные датчика использовались для прогнозирования активности пользователя. Действия пользователя могут быть одним из шести ниже:
Ходьба, Ходьба - Наверх, Ходьба - Вниз, Сидение, Стоя и Лежание.
Данные могут быть импортированы из следующего репозитория машинного обучения UCI. Набор данных. Пример использования вместе с кодом R и соответствующими комментариями приведен ниже. Приведенный ниже код r невозможно скопировать. Однако версию, откуда можно скопировать код, можно найти здесь.

Пример II. Построение случайной модели леса для прогнозирования поведения клиентов - покупатель приобретет продукт или нет (85 предсказателей)

Это тематическое исследование разработано на основе набора данных из очень популярной книги Введение в статистическое обучение (ISLR). Данные содержат 5822 записи реальных клиентов. Каждая запись состоит из 86 переменных, содержащих социально-демографические данные (переменные 1–43) и владение продуктом (переменные 44–86). Социально-демографические данные получены из почтовых индексов. Все клиенты, проживающие в районах с одинаковым почтовым индексом, имеют одинаковые социально-демографические атрибуты. Переменная 86 (Purchase) указывает, приобрел ли клиент полис страхования каравана. Дополнительную информацию об отдельных переменных можно получить по адресу http://www.liacs.nl/~putten/library/cc2000/data.html.

Помимо изучения того, как построить модель случайного леса, это тематическое исследование помогает нам найти методы работы с несбалансированными данными. Я использовал технику SMOTE, чтобы сбалансировать данные. Я сослался на блог Analytics Vidhya, Практическое руководство по решению проблем несбалансированной классификации в R, чтобы разобраться с проблемой несбалансированного набора данных. Действия в r для построения модели вместе с соответствующими комментариями представлены ниже.

Применение модели повышения производительности для повышения производительности - XGBoost

Идеальная модель была получена с помощью xgboost. Код приведен ниже

Конец заметок

Мы видели два примера того, как случайный лес приходит на помощь аналитикам, которые изо всех сил пытались бы иметь дело с таким большим количеством независимых переменных, если бы его не было. Мы также видели, как случайный лес использует деревья решений для построения очень надежной модели. Во втором тематическом исследовании мы рассмотрели проблему, которую можно увидеть, когда у нас есть несбалансированный набор данных. Достигнутая точность составляет около 87% за счет использования случайного леса в качестве классификатора, который затем был дополнительно улучшен до 100% с помощью модели повышения. Мы также увидели, что случайный лес может быть чрезвычайно полезным инструментом для выбора функций. Это помогает исключить нежелательные элементы из окончательной модели.