В этом посте [1] мы расскажем о самых популярных алгоритмах машинного обучения.
Полезно ознакомиться с основными алгоритмами в данной области, чтобы получить представление о доступных методах.
Алгоритмов так много, что может показаться, что их названия просто ошеломляют, а от вас ожидают, что вы просто знаете, что это такое и к чему они подходят.
Я хочу предложить вам два способа обдумать и классифицировать алгоритмы, с которыми вы можете столкнуться в полевых условиях.
- Первый — это группировка алгоритмов по их стилю обучения.
- Второй — это группировка алгоритмов по их сходству по форме или функциям (например, группировка похожих животных вместе).
Оба подхода полезны, но мы сосредоточимся на группировке алгоритмов по сходству и рассмотрим множество различных типов алгоритмов.
Прочитав этот пост, вы гораздо лучше поймете самые популярные алгоритмы машинного обучения для обучения под наблюдением и то, как они связаны.
Начните свой проект с моей новой книги «Основные алгоритмы машинного обучения», включающей пошаговые руководства и файлы электронных таблиц Excel для всех примеров.
Давайте начнем.
Отличный пример сочетания линий, которые лучше всего подходят друг другу. Слабые элементы выделены серым цветом, объединенный прогноз — красным.
Графмк взят из Википедии, находится в общественном достоянии.
Алгоритмы ,сгруппированные по стилю обучения
Существуют различные способы, с помощью которых алгоритм может моделировать проблему, основываясь на своем взаимодействии с опытом, окружающей средой или как бы мы ни называли входные данные.
В учебниках по машинному обучению и искусственному интеллекту популярно сначала рассматривать стили обучения, которые может использовать алгоритм.
Существует всего несколько основных стилей обучения или моделей обучения, которые могут быть у алгоритма, и мы рассмотрим их здесь с несколькими примерами алгоритмов и типов задач, которым они подходят.
Такая таксономия или способ организации алгоритмов машинного обучения полезен тем, что заставляет вас задуматься о роли входных данных и процессе подготовки модели и выбрать тот, который наиболее подходит для вашей задачи, чтобы получить наилучший результат.
Давайте рассмотрим три различных стиля обучения в алгоритмах машинного обучения:
1. Обучение под контролем
Входные данные называются обучающими и имеют известную метку или результат, например, спам/не-спам или цена акций на данный момент.
Модель подготавливается в процессе обучения, в ходе которого требуется делать прогнозы, и корректируется, если эти прогнозы неверны. Процесс обучения продолжается до тех пор, пока модель не достигнет желаемого уровня точности в отношении обучающих данных.
Примерами задач являются классификация и регрессия.
Примеры алгоритмов включают в себя логистическую регрессию и нейронную сеть с обратным распространением.
2. Обучение без контроля
Входные данные не помечены и не имеют известного результата.
Модель создается путем вывода структур, присутствующих во входных данных. Это может быть сделано для извлечения общих правил. Это может быть математический процесс для систематического уменьшения избыточности или для организации данных по сходству.
Примерами проблем являются кластеризация, уменьшение размерности и изучение ассоциативных правил.
Примеры алгоритмов включают в себя: алгоритм Apriori и K-среднее.
3. Полуконтролируемое обучение
Входные данные представляют собой смесь помеченных и немаркированных примеров.
Существует требуемая задача прогнозирования, но модель должна изучить структуры для организации данных, а также для составления прогнозов.
Примерами проблем являются классификация и регрессия.
Примеры алгоритмов являются расширениями других гибких методов, которые делают предположения о том, как моделировать немаркированные данные.
Обзор алгоритмов машинного обучения
При обработке данных для моделирования бизнес-решений чаще всего используются контролируемые и неконтролируемые методы обучения.
На данный момент актуальной темой являются методы обучения без контроля в таких областях, как классификация изображений, где имеются большие наборы данных с очень небольшим количеством помеченных примеров.
Алгоритмы, сгруппированные по сходству
Алгоритмы часто группируются по сходству с точки зрения их функций (того, как они работают). Например, методы, основанные на дереве, и методы, основанные на нейронных сетях.
Я думаю, что это наиболее полезный способ сгруппировать алгоритмы, и именно этот подход мы будем использовать здесь.
Это полезный метод группировки, но он не идеален. Все еще существуют алгоритмы, которые можно было бы с такой же легкостью разделить на несколько категорий, как, например, обучающее векторное квантование, которое одновременно является методом, основанным на нейронных сетях, и методом, основанным на экземплярах.
Существуют также категории с одинаковыми названиями, которые описывают проблему и класс алгоритма, такие как регрессия и кластеризация.
Мы могли бы справиться с этими случаями, перечислив алгоритмы дважды или выбрав группу, которая субъективно является “наиболее подходящей”. Мне нравится этот последний подход, заключающийся в том, чтобы не дублировать алгоритмы для упрощения работы.
В этом разделе мы приводим список многих популярных алгоритмов машинного обучения, сгруппированных так, как мы считаем наиболее интуитивно понятным. Список не является исчерпывающим ни по группам, ни по алгоритмам, но я думаю, что он является репрезентативным и будет полезен для вас, чтобы составить представление о ситуации.
Пожалуйста, обратите внимание: существует сильное предубеждение в отношении алгоритмов, используемых для классификации и регрессии, двух наиболее распространенных проблем машинного обучения с контролем, с которыми вы столкнетесь.
Если вы знаете алгоритм или группу алгоритмов, которых нет в списке, напишите об этом в комментариях и поделитесь с нами. Давайте углубимся в это.
Алгоритмы регрессии
Регрессия связана с моделированием взаимосвязи между переменными, которая итеративно уточняется с использованием меры погрешности в прогнозах, сделанных с помощью модели.
Методы регрессии являются рабочей лошадкой статистики и были использованы в статистическом машинном обучении. Это может привести к путанице, поскольку мы можем использовать регрессию для обозначения класса задачи и класса алгоритма. На самом деле регрессия — это процесс.
Наиболее популярными алгоритмами регрессии являются:
- Обычная регрессия методом наименьших квадратов (OLSR)
- Линейная регрессия
- Логистическая регрессия
- Пошаговая регрессия
- Многомерные адаптивные регрессионные сплайны (MARS)
- Локально оцененное сглаживание диаграммы рассеяния (LOESS)
Алгоритмы, основанные на примерах
Модель обучения на основе примеров — это задача решения с использованием примеров или примерами обучающих данных, которые считаются важными или необходимыми для модели.
Такие методы обычно создают базу данных примеров данных и сравнивают новые данные с базой данных, используя меру сходства, чтобы найти наилучшее соответствие и сделать прогноз. По этой причине методы, основанные на экземплярах, также называются методами «победитель получает все» и «обучение на основе памяти». Основное внимание уделяется представлению сохраненных экземпляров и мерам сходства, используемым между экземплярами.
Наиболее популярными алгоритмами, основанными на экземплярах, являются:
- k-Ближайший сосед (kNN)
- Квантование обучающих векторов (LVQ)
- Самоорганизующаяся карта (SOM)
- Локально взвешенное обучение (LWL)
- Методы опорных векторов (SVM)
Алгоритмы регуляризации
Расширение другого метода (обычно регрессионного), которое ограничивает модели в зависимости от их сложности, отдавая предпочтение более простым моделям, которые также лучше поддаются обобщению.
Я перечислил здесь алгоритмы регуляризации отдельно, потому что они являются популярными, мощными и, как правило, простыми модификациями других методов.
Наиболее популярными алгоритмами регуляризации являются:
- Регрессия гребня
- Оператор наименьшей абсолютной усадки и выбора (LASSO)
- Эластичная сетка
- Регрессия с наименьшим углом (LARS)
Алгоритмы дерева решений
Методы дерева решений строят модель решений, принимаемых на основе фактических значений атрибутов в данных.
Решения разветвляются на древовидные структуры до тех пор, пока не будет принято прогнозируемое решение для данной записи. Деревья решений обучаются на данных для задач классификации и регрессии. Деревья решений часто являются быстрыми и точными и пользуются большой популярностью в машинном обучении.
Наиболее популярными алгоритмами дерева решений являются:
- Дерево классификации и регрессии (CART)
- Итеративный дихотомизатор 3 (ID3)
- C4.5 и C5.0 (различные версии эффективного подхода)
- Автоматическое определение взаимодействия по методу Хи-квадрат (CHAID)
- Блок принятия решений
- M5
- Условные деревья принятия решений
Байесовские алгоритмы
Байесовские методы — это те, которые явно применяют теорему Байеса для таких задач, как классификация и регрессия.
Наиболее популярными байесовскими алгоритмами являются:
- Наивный Байесовский
- Гауссовский наивный байесовский
- Мультиномиальный наивный байесовский
- Усредненные оценки с одной зависимостью (AODE)
- Байесовская сеть убеждений (BBN)
- Байесовская сеть (BN)
Алгоритмы кластеризации
Кластеризация, как и регрессия, описывает класс проблемы и класс методов.
Методы кластеризации обычно организуются с помощью таких подходов к моделированию, как центроидный и иерархический. Все методы основаны на использовании присущих данным структур для наилучшей организации данных в группы с максимальной общностью.
Наиболее популярными алгоритмами кластеризации являются:
- k-средние значения
- k-медианы
- Максимизация математического ожидания (EM)
- Иерархическая кластеризация
Алгоритмы изучения ассоциативных правил
Методы изучения ассоциативных правил позволяют извлекать правила, которые наилучшим образом объясняют наблюдаемые взаимосвязи между переменными в данных.
Эти правила позволяют выявлять важные и коммерчески полезные ассоциации в больших многомерных наборах данных, которые могут быть использованы организацией.
Наиболее популярными алгоритмами изучения ассоциативных правил являются:
- Алгоритм Apriori
- Алгоритм Eclat
Алгоритмы искусственных нейронных сетей
Искусственные нейронные сети — это модели, основанные на структуре и/или функциях биологических нейронных сетей.
Они представляют собой класс алгоритмов сопоставления с образцом, которые обычно используются для задач регрессии и классификации, но на самом деле представляют собой огромную область, состоящую из сотен алгоритмов и вариаций для решения всевозможных типов задач.
Обратите внимание, что я отделил глубокое обучение от нейронных сетей из-за массового роста и популярности в этой области. Здесь мы рассматриваем более классические методы.
Наиболее популярными алгоритмами искусственных нейронных сетей являются:
- Персептрон
- Многослойный персептрон (MLP)
- Обратное распространение
- Стохастический градиентный спуск
- Сеть Хопфилда
- Сеть радиальных базисных функций (RBFN)
Алгоритмы глубокого обучения
Методы глубокого обучения — это современное усовершенствование искусственных нейронных сетей, использующее множество дешевых вычислений.
Они связаны с созданием гораздо более крупных и сложных нейронных сетей, и, как отмечалось выше, многие методы связаны с очень большими наборами помеченных аналоговых данных, таких как изображения, текст, аудио и видео.
Наиболее популярными алгоритмами глубокого обучения являются:
- Сверточная нейронная сеть (CNN)
- Рекуррентные нейронные сети (RNNs)
- Сети с долговременной кратковременной памятью (Lstm)
- Многоуровневые автокодеры
- Глубокая машина Больцмана (DBM)
- Сети глубоких убеждений (DBN)
Алгоритмы уменьшения размерности
Как и методы кластеризации, методы уменьшения размерности направлены на поиск и использование присущей данным структуры, но в данном случае неконтролируемым образом или с целью обобщения или описания данных с использованием меньшего объема информации.
Это может быть полезно для визуализации многомерных данных или для упрощения данных, которые затем могут быть использованы в методе обучения под руководством преподавателя. Многие из этих методов могут быть адаптированы для использования в классификации и регрессии.
- Анализ главных компонент (PCA)
- Регрессия главных компонентов (PCR)
- Частичная регрессия методом наименьших квадратов (PLSR)
- Отображение Сэммона
- Многомерное масштабирование (MDS)
- Прогнозирование
- Линейный дискриминантный анализ (LDA)
- Смешанный дискриминантный анализ (MDA)
- Квадратичный дискриминантный анализ (QDA)
- Гибкий дискриминантный анализ (FDA)
- t-распределенное стохастическое вложение соседей (t-SNE)
- Равномерная аппроксимация многообразия и проекция для уменьшения размеров (UMAP)
Алгоритмы ансамбля
Методы ансамбля — это модели, состоящие из нескольких более слабых моделей, которые обучаются независимо друг от друга и чьи прогнозы объединяются определенным образом для получения общего прогноза.
Много усилий тратится на то, чтобы определить, какие типы слабых учащихся следует комбинировать, и способы их объединения. Это очень мощный класс методов, и как таковой он очень популярен.
- Бустинг
- Загрузочная агрегация (Bagging)
- AdaBoost
- Средневзвешенное значение (Blending)
- Пошаговое обобщение (Stacking)
- Градиентные ускоряющие машины (GBM)
- Деревья регрессии с ускорением градиента (GBRT)
- Случайный лес
Другие алгоритмы машинного обучения
Многие алгоритмы не были рассмотрены.
Я не рассматривал алгоритмы из специальных задач в процессе машинного обучения, таких как:
- Алгоритмы выбора функций
- Оценка точности алгоритма
- Показатели производительности
- Алгоритмы оптимизации
Я также не рассматривал алгоритмы из специализированных областей машинного обучения, таких как:
- Вычислительный интеллект (эволюционные алгоритмы и т.д.)
- Компьютерное зрение (CV)
- Обработка естественного языка (NLP)
- Рекомендательные системы
- Обучение с подкреплением
- Графические модели
- И многое другое…
Они могут появиться в будущих публикациях.
Читайте далее об алгоритмах машинного обучения
Целью этого обзора алгоритмов машинного обучения было дать вам общее представление о том, что существует, и несколько идей о том, как связать алгоритмы друг с другом.
Я собрал для вас некоторые ресурсы, чтобы вы могли продолжить изучение алгоритмов. Если у вас есть конкретный вопрос, пожалуйста, оставьте комментарий.
Другие списки алгоритмов машинного обучения
Если вам интересно, есть и другие отличные списки алгоритмов. Ниже приведены несколько примеров, отобранных вручную.
- Список алгоритмов машинного обучения: В Википедии. Несмотря на обширность, я не нахожу этот список или организацию алгоритмов особенно полезными.
- Категория алгоритмов машинного обучения: также в Википедии, немного более полезная, чем приведенный выше большой список Википедии. Она упорядочивает алгоритмы по алфавиту.
- Просмотр задач CRAN: Машинное обучение и статистическое обучение: Список всех пакетов и алгоритмов, поддерживаемых каждым пакетом машинного обучения в R., дает вам четкое представление о том, что существует и что люди используют для повседневного анализа.
- Топ-10 алгоритмов интеллектуального анализа данных: о самых популярных алгоритмах интеллектуального анализа данных. Еще один обоснованный и менее сложный подход к методам, которые вы могли бы использовать для глубокого изучения.
Как изучать алгоритмы машинного обучения
Алгоритмы — важная часть машинного обучения. Я увлечен этой темой и много пишу о ней в этом блоге. Ниже приведены несколько статей, отобранных вручную, которые могут заинтересовать вас для дальнейшего чтения.
- Как изучить любой алгоритм машинного обучения: системный подход, который вы можете использовать для изучения и понимания любого алгоритма машинного обучения, используя “шаблоны описания алгоритмов” (я использовал этот подход при написании своей первой книги).
- Как создавать целевые списки алгоритмов машинного обучения: Как вы можете создавать свои собственные систематизированные списки алгоритмов машинного обучения, чтобы начать работу над следующей проблемой машинного обучения.
- Как исследовать алгоритм машинного обучения: системный подход, который вы можете использовать для исследования алгоритмов машинного обучения (отлично работает в сочетании с шаблонным подходом, перечисленным выше).
- Как исследовать поведение алгоритмов машинного обучения: Методология, с помощью которой вы можете понять, как работают алгоритмы машинного обучения, путем создания и проведения очень небольших исследований их поведения. Исследования предназначены не только для ученых!
- Как внедрить алгоритм машинного обучения: процесс, а также советы и рекомендации по внедрению алгоритмов машинного обучения с нуля.
Как запускать алгоритмы машинного обучения
- Иногда хочется просто погрузиться в код. Ниже приведены некоторые ссылки, которые вы можете использовать для запуска алгоритмов машинного обучения, их написания с помощью стандартных библиотек или реализации с нуля.
- Как начать работу с алгоритмами машинного обучения в R: Ссылки на большое количество примеров кода на этом сайте, демонстрирующих алгоритмы машинного обучения в R.
- Рецепты алгоритмов машинного обучения в scikit-learn: коллекция примеров кода на Python, демонстрирующих, как создавать прогнозирующие модели с помощью scikit-learn.
- Как запустить свой первый классификатор в Weka: Руководство по запуску вашего самого первого классификатора в Weka (код не требуется!).
Заключительное слово
Надеюсь, вы сочли этот тур полезным.
Пожалуйста, оставьте комментарий, если у вас есть какие-либо вопросы или
идеи о том, как улучшить алгоритм тура.
[1] Brownlee J. (2023), A Tour of Machine Learning Algorithms, machinelearningmastery.com, 11.19.2023, https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/