Введение в концепции ML.

Что такое машинное обучение? Что такое модель машинного обучения?

Позвольте мне попытаться объяснить это на очень актуальном примере.

Что бы вы сделали, чтобы предсказать, будет ли сегодня дождь или нет?
Наверное, просто посмотрите на небо, посмотрите, облачно ли оно, и соответственно сделайте вывод, будет ли сегодня дождь или нет. да. Справедливо.

Но что, если я скажу вам, что не только облака влияют на количество осадков в той или иной местности? Что, если я скажу, что влажность также играет большую роль в этом?
Вы все еще можете сделать точный прогноз; быстрый взгляд на ваш телефон даст вам информацию о влажности и вуаля! у вас достаточно данных, чтобы сделать надежный прогноз.

Что, если я добавлю еще 3 фактора, сильно влияющих на количество осадков? скажем, температура, месяц года и местоположение места.
Если вы действительно один из тех упрямцев, вы все еще можете возразить, что это можно сделать вручную. Набор вложенных условий «если» или простое бинарное дерево могут дать очень хороший результат.

Что, если я скажу вам, что есть 90 факторов, которые вместе влияют на количество осадков в каком-либо месте, вы видите, к чему я клоню. Здесь ты можешь сдаться, я бы точно сдался.

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

Набор данных

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

X: независимые переменные/входные переменные/характеристические переменные

y: зависимая переменная/выходная переменная/переменная отклика

Набор данных может иметь или не иметь переменные y, это играет важную роль в классификации проблемы ML, мы узнаем об этом подробнее позже.

Обучающий и тестовый набор данных:

Теперь, когда у нас есть хорошее представление о наборе данных ML, важно поговорить о наборе данных для обучения и тестирования. Традиционный процесс создания модели ML включает в себя разбиение основного набора данных на 2 части; Обучение и тестирование (обычно 70:30).

Как только это будет сделано, обучающий набор данных используется для создания модели ML, тогда как тестовый набор данных — это то, на чем модель тестируется. Это очень важный шаг, и всегда следует помнить, что тестирование модели всегда должно выполняться на тестовом наборе данных; то есть набор данных, который модель машинного обучения еще не видела.

Больше читать: набор данных проверки, перекрестная проверка.

Функция стоимости

Функция стоимости — это то, как модуль машинного обучения выбирает наилучшую модель, соответствующую набору данных. Учитывая данные, всегда существует более одной модели, которая может соответствовать данным, алгоритм машинного обучения всегда выбирает модель ML, которая приводит к функции минимальной стоимости.

Каждый алгоритм имеет разные критерии для определения функции стоимости, мы рассмотрим их отдельно позже.

Подробнее: Переобучение.

Точность модели

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

  • Матрица путаницы
  • Отзыв или чувствительность: истинные положительные результаты/все положительные результаты
  • Точность
  • Специфичность: истинно отрицательные/все отрицательные

Другие параметры: F1-Recall, AOC-RUC и т. д.

Дисперсия против компромисса смещения

Дисперсия смещения, компромисс между простотой и сложностью, модели Overfitting-Underfitting — все эти термины относятся к одной и той же концепции. Дисперсия - это мера того, сколько изменений требуется модели, если изменяются основные входные данные, тогда как смещение - это мера того, насколько точны выходные данные модели. Всякий раз, когда мы строим модель ML, потенциально она может быть:

  1. Слишком просто. Простые модели — это то, что мы называем неподходящими моделями. Эти модели менее сложны и имеют высокий уровень смещения.
  2. Слишком сложные — сложные модели обычно переобучают и имеют высокую дисперсию.

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

Алгоритмы машинного обучения

Что такое машинное обучение? Wiki говорит: ML — это область «информатики, в которой используются статистические методы, чтобы дать компьютерным системам возможность обучаться (например, постепенно улучшать производительность при выполнении конкретной задачи) с помощью данных, не явно запрограммировано».

Вот как выглядит простой модуль машинного обучения. Данные передаются в модуль «Алгоритм обучения». Здесь мы можем попробовать несколько алгоритмов и, наконец, выбрать лучший.
После завершения алгоритма мы создаем соответствующую модель. Эта модель может использоваться для создания прогнозов для заданных данных.

Важно знать разницу между «алгоритмом обучения» и «моделью». Линейная регрессия является примером алгоритма обучения, тогда как результирующее выражение (скажем, y=0,5x + 0,8) называется моделью.

Типы машинного обучения.

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

  1. Контролируемое обучение
  2. Неконтролируемое обучение

