Регрессия – это когда модели прогнозируют число.

Что такое регрессия?

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

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

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

Затем мы разделим этот образец данных на два подмножества:

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

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

Простой пример

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

Temperature   Rentals
   56           115
   61           126
   67           137
   72           140
   76           152
   82           156
   54           114
   62           129

Теперь мы случайным образом выберем пять из этих наблюдений и используем их для обучения модели регрессии. Когда мы говорим об «обучении модели», мы имеем в виду поиск функции (математического уравнения; назовем ее f), которая может использовать функцию температуры (которую мы назовем x), чтобы подсчитать количество прокатов (которое мы назовем y). Другими словами, нам нужно определить следующую функцию: f(x) = y.

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

   x            y
   56           115
   61           126
   67           137
   72           140
   76           152

Начнем с нанесения обучающих значений для x и y на диаграмму:

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

Линия представляет собой линейную функцию, которую можно использовать с любым значением x для применения наклона линии и ее точки (где линия пересекает ось Y, когда x равен 0), чтобы вычислить y. В этом случае, если бы мы расширили линию влево, мы бы обнаружили, что когда x равен 0, y равен примерно 20, а наклон линии такой: что на каждую единицу x, которую вы перемещаете вправо, y увеличивается примерно на 1,7. Таким образом, мы можем вычислить нашу функцию f как 20 + 1,7x.

Теперь, когда мы определили нашу прогнозирующую функцию, мы можем использовать ее для прогнозирования меток для данных проверки, которые мы сохранили, и сравнения прогнозируемых значений (которые мы обычно обозначаем символом ŷ или «y- шляпа») с фактическими известными значениями y.

   x             y             ŷ
   82           156           159.4
   54           114           111.8
   62           129           125.4

Давайте посмотрим, как значения y и ŷ сравниваются на графике:

Точки на графике, находящиеся на функциональной линии, — это прогнозируемыеŷ значения, рассчитанные функцией, а другие точки на графике — это фактические значения y.

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

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

Чтобы было понятно, что мы сравниваем прогнозируемое значение (ŷ) с наблюдаемым значением (y). мы называем разницу между ними остатками. Мы можем суммировать остатки для всех прогнозов данных проверки, чтобы вычислить общие потери в модели как меру ее прогнозной эффективности.

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

Для наших проверочных данных расчет выглядит следующим образом:

    y             ŷ              y - ŷ         (y - ŷ)²
   156           159.4           -3.4           11.56
   114           111.8            2.2            4.84
   129           125.4            3.6           12.96
                 Sum               ∑            29.36
                 Mean              μ             9.79

Следовательно, потеря для нашей модели, основанной на метрике MSE, равна 9,79.

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

Иногда полезнее выразить убытки в той же единице измерения, что и прогнозируемое значение метки, в данном случае — в количестве аренд. Это можно сделать, вычислив квадратный корень из MSE, который дает показатель, известный, что неудивительно, как Среднеквадратическая ошибка (RMSE).

√9.79 = 3.13

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

Есть много других показателей, которые можно использовать для измерения потерь в регрессии. Например, R² (R-квадрат) (иногда известный как коэффициент детерминации) – это корреляция между x и y в квадрате. В результате получается значение от 0 до 1, которое измеряет величину дисперсии, которую можно объяснить моделью. Как правило, чем ближе это значение к 1, тем лучше прогнозирует модель.

Далее ›› Обучение и оценка регрессионных моделей (2/4)