сравнение методов машинного обучения
Must-have алгоритмы машинного обучения
Этот пост — краткий обзор общих алгоритмов машинного обучения. К каждому прилагается краткое описание, гайды и полезные ссылки.
Метод главных компонент (PCA)/SVD
Это один из основных алгоритмов машинного обучения. Позволяет уменьшить размерность данных, потеряв наименьшее количество информации. Применяется во многих областях, таких как распознавание объектов, компьютерное зрение, сжатие данных и т. п. Вычисление главных компонент сводится к вычислению собственных векторов и собственных значений ковариационной матрицы исходных данных или к сингулярному разложению матрицы данных.
SVD — это способ вычисления упорядоченных компонентов.
Метод наименьших квадратов
Метод наименьших квадратов — математический метод, применяемый для решения различных задач, основанный на минимизации суммы квадратов отклонений некоторых функций от искомых переменных. Он может использоваться для «решения» переопределенных систем уравнений (когда количество уравнений превышает количество неизвестных), для поиска решения в случае обычных (не переопределенных) нелинейных систем уравнений, а также для аппроксимации точечных значений некоторой функции.
Используйте этот алгоритм, чтобы соответствовать простым кривым/регрессии.
Ограниченная линейная регрессия
Метод наименьших квадратов может смутить выбросами, ложными полями и т. д. Нужны ограничения, чтобы уменьшить дисперсию линии, которую мы помещаем в набор данных. Правильное решение состоит в том, чтобы соответствовать модели линейной регрессии, которая гарантирует, что веса не будут вести себя “плохо”. Модели могут иметь норму L1 (LASSO) или L2 (Ridge Regression) или обе (elastic regression).
Используйте этот алгоритм для соответствия линиям регрессии с ограничениями, избегая переопределения.
Метод k-средних
Всеми любимый неконтролируемый алгоритм кластеризации. Учитывая набор данных в виде векторов, мы можем создавать кластеры точек на основе расстояний между ними. Это один из алгоритмов машинного обучения, который последовательно перемещает центры кластеров, а затем группирует точки с каждым центром кластера. Входные данные – количество кластеров, которые должны быть созданы, и количество итераций.
Логистическая регрессия
Логистическая регрессия ограничена линейной регрессией с нелинейностью (в основном используется сигмоидальная функция или tanh) после применения весов, следовательно, ограничение выходов приближено к + / — классам (что равно 1 и 0 в случае сигмоида). Функции кросс-энтропийной потери оптимизированы с использованием метода градиентного спуска.
Примечание для начинающих: логистическая регрессия используется для классификации, а не регрессии. В целом, она схожа с однослойной нейронной сетью. Обучается с использованием методов оптимизации, таких как градиентный спуск или L-BFGS. NLP-разработчики часто используют её, называя “классификацией методом максимальной энтропии”.
Используйте LR для обучения простых, но очень “крепких” классификаторов.
SVM (Метод опорных векторов)
SVM – линейная модель, такая как линейная/логистическая регрессия. Разница в том, что она имеет margin-based функцию потерь. Вы можете оптимизировать функцию потерь, используя методы оптимизации, например, L-BFGS или SGD.
Одна уникальная вещь, которую могут выполнять SVM – это изучение классификаторов классов.
SVM может использоваться для обучения классификаторов (даже регрессоров).
Нейронные сети прямого распространения
В основном, это многоуровневые классификаторы логистической регрессии. Многие слои весов разделены нелинейностями (sigmoid, tanh, relu + softmax и cool new selu). Также они называются многослойными перцептронами. FFNN могут быть использованы для классификации и “обучения без учителя” в качестве автоэнкодеров.
FFNN можно использовать для обучения классификатора или извлечения функций в качестве автоэнкодеров.
Свёрточные нейронные сети
Практически все современные достижения в области машинного обучения были достигнуты с помощью свёрточных нейронных сетей. Они используются для классификации изображений, обнаружения объектов или даже сегментации изображений. Изобретенные Яном Лекуном в начале 90-х годов, сети имеют сверточные слои, которые действуют как иерархические экстракторы объектов. Вы можете использовать их для работы с текстом (и даже для работы с графикой).
Рекуррентные нейронные сети (RNNs)
RNNs моделируют последовательности, применяя один и тот же набор весов рекурсивно к состоянию агрегатора в момент времени t и вход в момент времени t. Чистые RNN редко используются сейчас, но его аналоги, например, LSTM и GRU являются самыми современными в большинстве задач моделирования последовательности. LSTM, который используется вместо простого плотного слоя в чистой RNN.
Используйте RNN для любой задачи классификации текста, машинного перевода, моделирования языка.
Условные случайные поля (CRFs)
Они используются для моделирования последовательности, как RNN, и могут использоваться в сочетании с RNN. Они также могут быть использованы в других задачах структурированных прогнозирования, например, в сегментации изображения. CRF моделирует каждый элемент последовательности (допустим, предложение), таким образом, что соседи влияют на метку компонента в последовательности, а не на все метки, независимые друг от друга.
Используйте CRF для связки последовательностей (в тексте, изображении, временном ряду, ДНК и т. д.).
Деревья принятия решений и случайные леса
Один из самых распространённых алгоритмов машинного обучения. Используется в статистике и анализе данных для прогнозных моделей. Структура представляет собой “листья” и “ветки”. На “ветках” дерева решения записаны атрибуты, от которых зависит целевая функция, в “листьях” записаны значения целевой функции, а в остальных узлах – атрибуты, по которым различаются случаи.
Чтобы классифицировать новый случай, надо спуститься по дереву до листа и выдать соответствующее значение. Цель состоит в том, чтобы создать модель, которая предсказывает значение целевой переменной на основе нескольких входных переменных.
Сравнительный анализ алгоритмов машинного обучения
Дата публикации Oct 3, 2019
Алгоритмы машинного обучения часто классифицируются как контролируемые или неконтролируемые.
Что такое контролируемое машинное обучение?
При обучении под наблюдением вы тренируете машину, используя данные, которые хорошо«меченый. »Это означает, что некоторые данные уже помечены с правильным ответом. Это можно сравнить с обучением, которое происходит в присутствии руководителя или учителя.
Алгоритм контролируемого обучения учится на помеченных данных обучения и помогает вам прогнозировать результаты непредвиденных данных.
В контролируемом обучении используется алгоритм для изучения функции отображения из входной переменной (x) в выходную переменную (y); то есть y = f (X).
Задача такой проблемы состоит в том, чтобы максимально точно аппроксимировать функцию отображения (f) так, чтобы при появлении новых входных данных (x) можно было прогнозировать выходную переменную (y) для набора данных.
Контролируемое обучение может быть далее разделено на 2 категории: регрессия и классификация
регрессия
В машинном обучении регрессионные алгоритмы пытаются оценить функцию отображения (f) от входных переменных (x) до числовых или непрерывных выходных переменных (y).
Например, если вам предоставляется набор данных о домах, и вас просят предсказать их цены, это задача регрессии, потому что цена будет непрерывным выходом.
классификация
С другой стороны, алгоритмы классификации пытаются оценить функцию отображения (f) из входных переменных (x) в дискретные или категориальные выходные переменные (y).
В случае набора данных о ценах на жилье, дома будут классифицироваться независимо от того, подпадают ли их цены в две отдельные категории: выше или ниже указанной цены.
Регрессия против Классификации
Основное различие между ними состоит в том, что выходная переменная в регрессии является числовой (или непрерывной), тогда как переменная для классификации является категориальной (или дискретной).
Что такое обучение без учителя?
Необучаемые алгоритмы обучения позволяют выполнять более сложные задачи обработки по сравнению с контролируемым обучением.
Сегодня я сосредоточусь на проблеме регрессии (контролируемое обучение).
Набор данных, который я выбрал, можно скачать сВот
О наборе данных
База данных была создана с записями поведения городского движения города Сан-Паулу в Бразилии с 14 декабря 2009 года по 18 декабря 2009 года (с понедельника по пятницу). Регистрируется с 7:00 до 20:00 каждые 30 минут.
Импорт библиотек
Предложение: пакеты установки pip (в случае возникновения ошибки)
Выбор алгоритмов машинного обучения Azure
Распространенный вопрос: «Какой алгоритм машинного обучения следует использовать?» Выбранный алгоритм зависит, в основном, от двух различных аспектов сценария обработки и анализа данных:
Что вы хотите сделать с данными? В частности, каков бизнес-вопрос, на который вы хотите ответить при обучении по прошлым данным?
Каковы требования к сценарию обработки и анализа данных? В частности, какова точность, время обучения, линейность, количество параметров и функций, поддерживаемых вашим решением?
Бизнес-сценарии и краткий справочник по Машинному обучению
Краткий справочник по Машинному обучению Azure в первую очередь позволяет ответить на вопрос: что нужно сделать с данными? В кратком справочнике по Машинному обучению найдите нужную задачу, а затем алгоритм конструктора Машинного обучения Azure для решения прогнозной аналитики.
Чтобы скачать краткий справочник по алгоритмам Машинного обучения, перейдите в краткий справочник по алгоритмам Машинного обучения Azure.
Вместе с рекомендациями, приведенными в кратком справочнике по алгоритмам Машинного обучения, следует учитывать другие требования при выборе алгоритма Машинного обучения для принятия решения. Ниже приведены дополнительные факторы, которые следует учитывать, такие как точность, время обучения, линейность, количество параметров и функций.
Сравнение алгоритмов машинного обучения
Некоторые алгоритмы обучения делают определенные предположения о структуре данных или желаемых результатов. Если вы сможете найти тот алгоритм, который соответствует вашим потребностям, с ним вы сможете получить более точные результаты, более точные прогнозы и сократить время обучения.
В следующей таблице перечислены некоторые из наиболее важных характеристик алгоритмов из семейств классификации, регрессии и кластеризации.
Алгоритм | Точность | Время обучения | Линейность | Параметры | Примечания |
---|---|---|---|---|---|
Семейство классификации | |||||
Двухклассовая логистическая регрессия | Хорошо | Быстрый | Да | 4 | |
Двухклассовый лес принятия решений | Отлично | Средняя | Нет | 5 | Показывает меньшее время оценки. Предложение не работает с Многоклассовым классификатором «один — все» из-за более медленных оценок, вызванных блокировкой в накоплении прогнозов дерева |
Двухклассовое увеличивающееся дерево принятия решений | Отлично | Средняя | Нет | 6 | Большой объем памяти |
Двухклассовая нейронная сеть | Хорошо | Средняя | Нет | 8 | |
Двухклассовое усредненное восприятие | Хорошо | Средняя | Да | 4 | |
Двухклассовый метод опорных векторов | Хорошо | Быстрый | Да | 5 | Подходит для больших наборов функций |
Многоклассовая логистическая регрессия | Хорошо | Быстрый | Да | 4 | |
Многоклассовый лес принятия решений | Отлично | Средняя | Нет | 5 | Показывает меньшее время оценки |
Мультиклассовое увеличивающееся дерево принятия решений | Отлично | Средняя | Нет | 6 | Имеет тенденцию к повышению точности с небольшим риском меньшего объема |
Многоклассовая нейронная сеть | Хорошо | Средняя | Нет | 8 | |
Многоклассовый классификатор «один — все» | — | — | — | — | Просмотрите свойства выбранного двухклассового метода |
Семейство регрессии | |||||
Линейная регрессия | Хорошо | Быстрый | Да | 4 | |
Регрессия леса принятия решений | Отлично | Средняя | Нет | 5 | |
Регрессия увеличивающегося дерева принятия решений | Отлично | Средняя | Нет | 6 | Большой объем памяти |
Регрессия нейронной сети | Хорошо | Средняя | Нет | 8 | |
Семейство кластеризации | |||||
Кластеризация методом k-средних | Отлично | Средняя | Да | 8 | Алгоритм кластеризации |
Требования к сценарию обработки и анализа данных
После того как будет известно о том, что делать с данными, необходимо определить дополнительные требования для принятия решения.
Сделайте выбор и, возможно, найдите приемлемое решение для удовлетворения следующих требований.
Точность
Точность машинного обучения позволяет измерить эффективность модели как пропорцию истинных результатов к общему числу вариантов. в конструкторе Машинное обучение, компонент «оценка модели » вычисляет набор метрик оценки, стандартных для отрасли. Этот компонент можно использовать для измерения точности обученной модели.
Получение наиболее точного ответа возможно не всегда. Иногда достаточно приближенного ответа в зависимости от того, для чего он используется. В этом случае можно значительно сократить время обработки, придерживаясь более приближенных методов. Кроме того, приблизительные методы, как правило, позволяют избежать лжевзаимосвязи.
Существует три способа использования компонента «анализ модели»:
Полный список метрик и подходов, которые можно использовать для вычисления точности моделей машинного обучения, см. в разделе Оценка компонента модели.
Время обучения
Контролируемое обучение обозначает использование исторических данных для построения модели машинного обучения, которая позволяет снизить ошибки до минимума. Количество минут или часов, необходимых для обучения модели, сильно отличается для различных алгоритмов. Время обучения часто тесно связано с точностью — одно обычно сопутствует другому.
Кроме того, некоторые алгоритмы более чувствительны к количеству точек данных, чем другие. Можно выбрать конкретный алгоритм, так как имеется ограничение по времени, особенно если набор данных большой.
В конструкторе Машинного обучения создание и использование модели машинного обучения, как правило, состоит из трех этапов:
Необходимо настроить модель, выбрав определенный тип алгоритма и определив ее параметры или гиперпараметры.
Предоставьте помеченный набор данных, который содержит данные, совместимые с алгоритмом. Подключение данные и модель для обучения компонента модели.
После завершения обучения используйте обученную модель с одним из компонентов оценки для создания прогнозов по новым данным.
Линейность
Линейность в статистике и машинном обучении означает, что между переменной и константой в наборе данных существует линейная связь. Например, алгоритмы линейной классификации предполагают, что классы могут быть разделены прямой линией (или ее аналогом для большего числа измерений).
Линейность используется во многих алгоритмах машинного обучения. В конструкторе «Машинное обучение» Azure они включают:
Алгоритмы линейной регрессии предполагают, что тренды данных следуют прямой линии. Это предположение полезно для решения некоторых проблем, но для других снижает точность. Несмотря на недостатки, линейные алгоритмы распространены в качестве первой стратегии. Обычно они алгоритмически просты и быстро осваиваются.
Граница нелинейного класса — использование алгоритма линейной классификации приведет к снижению точности.
Данные с нелинейным трендом — использование метода линейной регрессии приведет к появлению гораздо большего количества ошибок, чем необходимо.
Количество параметров
Параметры являются теми регуляторами, которые специалист по данным поворачивает при настройке алгоритма. Это числа, которые влияют на поведение алгоритма, например чувствительность к ошибкам или количество итераций, либо на варианты поведения алгоритма. Время обучения и точность алгоритма иногда могут быть чувствительными к точности задания параметров. Как правило, алгоритмы с большим числом параметров требуют большого количества проб и ошибок, чтобы определить удачное сочетание параметров.
кроме того, в конструкторе Машинное обучение используется компонент параметров настройки модели : цель этого компонента — определить оптимальные параметры для модели машинного обучения. Компонент создает и тестирует несколько моделей с помощью различных сочетаний параметров. Он сравнивает метрики по всем моделям, чтобы получить сочетания параметров.
Хотя это отличный способ убедиться в том, что вы заполнили пространство параметров, с увеличением количества параметров экспоненциально возрастает время, необходимое для обучения модели. Плюсом является то, что наличие большого количества параметров обычно означает, что алгоритм имеет большую гибкость. Часто это позволяет достичь очень хорошей точности при условии, что вы можете найти правильное сочетание настроек параметров.
Количество функций
В машинном обучении компонент — это количественная переменная, которую вы пытаетесь проанализировать. Для некоторых типов данных количество функций может быть очень большим по сравнению с количеством точек данных. Это часто происходит с генетическими или текстовыми данными.
Большое количество функций для некоторых алгоритмов обучения может привести к тому, что они увязнут и время обучения станет недопустимо большим. Метод опорных векторов особенно хорошо подходит для сценариев с большим количеством функций. По этой причине они использовались во многих областях применения: от извлечения информации до классификации текста и изображения. Методы опорных векторов можно использовать как для задач классификации, так и регрессии.
Как правило, выбор признаков обозначает процесс применения статистических тестов к входным данным с учетом конкретных выходных данных. Цель состоит в том, чтобы определить столбцы, которые лучше других позволяют прогнозировать эти выходные данные. компонент выбора компонентов на основе фильтра в конструкторе Машинное обучение предоставляет несколько алгоритмов выбора компонентов для выбора. Компонент включает методы корреляции, такие как корреляция Пирсона и значения хи-квадрат.
Обзор самых популярных алгоритмов машинного обучения
Авторизуйтесь
Обзор самых популярных алгоритмов машинного обучения
Существует такое понятие, как «No Free Lunch» теорема. Её суть заключается в том, что нет такого алгоритма, который был бы лучшим выбором для каждой задачи, что в особенности касается обучения с учителем.
Например, нельзя сказать, что нейронные сети всегда работают лучше, чем деревья решений, и наоборот. На эффективность алгоритмов влияет множество факторов вроде размера и структуры набора данных.
По этой причине приходится пробовать много разных алгоритмов, проверяя эффективность каждого на тестовом наборе данных, и затем выбирать лучший вариант. Само собой, нужно выбирать среди алгоритмов, соответствующих вашей задаче. Если проводить аналогию, то при уборке дома вы, скорее всего, будете использовать пылесос, метлу или швабру, но никак не лопату.
19–21 ноября, Онлайн, Беcплатно
Представляем вашему вниманию краткий обзор топ-10 популярных алгоритмов, используемых в машинном обучении.
1. Линейная регрессия
Линейная регрессия — пожалуй, один из наиболее известных и понятных алгоритмов в статистике и машинном обучении.
Прогностическое моделирование в первую очередь касается минимизации ошибки модели или, другими словами, как можно более точного прогнозирования. Мы будем заимствовать алгоритмы из разных областей, включая статистику, и использовать их в этих целях.
Например: Y = B0 + B1 * X
Для оценки регрессионной модели используются различные методы вроде линейной алгебры или метода наименьших квадратов.
Линейная регрессия существует уже более 200 лет, и за это время её успели тщательно изучить. Так что вот пара практических правил: уберите похожие (коррелирующие) переменные и избавьтесь от шума в данных, если это возможно. Линейная регрессия — быстрый и простой алгоритм, который хорошо подходит в качестве первого алгоритма для изучения.
Логистическая регрессия — ещё один алгоритм, пришедший в машинное обучение прямиком из статистики. Её хорошо использовать для задач бинарной классификации (это задачи, в которых на выходе мы получаем один из двух классов).
Логистическая регрессия похожа на линейную тем, что в ней тоже требуется найти значения коэффициентов для входных переменных. Разница заключается в том, что выходное значение преобразуется с помощью нелинейной или логистической функции.
Логистическая функция выглядит как большая буква S и преобразовывает любое значение в число в пределах от 0 до 1. Это весьма полезно, так как мы можем применить правило к выходу логистической функции для привязки к 0 и 1 (например, если результат функции меньше 0.5, то на выходе получаем 1) и предсказания класса.
Благодаря тому, как обучается модель, предсказания логистической регрессии можно использовать для отображения вероятности принадлежности образца к классу 0 или 1. Это полезно в тех случаях, когда нужно иметь больше обоснований для прогнозирования.
Как и в случае с линейной регрессией, логистическая регрессия выполняет свою задачу лучше, если убрать лишние и похожие переменные. Модель логистической регрессии быстро обучается и хорошо подходит для задач бинарной классификации.
3. Линейный дискриминантный анализ (LDA)
Логистическая регрессия используется, когда нужно отнести образец к одному из двух классов. Если классов больше, чем два, то лучше использовать алгоритм LDA (Linear discriminant analysis).
Представление LDA довольно простое. Оно состоит из статистических свойств данных, рассчитанных для каждого класса. Для каждой входной переменной это включает:
Предсказания производятся путём вычисления дискриминантного значения для каждого класса и выбора класса с наибольшим значением. Предполагается, что данные имеют нормальное распределение, поэтому перед началом работы рекомендуется удалить из данных аномальные значения. Это простой и эффективный алгоритм для задач классификации.
4. Деревья принятия решений
Дерево решений можно представить в виде двоичного дерева, знакомого многим по алгоритмам и структурам данных. Каждый узел представляет собой входную переменную и точку разделения для этой переменной (при условии, что переменная — число).
Листовые узлы — это выходная переменная, которая используется для предсказания. Предсказания производятся путём прохода по дереву к листовому узлу и вывода значения класса на этом узле.
Деревья быстро обучаются и делают предсказания. Кроме того, они точны для широкого круга задач и не требуют особой подготовки данных.
Наивный Байес — простой, но удивительно эффективный алгоритм.
Модель состоит из двух типов вероятностей, которые рассчитываются с помощью тренировочных данных:
После расчёта вероятностной модели её можно использовать для предсказания с новыми данными при помощи теоремы Байеса. Если у вас вещественные данные, то, предполагая нормальное распределение, рассчитать эти вероятности не составляет особой сложности.
Наивный Байес называется наивным, потому что алгоритм предполагает, что каждая входная переменная независимая. Это сильное предположение, которое не соответствует реальным данным. Тем не менее данный алгоритм весьма эффективен для целого ряда сложных задач вроде классификации спама или распознавания рукописных цифр.
6. K-ближайших соседей (KNN)
К-ближайших соседей — очень простой и очень эффективный алгоритм. Модель KNN (K-nearest neighbors) представлена всем набором тренировочных данных. Довольно просто, не так ли?
Предсказание для новой точки делается путём поиска K ближайших соседей в наборе данных и суммирования выходной переменной для этих K экземпляров.
Вопрос лишь в том, как определить сходство между экземплярами данных. Если все признаки имеют один и тот же масштаб (например, сантиметры), то самый простой способ заключается в использовании евклидова расстояния — числа, которое можно рассчитать на основе различий с каждой входной переменной.
KNN может потребовать много памяти для хранения всех данных, но зато быстро сделает предсказание. Также обучающие данные можно обновлять, чтобы предсказания оставались точными с течением времени.
Идея ближайших соседей может плохо работать с многомерными данными (множество входных переменных), что негативно скажется на эффективности алгоритма при решении задачи. Это называется проклятием размерности. Иными словами, стоит использовать лишь наиболее важные для предсказания переменные.
Недостаток KNN заключается в том, что нужно хранить весь тренировочный набор данных. Если KNN хорошо себя показал, то есть смысл попробовать алгоритм LVQ (Learning vector quantization), который лишён этого недостатка.
LVQ представляет собой набор кодовых векторов. Они выбираются в начале случайным образом и в течение определённого количества итераций адаптируются так, чтобы наилучшим образом обобщить весь набор данных. После обучения эти вектора могут использоваться для предсказания так же, как это делается в KNN. Алгоритм ищет ближайшего соседа (наиболее подходящий кодовый вектор) путём вычисления расстояния между каждым кодовым вектором и новым экземпляром данных. Затем для наиболее подходящего вектора в качестве предсказания возвращается класс (или число в случае регрессии). Лучшего результата можно достичь, если все данные будут находиться в одном диапазоне, например от 0 до 1.
8. Метод опорных векторов (SVM)
Метод опорных векторов, вероятно, один из наиболее популярных и обсуждаемых алгоритмов машинного обучения.
Гиперплоскость — это линия, разделяющая пространство входных переменных. В методе опорных векторов гиперплоскость выбирается так, чтобы наилучшим образом разделять точки в плоскости входных переменных по их классу: 0 или 1. В двумерной плоскости это можно представить как линию, которая полностью разделяет точки всех классов. Во время обучения алгоритм ищет коэффициенты, которые помогают лучше разделять классы гиперплоскостью.
Расстояние между гиперплоскостью и ближайшими точками данных называется разницей. Лучшая или оптимальная гиперплоскость, разделяющая два класса, — это линия с наибольшей разницей. Только эти точки имеют значение при определении гиперплоскости и при построении классификатора. Эти точки называются опорными векторами. Для определения значений коэффициентов, максимизирующих разницу, используются специальные алгоритмы оптимизации.
Метод опорных векторов, наверное, один из самых эффективных классических классификаторов, на который определённо стоит обратить внимание.
Случайный лес — очень популярный и эффективный алгоритм машинного обучения. Это разновидность ансамблевого алгоритма, называемого бэггингом.
Бутстрэп является эффективным статистическим методом для оценки какой-либо величины вроде среднего значения. Вы берёте множество подвыборок из ваших данных, считаете среднее значение для каждой, а затем усредняете результаты для получения лучшей оценки действительного среднего значения.
В бэггинге используется тот же подход, но для оценки всех статистических моделей чаще всего используются деревья решений. Тренировочные данные разбиваются на множество выборок, для каждой из которой создаётся модель. Когда нужно сделать предсказание, то его делает каждая модель, а затем предсказания усредняются, чтобы дать лучшую оценку выходному значению.
В алгоритме случайного леса для всех выборок из тренировочных данных строятся деревья решений. При построении деревьев для создания каждого узла выбираются случайные признаки. В отдельности полученные модели не очень точны, но при их объединении качество предсказания значительно улучшается.
Если алгоритм с высокой дисперсией, например, деревья решений, показывает хороший результат на ваших данных, то этот результат зачастую можно улучшить, применив бэггинг.
Бустинг — это семейство ансамблевых алгоритмов, суть которых заключается в создании сильного классификатора на основе нескольких слабых. Для этого сначала создаётся одна модель, затем другая модель, которая пытается исправить ошибки в первой. Модели добавляются до тех пор, пока тренировочные данные не будут идеально предсказываться или пока не будет превышено максимальное количество моделей.
AdaBoost был первым действительно успешным алгоритмом бустинга, разработанным для бинарной классификации. Именно с него лучше всего начинать знакомство с бустингом. Современные методы вроде стохастического градиентного бустинга основываются на AdaBoost.
AdaBoost используют вместе с короткими деревьями решений. После создания первого дерева проверяется его эффективность на каждом тренировочном объекте, чтобы понять, сколько внимания должно уделить следующее дерево всем объектам. Тем данным, которые сложно предсказать, даётся больший вес, а тем, которые легко предсказать, — меньший. Модели создаются последовательно одна за другой, и каждая из них обновляет веса для следующего дерева. После построения всех деревьев делаются предсказания для новых данных, и эффективность каждого дерева определяется тем, насколько точным оно было на тренировочных данных.
Так как в этом алгоритме большое внимание уделяется исправлению ошибок моделей, важно, чтобы в данных отсутствовали аномалии.
Пара слов напоследок
Когда новички видят всё разнообразие алгоритмов, они задаются стандартным вопросом: «А какой следует использовать мне?» Ответ на этот вопрос зависит от множества факторов:
Даже опытный data scientist не скажет, какой алгоритм будет работать лучше, прежде чем попробует несколько вариантов. Существует множество других алгоритмов машинного обучения, но приведённые выше — наиболее популярные. Если вы только знакомитесь с машинным обучением, то они будут хорошей отправной точкой.