РЯД СНИЖЕНИЯ РАЗМЕРНОСТИ ДАННЫХ: 3-Й МЕТОД

СЛУЧАЙНЫЙ ЛЕС

ВВЕДЕНИЕ:

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

СУПЕРБАЗОВОЕ ОПРЕДЕЛЕНИЕ СЛУЧАЙНОГО ЛЕСА:

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

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

БЫСТРАЯ АНАЛОГИЯ ДЛЯ ЛУЧШЕГО ПОНИМАНИЯ:

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

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

КАК СМЕЩЕНИЕ И ДИСПЕРСИЯ ВЛИЯЮТ НА АЛГОРИТМ?

ПРЕДВЗЯТОСТЬ

  • Измеряется точность или качество алгоритма.
  • Высокое смещение означает плохое совпадение

дисперсия

  • Измеряется точность или специфичность совпадения.
  • Высокая дисперсия означает слабое соответствие

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

ОЖИДАЕМАЯ ОШИБКА ПРОГНОЗА = ДИСПЕРСИЯ + ОТКЛОНЕНИЕ² + ШУМ²

ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ ДРУГИХ АЛГОРИТМОВ?

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

Не теряя много времени, давайте перейдем к основной части, где мы обсудим работу RANDOM FOREST:

РАБОТА СО СЛУЧАЙНЫМ ЛЕСОМ:

Как мы видели в аналогии, RANDOM FOREST работает на основе техники ансамбля; однако, что именно означает ансамблевая техника? На самом деле это довольно просто. Ансамбль просто относится к комбинации многочисленных моделей. В результате для создания прогнозов используется не одна модель, а группа моделей.

АНСАМБЕЛЬНАЯ ТЕХНИКА ИМЕЕТ 2 ПРИЕМА:

1] УПАКОВКА

2] ПОВЫШЕНИЕ

Давайте углубимся, чтобы лучше понять вещи:

1] УПАКОВКА:

ДАВАЙТЕ ПОНЯЕМ ЭТО ЧЕРЕЗ ЛУЧШИЙ ВИД:

Бэггинг просто помогает нам уменьшить дисперсию громких наборов данных. Работает по ансамблевой технике.

  1. Независимый от алгоритма: метод общего назначения
  2. Хорошо подходит для алгоритмов с высокой дисперсией
  3. Снижение дисперсии достигается путем усреднения группы данных.
  4. Выберите количество классификаторов для создания (B)

РАЗНЫЕ ТРЕНИРОВОЧНЫЕ ДАННЫЕ:

  1. Пример обучающих данных с заменой
  2. Один и тот же алгоритм на разных подмножествах обучающих данных

ПРИЛОЖЕНИЕ :

  1. Используйте с алгоритмами высокой дисперсии (DT, NN)
  2. Легко распараллелить
  3. Ограничение: потеря интерпретируемости
  4. Ограничение: Что делать, если одна из функций доминирует?

ИТОГ ВСЕГО:

  1. Ансамбльный подход = агрегация Bootstrap.
  2. При пакетировании выбирается случайный набор данных, как показано на рисунке выше, а затем модель строится с использованием этих случайных выборок данных, что называется начальной загрузкой.
  3. Теперь, когда мы обучаем эти случайные выборочные данные, не рекомендуется выбирать точки данных только один раз, при обучении выборочных данных мы можем выбирать отдельные точки данных более одного раза.
  4. Теперь каждая из этих моделей построена, обучена и получены результаты.
  5. Наконец, учитываются результаты большинства.

Мы даже можем рассчитать ошибку из этой вещи, известной как ошибка случайного леса OOB:

СЛУЧАЙНЫЕ ЛЕСЫ: ОШИБКА OOB (ошибка вне пакета):

▪ Из каждого загруженного образца 1/3 остается в стороне как «Тест».

▪ Дерево построено на оставшихся 2/3

▪ Средняя ошибка для каждого из «тестовых» образцов называется «ошибкой отсутствия упаковки».

▪ Ошибка OOB обеспечивает хорошую оценку ошибки модели.

▪ Нет необходимости в отдельной перекрестной проверке

2] ПОВЫШЕНИЕ:

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

Слабый ученик: нужно только сгенерировать гипотезу с точностью обучения выше 0,5, т. Е. Ошибка ‹ 50% для любого распределения.

КЛЮЧЕВАЯ ИНТУИЦИЯ:

  1. Сильных учеников очень трудно построить
  2. Построение более слабых учеников относительно легко зависит от эмпирического квадрата улучшения при назначении модели.

