Регрессия

Завершено

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

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

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

  1. Разделение обучающих данных (случайным образом) для создания набора данных, с помощью которого необходимо обучить модель, удерживая подмножество данных, которые будут использоваться для проверки обученной модели.
  2. Используйте алгоритм для соответствия обучающих данных модели. В случае модели регрессии используйте алгоритм регрессии, например линейную регрессию.
  3. Используйте данные проверки, которые вы провели для проверки модели, прогнозируя метки для функций.
  4. Сравните известные фактические метки в наборе данных проверки с метками, прогнозируемыми моделью. Затем агрегируют различия между прогнозируемыми и фактическими значениями меток, чтобы вычислить метрику, которая указывает, насколько точно модель прогнозировала данные проверки.

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

Пример — регрессия

Рассмотрим регрессию с упрощенным примером, в котором мы обучим модель для прогнозирования числовых меток (y) на основе одного значения признаков (x). Большинство реальных сценариев включают несколько значений признаков, что приводит к некоторой сложности. но принцип тот же.

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

Схема термометра. Схема мороженого.
Температура (x) Продажи мороженого (y)
51 1
52 0
67 14
65 14
70 23
69 20
72 23
75 26
73 22
81 30
78 26
83 36

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

Начнем с разделения данных и использования подмножества для обучения модели. Вот набор данных для обучения:

Температура (x) Продажи мороженого (y)
51 1
65 14
69 20
72 23
75 26
81 30

Чтобы получить представление о том, как эти значения x и y могут быть связаны друг с другом, мы можем представить их как координаты вдоль двух осей, как показано ниже:

Схема точечной диаграммы, показывающая x и y.

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

Схема точечной диаграммы с добавленной линией регрессии.

Строка представляет собой визуальное представление функции, в которой наклон строки описывает вычисление значения y для заданного значения x. Линия перехватывает ось x в 50, поэтому если x равно 50, y — 0. Как видно из маркеров оси на графике, наклоны линии, чтобы каждое увеличение 5 вдоль оси x приводит к увеличению 5 вверх по оси y; поэтому при значении x 55 y равно 5; если x равно 60, y равно 10 и т. д. Чтобы вычислить значение y для заданного значения x, функция просто вычитает 50; другими словами, функцию можно выразить следующим образом:

f(x) = x-50

Эту функцию можно использовать для прогнозирования количества мороженого, проданного в день с любой заданной температурой. Например, предположим, прогноз погоды говорит нам, что завтра это будет 77 градусов. Мы можем применить нашу модель, чтобы вычислить 77-50 и предсказать, что мы будем продавать 27 мороженого завтра.

Но насколько точно наша модель?

Оценка модели регрессии

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

Температура (x) Продажи мороженого (y)
52 0
67 14
70 23
73 22
78 26
83 36

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

Использование модели, которую мы обучили ранее, которая инкапсулирует функцию f(x) = x-50, приводит к следующим прогнозам:

Температура (x) Фактические продажи (y) Прогнозируемые продажи (ŷ)
52 0 2
67 14 17
70 23 20
73 22 23
78 26 28
83 36 33

Мы можем выглядеть как прогнозируемые, так и фактические метки по следующим значениям признаков:

Схема точечной диаграммы с прогнозируемыми и фактическими значениями.

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

Метрики оценки регрессии

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

Средняя абсолютная погрешность (MAE)

Дисперсию в этом примере указывает, сколько мороженого каждый прогноз был неправильным. Это не имеет значения, если прогноз был превышен или под фактическим значением (например, -3 и +3 указывают на дисперсию 3). Эта метрика называется абсолютной ошибкой для каждого прогноза и может быть обобщена для всего набора проверки в виде средней абсолютной ошибки (MAE).

В примере мороженого среднее (среднее) абсолютных ошибок (2, 3, 3, 1, 2 и 3) равно 2,33.

Среднеквадратическая погрешность (СКП)

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

В нашем примере мороженого среднее значение квадратных абсолютных значений (4, 9, 9, 1, 4 и 9) равно 6.

Корень среднеквадратической погрешности (RMSE)

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

Если мы хотим измерить ошибку с точки зрения количества мороженого, нам нужно вычислить квадратный корень MSE, который создает метрику с именем, неудивительно, корневой среднеквадратической ошибкой. В этом случае √6, что составляет 2,45 (мороженое).

Коэффициент определения (R2)

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

Вычисление для R2 сложнее, чем для предыдущих метрик. Он сравнивает сумму квадратных различий между прогнозируемыми и фактическими метками с суммой квадратных различий между фактическими значениями меток и значением фактических значений меток, как показано ниже:

R2 = 1- ∑(y-ŷ)2 ÷ ∑(y-ȳ)2

Не беспокойтесь слишком много, если это выглядит сложно; Большинство средств машинного обучения могут вычислить метрики для вас. Важно отметить, что результатом является значение от 0 до 1, описывающее долю дисперсии, объясняемой моделью. Проще говоря, чем ближе к 1 этому значению, тем лучше модель подходит для данных проверки. В случае модели регрессии мороженого R2 , вычисляемая из данных проверки, составляет 0,95.

Итеративное обучение

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

  • Выбор компонентов и подготовка (выбор функций, которые следует включить в модель, и вычисления, применяемые к ним, чтобы обеспечить лучшее соответствие).
  • Выбор алгоритма (мы изучили линейную регрессию в предыдущем примере, но есть много других алгоритмов регрессии).
  • Параметры алгоритма (числовые параметры для управления поведением алгоритма, более точно называемые гиперпараметрами, чтобы отличить их от параметров x и y).

После нескольких итерации модель, которая приводит к выбору оптимальной метрики оценки, приемлемой для конкретного сценария.