РЯД СНИЖЕНИЯ РАЗМЕРНОСТИ ДАННЫХ: 3-Й МЕТОД
СЛУЧАЙНЫЙ ЛЕС
ВВЕДЕНИЕ:
Привет, милые люди, я надеюсь, что у всех все хорошо, они фантастические и улыбаются больше, чем обычно. В этом блоге мы обсудим очень интересный термин, используемый для построения многих моделей в индустрии науки о данных, а также в индустрии кибербезопасности.
СУПЕРБАЗОВОЕ ОПРЕДЕЛЕНИЕ СЛУЧАЙНОГО ЛЕСА:
Случайный лес — это форма контролируемого алгоритма машинного обучения, который работает по правилу большинства. Например, если у нас есть несколько разных алгоритмов, работающих над одной и той же проблемой, но дающих разные ответы, учитывается большинство результатов. Случайные леса, также известные как леса случайного выбора, представляют собой ансамблевый подход к обучению для классификации, регрессии и других задач, который работает путем создания беспорядка деревьев решений во время обучения.
Когда дело доходит до регрессии и классификации, случайный лес может обрабатывать наборы данных как с категориальными, так и с непрерывными переменными. Обычно это помогает нам превзойти другие алгоритмы и преодолеть такие проблемы, как переоснащение и проклятие размерности.
БЫСТРАЯ АНАЛОГИЯ ДЛЯ ЛУЧШЕГО ПОНИМАНИЯ:
Дядя Джон хочет обратиться к врачу из-за острого дискомфорта в животе, поэтому он обращается к своим приятелям за рекомендациями к лучшим врачам в городе. Посоветовавшись с рядом друзей и членов семьи, Атлас выбирает врача, получившего самые высокие рекомендации.
Итак, что это значит? То же самое верно и для случайных лесов. Он строит деревья решений из нескольких выборок и использует большинство голосов для классификации и среднее значение для регрессии.
КАК СМЕЩЕНИЕ И ДИСПЕРСИЯ ВЛИЯЮТ НА АЛГОРИТМ?
ПРЕДВЗЯТОСТЬ
- Измеряется точность или качество алгоритма.
- Высокое смещение означает плохое совпадение
дисперсия
- Измеряется точность или специфичность совпадения.
- Высокая дисперсия означает слабое соответствие
Мы хотели бы минимизировать каждый из них. Но, к сожалению, мы не можем сделать это самостоятельно, так как есть компромисс
ОЖИДАЕМАЯ ОШИБКА ПРОГНОЗА = ДИСПЕРСИЯ + ОТКЛОНЕНИЕ² + ШУМ²
ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ ДРУГИХ АЛГОРИТМОВ?
Любой другой метод уменьшения размерности данных, такой как коэффициент пропущенных значений и анализ основных компонентов, должен быть создан с нуля, но лучшее в случайном лесу то, что он имеет встроенные функции и представляет собой древовидную модель, использующую сочетание деревьев решений для нелинейной классификации данных и регрессии.
Не теряя много времени, давайте перейдем к основной части, где мы обсудим работу RANDOM FOREST:
РАБОТА СО СЛУЧАЙНЫМ ЛЕСОМ:
Как мы видели в аналогии, RANDOM FOREST работает на основе техники ансамбля; однако, что именно означает ансамблевая техника? На самом деле это довольно просто. Ансамбль просто относится к комбинации многочисленных моделей. В результате для создания прогнозов используется не одна модель, а группа моделей.
АНСАМБЕЛЬНАЯ ТЕХНИКА ИМЕЕТ 2 ПРИЕМА:
1] УПАКОВКА
2] ПОВЫШЕНИЕ
Давайте углубимся, чтобы лучше понять вещи:
1] УПАКОВКА:
ДАВАЙТЕ ПОНЯЕМ ЭТО ЧЕРЕЗ ЛУЧШИЙ ВИД:
Бэггинг просто помогает нам уменьшить дисперсию громких наборов данных. Работает по ансамблевой технике.
- Независимый от алгоритма: метод общего назначения
- Хорошо подходит для алгоритмов с высокой дисперсией
- Снижение дисперсии достигается путем усреднения группы данных.
- Выберите количество классификаторов для создания (B)
РАЗНЫЕ ТРЕНИРОВОЧНЫЕ ДАННЫЕ:
- Пример обучающих данных с заменой
- Один и тот же алгоритм на разных подмножествах обучающих данных
ПРИЛОЖЕНИЕ :
- Используйте с алгоритмами высокой дисперсии (DT, NN)
- Легко распараллелить
- Ограничение: потеря интерпретируемости
- Ограничение: Что делать, если одна из функций доминирует?
ИТОГ ВСЕГО:
- Ансамбльный подход = агрегация Bootstrap.
- При пакетировании выбирается случайный набор данных, как показано на рисунке выше, а затем модель строится с использованием этих случайных выборок данных, что называется начальной загрузкой.
- Теперь, когда мы обучаем эти случайные выборочные данные, не рекомендуется выбирать точки данных только один раз, при обучении выборочных данных мы можем выбирать отдельные точки данных более одного раза.
- Теперь каждая из этих моделей построена, обучена и получены результаты.
- Наконец, учитываются результаты большинства.
Мы даже можем рассчитать ошибку из этой вещи, известной как ошибка случайного леса OOB:
СЛУЧАЙНЫЕ ЛЕСЫ: ОШИБКА OOB (ошибка вне пакета):
▪ Из каждого загруженного образца 1/3 остается в стороне как «Тест».
▪ Дерево построено на оставшихся 2/3
▪ Средняя ошибка для каждого из «тестовых» образцов называется «ошибкой отсутствия упаковки».
▪ Ошибка OOB обеспечивает хорошую оценку ошибки модели.
▪ Нет необходимости в отдельной перекрестной проверке
2] ПОВЫШЕНИЕ:
Короче говоря, бустинг помогает нам улучшить наш прогноз за счет уменьшения ошибок в прогнозном анализе данных.
Слабый ученик: нужно только сгенерировать гипотезу с точностью обучения выше 0,5, т. Е. Ошибка ‹ 50% для любого распределения.
КЛЮЧЕВАЯ ИНТУИЦИЯ:
- Сильных учеников очень трудно построить
- Построение более слабых учеников относительно легко зависит от эмпирического квадрата улучшения при назначении модели.
СХЕМА ПОДХОДА:
- Начните с алгоритма ML для поиска грубых эмпирических правил (он же «слабый» или «базовый» алгоритм).
- Повторно вызывайте базовый алгоритм, каждый раз передавая ему другое подмножество обучающих примеров.
- Базовый алгоритм обучения создает новое правило слабого прогнозирования при каждом вызове.
- После нескольких раундов алгоритм повышения должен объединить эти слабые правила в одно правило прогнозирования, которое, как мы надеемся, будет значительно точнее, чем любое из слабых правил по отдельности.
ДВЕ КЛЮЧЕВЫЕ ДЕТАЛИ:
- Как выбирается распределение в каждом раунде?
- Каков наилучший способ объединить слабые правила в одно правило?
BOOSTING подразделяется на два типа:
1] УСИЛЕНИЕ АДА
2] ПОВЫШЕНИЕ XG
Что касается случайного леса, то говорят, что он следует методу мешков, а не методу повышения. Как следует из названия, форсирование предполагает обучение у других, что, в свою очередь, увеличивает обучение. В случайных лесах есть деревья, которые идут параллельно. При создании деревьев между ними нет взаимодействия.
Повышение помогает нам уменьшить ошибку за счет уменьшения смещения, тогда как, с другой стороны, бэггинг — это способ уменьшить дисперсию в прогнозе с помощью генерирования дополнительной информации для обучения из набора данных с использованием смесей с повторениями для получения множественных наборов результатов. оригинальная информация.
ДАВАЙТЕ ПОНИМЕМ БОЛЬШЕ, ПОЧЕМУ БЭГГИНГ, А НЕ БУСТИНГ:
Как бэггинг помогает с дисперсией — простой пример
ДЕРЕВЬЯ В МЕШКАХ
- Деревья решений имеют высокую дисперсию
- Результирующее дерево (модель) определяется обучающими данными.
- (Необрезанные) Деревья решений имеют тенденцию к переобучению
- Один из вариантов: снижение сложности затрат
мешочные деревья
- Образец с заменой (1 тренировочный набор → несколько тренировочных наборов)
- Модель обучения на каждом тренировочном наборе с начальной загрузкой
- несколько деревьев; каждый разный : Сад ☺
- Каждое DT предсказывает; Прогноз среднего / большинства голосов
- Выберите количество деревьев для постройки (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-
- КОМАНДНАЯ НАУКА ДАННЫХ ВСТРЕЧАЕТСЯ С КИБЕРБЕЗОПАСНОСТЬЮ ❤️💙