Машинное обучение — один из самых известных и важных подразделов науки о данных. В 1959 году исследователь компании IBM Артур Самюэл впервые ввёл термин машинное обучение. После этого сфера МО вызвала большой интерес у других учёных, в особенности из-за того, что она применялась в классификациях.
Как правило, первый подраздел, с которого начинается изучение науки о данных, — это машинное обучение. Этот термин описывает набор компьютерных алгоритмов, которые способны обучаться и улучшаться, собирая информацию в процессе работы.
Для создания алгоритма машинного обучения нужен набор данных. Изначально в него помещают тренировочные данные, которые предоставляют примеры решения определённых проблем. Как только алгоритм пройдёт этот этап обучения, он сможет применить полученные знания, чтобы решать схожие проблемы, основываясь на разных наборах данных.
Обычно алгоритмы машинного обучения разделяют на 4 категории.
1. Контролируемое обучение. Обучение алгоритмов контролируется разработчиком в процессе работы. Для этого он маркирует данные и устанавливает правила и границы, которым должен следовать алгоритм.
2. Обучение без учителя. Обучение алгоритмов не предполагает участие разработчика. В этом случае желаемые результаты неизвестны и определяются самим алгоритмом.
3. Полу-контролируемое обучение. Обучение алгоритма сочетает принципы как контролируемого, так и обучения без учителя. Например, при подготовке алгоритма маркируется только часть тренировочных данных и предоставляются лишь некоторые правила.
4. Обучение с подкреплением. В этом типе алгоритма применяется техника исследование/освоение. Его работа проста: машина совершает действие, анализирует результаты, а затем опирается на них при выполнении следующего действия.
Каждая из этих категорий предназначена для определённой задачи. Например, контролируемое обучение используется, чтобы масштабировать тренировочные данные, а затем прогнозировать значения на их основе или создавать новые наборы. В то же время с помощью обучения без учителя данные сортируют и фильтруют, чтобы разобраться в них.
В основе каждой из этих категорий лежат разнообразные алгоритмы, составленные для выполнения определённых задач. В этой статье мы разберём 5 алгоритмов, которые должен знать каждый специалист по обработке данных.
№1: Регрессия
Алгоритмы регрессии — это алгоритмы контролируемого обучения, которые используются для поиска возможных отношений между разными переменными, чтобы понять степень влияния независимой переменной на зависимую.
Регрессионный анализ можно представить в виде уравнения. Например, в уравнении y = 2x + z
, y — это зависимая переменная, а x, z — независимые. С помощью регрессионного анализа можно узнать, насколько x и z влияет на значение y.
Та же логика применяется и для более сложных и трудных задач. Чтобы облегчить нахождение решений, существует множество типов регрессионных алгоритмов. Самые распространённые среди них:
1. Линейная регрессия. Это самый простой метод регрессии. В нём используется линейный подход для моделирования отношений между зависимой (предсказанная) и независимой (предсказывающая) переменной.
2. Логистическая регрессия. В этом типе применяется бинарная зависимая переменная. Он активно используется в анализе категориальных данных.
3. Гребневая регрессия. Если регрессионная модель оказывается слишком сложной, гребневая регрессия корректирует коэффициент модели.
4. Регрессия Лассо (LASSO). Регрессия LASSO (Оператор наименьшей абсолютной укладки и выбора) используется для отбора и регуляризации переменных.
5. Полиноминальная регрессия. Этот тип алгоритма подходит для нелинейных данных. Прямая линия не может охватить все точки данных, поэтому лучшие прогнозы строятся с помощью кривой.
№ 2: Классификация
Классификация в машинном обучении — это процесс группирования объектов по категориям на основе предварительно классифицированного тренировочного набора данных.
Классификация относится к алгоритмам контролируемого обучения. В них используется категоризация тренировочных данных, чтобы рассчитать, с какой вероятностью новый объект попадёт в одну из заданных категорий. Известный всем пример алгоритмов классификации — это сортировка входящих электронных писем как спам или не спам.
Есть разные типы алгоритмов классификации. Рассмотрим 4 лучших:
1. К-ближайших соседей(KNN). Это алгоритм, в котором используются тренировочные наборы данных для поиска k ближайших точек в определённом наборе.
2. Дерево решений. Его можно представить в виде блок-схемы, где каждые точки данных по очереди разбиваются на два подмножества, а затем каждое из них разбивается ещё на два и так далее.
3. Наивный Байес. С помощью теоремы условной вероятности алгоритм вычисляет шанс, с которым объект попадёт в определённую категорию.
4. Метод опорных векторов. В этом алгоритме данные классифицируются согласно их степени полярности, которая может выходить за пределы X/Y прогнозирования.
№3: Ансамблирование
Ансамбли — это контролируемые алгоритмы обучения, которые комбинируют прогнозы из двух и более алгоритмов машинного обучения для построения более точных результатов. Результаты можно комбинировать с помощью голосования или усреднения. Первое зачастую применяется в классификации, а второе — в регрессии.
Существует 3 основных типа ансамблевых алгоритмов:
1. Бэггинг. Алгоритмы обучаются и работают параллельно на разных тренировочных наборах одного размера. Затем все они тестируются на одном наборе данных, а конечный результат определяется с помощью голосования.
2. Бустинг. В этом типе алгоритмы обучаются последовательно, а конечный результат отбирается с помощью голосования с весами.
3. Стекинг (наложение). Исходя из названия, этот подход состоит из двух уровней, расположенных друг на друге. Базовый представляет собой комбинацию алгоритмов, а верхний — мета-алгоритмы, основанные на базовом уровне.
№4: Кластеризация
Алгоритмы кластеризации относятся к методу обучения без учителя и применяются для группировки точек данных. Точки в одном кластере больше схожи между собой, чем те, что находятся в разных.
Алгоритмы кластеризации делятся на 4 типа:
1. Кластерный центроид. Он объединяет данные в кластеры, основываясь на заранее заданных условиях и характеристиках. k-средних — наиболее популярный алгоритм из этой категории.
2. Кластеризация на основе плотности. В этом типе используется алгоритм, который соединяет области с высокой плотностью в кластеры, создавая распределения произвольной формы.
3. Кластеризация на основе распределений. Алгоритм этого типа предполагает гауссовские распределения данных, которые далее объединяются в различные варианты того же распределения.
4. Иерархические алгоритмы. В этом алгоритме строится иерархическая древо кластеров. Количество кластеров можно менять, объединяя их на определённом уровне древа.
№5: Поиск ассоциативных правил
Ассоциативные алгоритмы относятся к обучению без учителя и определяют вероятность того, что несколько предметов окажутся вместе в определённом наборе данных. В основном они используются при анализе рыночной корзины.
Самый распространённый среди них — алгоритм добычи данных Apriori. Обычно он применяется в транзакционных базах данных. С его помощью можно найти часто встречающиеся наборы элементов, а затем сформировать из них определённые ассоциативные правила.
Например, если человек покупает молоко и хлеб, то, скорее всего, он также возьмёт яйца. Такие прогнозы строятся исходя из предыдущих покупок разных посетителей. После чего создаются ассоциативные правила в соответствии с конкретным показателем доверенности, который определяется алгоритмом на основе того, как часто встречаются эти товары вместе.
Заключительные мысли
Машинное обучение — это один самых популярных и тщательно исследованных подразделов науки о данных. Чтобы достичь еще большей точности и быстрого выполнения, постоянно разрабатываются новые алгоритмы.
Как правило, машинное обучение можно разделить на 4 категории: контролируемое обучение, обучение без учителя, полу-контролируемое обучение и обучение с подкреплением. Каждая из них содержит множество алгоритмов, предназначенных для разных задач.
В этой статье я рассказал про 5 типов контролируемых и неконтролируемых алгоритмов обучения, которые нужно знать каждому новичку в машинном обучении. Они хорошо изучены и широко применяются, поэтому вам не нужно разбираться в том, как их внедрять, а лишь понять, как ими пользоваться. Более того, в самых популярных инструментах Python для машинного обучения, например Scikit Learn, уже установлена большая часть этих алгоритмов.
Итак, мой совет таков: разберитесь в технике, освойте применение и начинайте строить.
Читайте также:
- ML-инженер или специалист по обработке данных? (Закат науки о данных?)
- Разработка и развёртывание приложения машинного обучения: полное руководство
- Создаем краткое содержание текста с помощью Python без NLP
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Sara A. Metwalli: 5 Types of Machine Learning Algorithms You Need to Know