СХЕМА ПОДХОДА:

  1. Начните с алгоритма ML для поиска грубых эмпирических правил (он же «слабый» или «базовый» алгоритм).
  2. Повторно вызывайте базовый алгоритм, каждый раз передавая ему другое подмножество обучающих примеров.
  3. Базовый алгоритм обучения создает новое правило слабого прогнозирования при каждом вызове.
  4. После нескольких раундов алгоритм повышения должен объединить эти слабые правила в одно правило прогнозирования, которое, как мы надеемся, будет значительно точнее, чем любое из слабых правил по отдельности.

ДВЕ КЛЮЧЕВЫЕ ДЕТАЛИ:

  1. Как выбирается распределение в каждом раунде?
  2. Каков наилучший способ объединить слабые правила в одно правило?

BOOSTING подразделяется на два типа:

1] УСИЛЕНИЕ АДА

2] ПОВЫШЕНИЕ XG

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

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

ДАВАЙТЕ ПОНИМЕМ БОЛЬШЕ, ПОЧЕМУ БЭГГИНГ, А НЕ БУСТИНГ:

Как бэггинг помогает с дисперсией — простой пример

ДЕРЕВЬЯ В МЕШКАХ

  1. Деревья решений имеют высокую дисперсию
  2. Результирующее дерево (модель) определяется обучающими данными.
  3. (Необрезанные) Деревья решений имеют тенденцию к переобучению
  4. Один из вариантов: снижение сложности затрат

мешочные деревья

  1. Образец с заменой (1 тренировочный набор → несколько тренировочных наборов)
  2. Модель обучения на каждом тренировочном наборе с начальной загрузкой
  3. несколько деревьев; каждый разный : Сад ☺
  4. Каждое DT предсказывает; Прогноз среднего / большинства голосов
  5. Выберите количество деревьев для постройки (B)

ПРЕИМУЩЕСТВА

Уменьшите дисперсию/нестабильность модели.

RANDOM FOREST: ПЕРЕМЕННАЯ ВАЖНОСТЬ

ПЕРЕМЕННАЯ ВАЖНОСТЬ:

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

▪ Суммирование всех уменьшений индекса Джини из-за переменной m по всем деревьям в лесу дает меру важности переменной

ВАЖНЫЕ ХАРАКТЕРИСТИКИ И ГИПЕРПАРАМЕТРЫ:

1. Разнообразие:

2. Иммунитет к проклятию размерности:

3. Распараллеливание:

4. Разделение поезд-тест:

5. Стабильность:

6. Значение Джини (или примесь среднего сокращения):

7. Средняя точность снижения:

ФУНКЦИИ, КОТОРЫЕ УЛУЧШАЮТ ПРОГНОЗЫ МОДЕЛИ И СКОРОСТЬ:

1. максимальные_возможности:

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

2. n_оценщиков:

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

3. min_sample_leaf :

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

4. n_jobs :

Эта опция указывает движку, сколько процессоров ему разрешено использовать.

5. случайное_состояние:

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

6. oob_score:

Здесь используется метод перекрестной проверки случайного леса. Она аналогична процедуре исключения одного, за исключением того, что она значительно быстрее.

ДАВАЙТЕ ПОСМОТРИМ ШАГИ, УЧАСТВУЮЩИЕ В РЕАЛИЗАЦИИ АЛГОРИТМА RANDOM FOREST:

Шаг 1. Выберите T – количество деревьев для выращивания.

Шаг 2. Выберите m‹p (p — общее количество признаков) — количество признаков, используемых для расчета наилучшего разделения в каждом узле (обычно 30% для регрессии, sqrt(p) для классификации).

Шаг 3. Для каждого дерева выберите обучающий набор, выбрав N раз (N – количество обучающих примеров) с заменой из обучающего набора.

Шаг 4. Для каждого узла вычислите наилучшее разделение, полностью выращенное и не обрезанное.

Шаг 5. Используйте голосование большинством голосов среди всех деревьев.

Ниже приводится полное тематическое исследование и реализация всех принципов, которые мы только что рассмотрели, в виде записной книжки Jupyter, включая все концепции и все, что вы когда-либо хотели знать о RANDOM FOREST.

СЛЕДУЙТЕ ЗА НАМИ, ЧТОБЫ УЗНАТЬ БЛОГИ И СТАТЬИ О НАУКАХ ДАННЫХ:

LINKEDIN: https://www.linkedin.com/company/dsmcs/

ИНСТАГРАМ: https://www.instagram.com/datasciencemeetscybersecurity/?hl=en

ГИТХАБ: https://github.com/Vidhi1290

Твиттер: https://twitter.com/VidhiWaghela

СРЕДСТВО: https://medium.com/@datasciencemeetscybersecurity-

- КОМАНДНАЯ НАУКА ДАННЫХ ВСТРЕЧАЕТСЯ С КИБЕРБЕЗОПАСНОСТЬЮ ❤️💙