К ним также можно добавить обучение с подкреплением и некоторые другие, но пока мы поговорим только об этих двух.

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

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

  • Допустим, у нас есть набор данных о характеристиках дома и соответствующей цене. Здесь мы возьмем функции в качестве независимых переменных и попытаемся предсказать зависимую переменную (в данном случае цену).
  • Допустим, у нас есть список неплательщиков кредита, сведения о клиенте вместе образуют независимые переменные, а статус по умолчанию («неплательщик» или «неплательщик») является зависимой переменной.

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

Учитывая X (независимые переменные) и Y (зависимая переменная), наш алгоритм пытается изучить отображение от X до Y; Y = f(X)

Если мы внимательно посмотрим, в обоих случаях, упомянутых выше, наша зависимая переменная является либо реальным числом (цена), либо категориальной (статус по умолчанию), это формирует основу для разделения контролируемого обучения на две части:

  1. Регрессия
  2. Классификация

Давайте посмотрим на них обоих подробно.

Регрессия

Проблема регрессии возникает, когда зависимая переменная является реальным значением, таким как «цена», «высота» или «длина». Чтобы понять больше, давайте изучим линейную регрессию.

1. Линейная регрессия

Простая линейная регрессия является наиболее широко известной моделью машинного обучения. Типичная линейная регрессия будет выглядеть как уравнение ниже; где X1, X2, Xn — различные входные (независимые) переменные, а Y — выходная (зависимая) переменная. Модель пытается найти параметры β1, β2, βn и т. д., чтобы функция стоимости была минимальной.

Функция стоимости для линейной регрессии представляет собой не что иное, как сумму квадратов значений ошибок. Итак, если y‹real› — это реальные значения, а y‹pred› — предсказанные значения, то функция стоимости будет выглядеть так:

Давайте визуализируем то же самое:

Классификация

В отличие от задач регрессии, задача классификации имеет зависимую переменную, которая не содержит реальных значений, а содержит отдельные категории. Пример: «Да-Нет», «Высокий-Короткий».

Давайте рассмотрим пример использования, чтобы лучше понять это. Скажем, у нас есть медицинский отчет 500 клиентов с такими подробностями, как возраст, рост, частота сердечных сокращений, кровяное давление и т. д., а зависимой переменной является наличие у человека диабета или нет. Итак, в основном то, что мы пытаемся сделать здесь, это использовать наши независимые переменные (возраст, рост и т. д.) и попытаться предсказать зависимую переменную (статус диабета — да или нет).

Почему это нельзя сделать с помощью алгоритма регрессии? потому что алгоритм регрессии вернет реальные значения, скажем, 3,4, или 0,01, или 9999,9, тогда как нам нужен результат: Да (1) или Нет (0).

1. Логистическая регрессия

Да, в названии есть слово «регрессия», но логистическая регрессия во многом является алгоритмом классификации, а может быть, и самым популярным и широко используемым алгоритмом классификации. Слово «логистика» связано с тем, что оно использует логистическую функцию для создания модели и «регрессии», потому что уравнение очень похоже на то, как могло бы выглядеть уравнение регрессии.

Решив уравнение и взяв логарифм с обеих сторон, мы получим уравнение, приведенное ниже. Сходство между этим уравнением и обычным уравнением регрессии объясняет, почему оно называется логистической регрессией.

2. Наивный Байес

Алгоритм наивного Байеса — это алгоритм вероятностного классификатора. Его названия соответствуют теореме Байеса о вероятности, поэтому уравнение для наивного Байеса выглядит так:

3. Машина опорных векторов

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

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

Этот запас рассчитывается относительно ближайших точек данных во всех классах; то есть эти ближайшие точки данных действуют как опорные векторы при определении гиперплоскости, отсюда и название «Машины опорных векторов».

4. Деревья решений

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

Здесь у нас есть очень простое бинарное дерево решений. У каждого узла есть критерий принятия решения, на основе которого данные классифицируются, узлы, у которых нет дочерних элементов, называются листьями. Конечные узлы обычно принимают решение (категория/класс).

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

Больше читать: Усечение и обрезка, деревья CART.

Модели ансамбля

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

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

1. Модель случайного леса

Случайный лес является примером модели ансамбля, и, как и каждый лес состоит из деревьев, случайный лес объединяет вместе несколько деревьев решений. Решение случайного леса или любой модели ансамбля в этом отношении такое же, как решение, принятое большинством составляющих моделей. Таким образом, если случайный лес состоит из 10 деревьев решений, решение случайного леса будет таким, какое вместе предсказывают 6 или более деревьев.

Еще почитать: Бэггинг

Повышение

1. АдаБуст

2. Повышение градиента (XGBoost)