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

Описание статьи

1. Общая концепция
2. Предварительные требования
3. Типы алгоритмов машинного обучения
4. 5 лучших алгоритмов
5. Оптимизация производительности
6. Выбор лучшей модели

1-Большая концепция

Алгоритмы машинного обучения - это не более чем функции сопоставления, и они описываются как обучение целевой функции (f), которая наилучшим образом сопоставляет входные переменные X с выходной переменной Y. Наиболее распространенный тип машинного обучения - изучение этой функции для создания новых прогнозов Y для новых точек данных (X). Подводя итог, наша функция будет выглядеть так:

2 предварительных требования

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

3 типа алгоритмов машинного обучения

Основные категории алгоритмов машинного обучения следующие:

  • Обучение с учителем
  • Обучение без учителя
  • Обучение с подкреплением

Контролируемое обучение

В этом типе обучения человек-эксперт действует как учитель, где мы загружаем компьютер входными данными и показываем ему правильный ответ (результат). На основе этих данных компьютер должен уметь изучать закономерности и применять функцию карты. Основными типами задач контролируемого обучения являются классификация и регрессия.

Регрессия. Цель состоит в том, чтобы найти связь между независимой переменной X и зависимой переменной Y. Эта связь представлена ​​в виде линии, которая наилучшим образом соответствует точкам данных (минимизировать расстояние между выводом и прогнозом, применяя LSE). Вывод непрерывный.

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

Список распространенных алгоритмов: деревья решений, SVM, линейная регрессия

Обучение без учителя

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

  • Связь: чтобы определить вероятность одновременного появления элементов в коллекции. Например, если кто-то купил яйцо, он с 80% вероятностью купит хлеб.
  • Кластеризация: разделение точек данных на группы таким образом, чтобы точки в одной группе были более похожи, чем точки в других группах.

Список распространенных алгоритмов: Kmeans, PCA, SVD

Обучение с подкреплением

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

Список распространенных алгоритмов: Q-Learning, Sarsa

4– 5 лучших алгоритмов

Как мы упоминали выше, не существует единого алгоритма, который лучше всего работал бы с одной проблемой. Тем самым наличие разных моделей. В следующих строках мы кратко рассмотрим самые популярные из них. Давайте начнем!

* Линейная регрессия:

Линейная регрессия, пожалуй, один из самых известных алгоритмов в мире машинного обучения. Речь идет о поиске взаимосвязи между двумя переменными X и Y. Эта взаимосвязь обычно представлена ​​линией, которая лучше всего соответствует точкам данных. Проще говоря, эта линия должна минимизировать сумму квадратов ошибок прогнозов. Уравнение простое, мы начинаем с умножения входных данных на определенные веса, получаем их сумму и добавляем смещение. Вес указывает на крутизну нашей линии, а точка пересечения указывает на ее местоположение.

После обращения LG пора заняться кодом. Также мы попрактикуемся в некоторых навыках, которые мы видели в прошлой статье.

* Логистическая регрессия:

Хотя это название может показаться сложным, для задач классификации обычно используется логистическая регрессия. В отличие от предыдущего алгоритма, который выводит непрерывные числовые значения, логистическая регрессия преобразует свой вывод с помощью сигмоидной функции для возврата значения вероятности. Для простоты сигмовидная функция - это не более чем большая буква S со значениями в диапазоне [0; 1]. Чтобы сопоставить эти числа с дискретным классом, мы создаем порог. К сожалению, мы не можем использовать ту же функцию затрат, что и линейная регрессия, по сложным математическим причинам. Я расскажу обо всех подробностях в следующей статье, не волнуйтесь!

p≥0,5, класс = 1

p ‹0,5, класс = 0

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

* Поддержка векторных машин (SVM):

SVM используются как для классификации, так и для регрессии. Однако в основном они используются для задач классификации. В этом типе алгоритмов контролируемого обучения мы наносим наши точки данных на n-мерное пространство, а затем разделяем классы, находя лучшую гиперплоскость (n-1 измерения). Цель состоит в том, чтобы выбрать тот, который имеет наибольший запас в любой точке обучающей выборки. Базовый пример показан на изображении ниже.

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

И здесь появляется роль SVM для сопоставления точек данных и их ранжирования, чтобы они стали линейно разделяемыми. Этот процесс известен как сопоставление, и он основан на наборе математических функций, называемых ядрами . Для более подробной информации, ядро ​​- это функция, которая берет низкоразмерное входное пространство и преобразует его в более высокомерное. Это известно как трюк с ядром.

Я не буду вдаваться в подробности, но покажу вам код, лежащий в основе этого классификатора.

* Кластеризация K-средних:

K-Means - это тип алгоритмов обучения без учителя, который используется с немаркированными данными. Цель этого алгоритма - разделить данные на k кластеров и назначить каждую точку данных одной из K групп на основе предоставленных функций. Здесь я расскажу, как работает этот алгоритм:

1. Кластеризует данные в k групп.
2. Создает новые случайные точки данных, называемые центроидами (n = k).
3. Назначает объекты их центру шкафа в соответствии с евклидовым расстоянием.
4. Вычисляет среднее значение объектов в одном кластере.
5. Повторяет предыдущие шаги до сходимости.

Главный вопрос о k-средних - как выбрать оптимальное количество кластеров. Что ж, идеального решения этой проблемы не существует, но мы можем использовать метод локтя. Этот метод заключается в запуске алгоритма при различных значениях k при вычислении SSE. Затем по графику значений мы можем заметить падение значений SSE при переходе от одного значения k к другому. Мы рассмотрим все подробности в следующих статьях, но ради любопытства покажу, как это выглядит.

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

*Древо решений :

Наш следующий классификатор не так сильно отличается от предыдущих, но более прост и удобен в реализации. Если вы любитель природы, она вам обязательно понравится. Что ж, по крайней мере, вы хоть раз в жизни слышали о древовидной структуре в CS. Он широко используется в статистике и кодировании для описания подмножеств. В машинном обучении этот метод относится к контролируемому обучению и является непараметрическим. DT используются как для регрессии, так и для классификации, и их основной тип - CART: Classification And Regression Trees.

Для начала корневой узел получает весь обучающий набор, а затем разбивает его на узлы принятия решений. Теперь каждый узел задаст вопрос T / F об одной из функций, и в ответ на этот вопрос он разделит данные на два подмножества (также известные как дочерние узлы). Цель этого процесса - расшатывать метки по мере того, как мы спускаемся. Когда у нас больше нет вопросов, узел называется листовым узлом.

Уловка для построения эффективного дерева (ID3) состоит в том, чтобы понять, какие вопросы и когда задавать. Для этого нам нужно использовать следующие метрики:

1- Энтропия: мера примеси или беспорядка в наборе данных.

2- Получение информации: уменьшение неопределенности.

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

5-Оптимизация производительности

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

Чистые данные: удаление отсутствующих значений или их вменение и удаление выбросов.

Масштабирование данных: масштабирование данных в меньших диапазонах.

Разработка функций: агрегирование, создание новых атрибутов и добавление статистической информации во фрейм данных.

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

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

Смещение:

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

Пока дисперсия составляет:

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

Теперь, когда мы хотим вычислить дисперсию, мы получаем сумму (xi - среднее) ** 2. Если набор данных относится к выборке, мы делим ее на размер выборки минус один.

Связь между систематической ошибкой и дисперсией

На ранних этапах машинного обучения существует концепция, называемая компромиссом смещения и дисперсии:

  • Когда сложность модели увеличивается, дисперсия также увеличивается, а смещение уменьшается.
  • Когда модель упорядочена, смещение увеличивается, а дисперсия уменьшается.

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

Интерпретация

Красная зона представляет реальный выход. Начиная с верхнего левого угла:

  • Низкое смещение + низкая дисперсия: модель работает очень хорошо, и точки данных близки друг к другу (низкая дисперсия).
  • L Смещение + высокая дисперсия: модель предсказывает только некоторые правильные значения. Эти значения как-то разделены. Это соответствует переобучению.
  • Высокое смещение + Низкое отклонение: прогнозы становятся все хуже и хуже. Значения близки друг к другу (низкая дисперсия).
  • Высокое смещение + высокое отклонение: модель выходит за пределы цели.

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

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

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

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

6-Выбор лучшей модели

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

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

И вот код, стоящий за этим.

На сегодня все. Следите за новостями в ближайшее время!