Перейти к содержимому

Как обучается линейная регрессия

  • автор:

Введение в алгоритмы машинного обучения: линейная регрессия

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

Цель этой статьи — дать представление об алгоритме линейной регрессии, его реализации на языке программирования Python и практическом применении. Для начала выясним, что такое алгоритм линейной регрессии.

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

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

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

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

Как работает линейная регрессия?

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

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

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

Будем исходить из того, что с увеличением роста ученика увеличивается и его вес. Нанесение этих данных между двумя координатами будет выглядеть следующим образом:

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

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

Это простое линейное уравнение, которое позволяет предсказать значение y (рост) по заданному значению x (вес). Построить линию с помощью этого уравнения можно путем нахождения значений m (коэффициент) и c (точка пересечения с осью y).

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

Допущения

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

  1. Линейность. Между средним значением зависимой переменной и независимыми переменными должна существовать линейная связь. Эта связь измеряется путем выявления изменений зависимой переменной в связи с изменениями независимых переменных.
  2. Гомоскедастичность. В линейной регрессии гомоскедастичность имеет важное значение, поскольку представляет собой степень подгонки модели под данные. Она определяет дисперсию по величине погрешности или остатков: если дисперсия увеличивается, значит модель подогнана плохо.
  3. Независимость. Собранные точки данных должны быть независимы друг от друга.
  4. Нормальность. Должно быть нормальное распределение для любого из фиксированных значений зависимой и независимой переменных.

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

Реализация

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

Подготовка данных

Чтобы избавиться от таких процессов, как EDA, валидация данных и т. д., будем использовать предоставленный Sklearn набор данных “Diabetes” (“Диабет”). Это позволит сразу перейти от загрузки данных к их разбиению.

from sklearn.datasets import load_diabetes

var_X, var_y = load_diabetes(return_X_y=True)

print(“number of independent variables:”, var_X.shape[1:])

print(“number of data points:”, var_y.shape)

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

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

from sklearn.model_selection import train_test_split

X_train, X_actual, y_train, y_actual = train_test_split(

var_X, var_y, test_size=0.10, random_state=42)

print(“number of data points in training data”, X_train.shape, X_train.shape)

print(“number of data points in testing data”, X_actual.shape, y_actual.shape)

Как видите, сформированы разделенные наборы данных — для обучения и для тестирования. Теперь можно импортировать и обучать модель, используя обучающие наборы данных.

Моделирование

from sklearn.linear_model import LinearRegression

LineR = LinearRegression()

Теперь можно подогнать модель для прогнозирования значений на основе данных.

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

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

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

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

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

1. MAE (mean absolute error, средняя абсолютная ошибка) — это универсальная метрика, которая позволяет узнать разницу между фактическими и прогнозируемыми значениями. Она рассчитывается по следующей формуле:

  • n = количество точек данных;
  • y = фактический выход;
  • Ŷ = прогнозируемый выход.

2. MSE (mean squared error, средняя квадратичная ошибка) можно рассматривать как уточненную MAE, поскольку она помогает находить ошибки с помощью квадратичной разницы между фактическими и прогнозируемыми значениями. Ниже приведена формула, которую используют для вычисления этой метрики:

3. RMSE (root mean squared error, корень квадратный из средней квадратичной ошибки) также показывает разницу между фактическими и прогнозируемыми значениями, извлекая корень квадратный из средней квадратичной ошибки.

4. RMSLE (root mean squared logarithmic error, корень квадратный из средней квадратичной логарифмической ошибки) использует логарифмически преобразованные прогнозируемые и фактические значения, проверяемые по корню квадратному из средней квадратичной ошибки. Чтобы избежать натурального логарифма нуля, в оба вида значений добавляется 1. Для оценки моделей применяется следующая формула этой метрики:

5. R² (R-squared, R-квадрат) также считается универсальной метрикой, применяемой для оценки эффективности регрессионной модели. R-квадрат получают путем определения доли вариаций зависимой переменной, что прогнозируется по независимой переменной. Рассчитывается эта метрика по следующей формуле:

  • R² = коэффициент детерминации;
  • RSS (root of sum of squares) = остаточная сумма квадратов;
  • TSS (total sum of squares) = полная сумма квадратов.

6. Adjusted R² (скорректированный R²) необходим, когда в данные добавляются новые признаки. Эта метрика компенсирует недостатки R-квадрата, которые уменьшаются или увеличиваются при увеличении дисперсии признаков. Данная метрика рассчитывается по формуле:

k = количество независимых переменных.

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

Применение линейной регрессии

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

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

Заключение

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

  • Проверка корректности допущений.
  • Оценка модели.
  • Нахождение коэффициента.
  • Определение ошибки.
  • Использование множественной линейной регрессии.

Здесь можно найти фрагменты кода из статьи.

  • Как использовать MSE в науке о данных
  • 3 случая, когда линейная модель может ошибаться
  • ТОП-4 официальных сайта МО-библиотек и способы их использования

Читайте нас в Telegram, VK и Дзен

Линейная регрессия в машинном обучении

Линейная регрессия ( Linear regression ) — модель зависимости переменной x от одной или нескольких других переменных (факторов, регрессоров, независимых переменных) с линейной функцией зависимости.

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

Где применяется линейная регрессия

Предположим, нам задан набор из 7 точек (таблица ниже).

линейная регрессия - применение

Цель линейной регрессии — поиск линии, которая наилучшим образом соответствует этим точкам. Напомним, что общее уравнение для прямой есть f (x) = m⋅x + b, где m — наклон линии, а b — его y-сдвиг. Таким образом, решение линейной регрессии определяет значения для m и b, так что f (x) приближается как можно ближе к y. Попробуем несколько случайных кандидатов:

решение линейной регрессии

Довольно очевидно, что первые две линии не соответствуют нашим данным. Третья, похоже, лучше, чем две другие. Но как мы можем это проверить? Формально нам нужно выразить, насколько хорошо подходит линия, и мы можем это сделать, определив функцию потерь.

Функция потерь — метод наименьших квадратов

Функция потерь — это мера количества ошибок, которые наша линейная регрессия делает на наборе данных. Хотя есть разные функции потерь, все они вычисляют расстояние между предсказанным значением y( х) и его фактическим значением. Например, взяв строку из среднего примера выше, f(x)=−0.11⋅x+2.5, мы выделяем дистанцию ошибки между фактическими и прогнозируемыми значениями красными пунктирными линиями.

функция потерь - линейная регрессия

Одна очень распространенная функция потерь называется средней квадратичной ошибкой (MSE). Чтобы вычислить MSE, мы просто берем все значения ошибок, считаем их квадраты длин и усредняем.

Вычислим MSE для каждой из трех функций выше: первая функция дает MSE 0,17, вторая — 0,08, а третья — 0,02. Неудивительно, что третья функция имеет самую низкую MSE, подтверждая нашу догадку, что это линия наилучшего соответствия.

Рассмотрим приведенный ниже рисунок, который использует две визуализации средней квадратичной ошибки в диапазоне, где наклон m находится между -2 и 4, а b между -6 и 8.

среднеквадратическая ошибка - линейная регрессия

Глядя на два графика, мы видим, что наш MSE имеет форму удлиненной чаши, которая, по-видимому, сглаживается в овале, грубо центрированном по окрестности (m, p) ≈ (0.5, 1.0). Есл и мы построим MSE линейной регрессии для другого датасета, то получим аналогичную форму. Поскольку мы пытаемся минимизировать MSE, наша цель — выяснить, где находится самая низкая точка в чаше.

Больше размерностей

Вышеприведенный пример очень простой, он имеет только одну независимую переменную x и два параметра m и b. Что происходит, когда имеется больше переменных? В общем случае, если есть n переменных, их линейная функция может быть записана как:

f(x) = b+w_1*x_1 + … + w_n*x_n

Один трюк, который применяют, чтобы упростить это — думать о нашем смещении «b», как о еще одном весе, который всегда умножается на «фиктивное» входное значение 1. Другими словами:

f(x) = b*1+w_1*x_1 + … + w_n*x_n

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

Итак, как мы вычисляем, где именно эта точка на дне? Распространенный подход — обычный метод наименьших квадратов, который решает его аналитически. Когда есть только один или два параметра для решения, это может быть сделано вручную, и его обычно преподают во вводном курсе по статистике или линейной алгебре.

Проклятие нелинейности

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

Различие между линейными уравнениями, которые мы составили, и нейронной сетью — функция активации (например, сигмоида, tanh, ReLU или других).

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

Минимум функции внизу чаши

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

Description

The Linear Regression function models the relationship between input variables by fitting a linear equation to the input data.

The method consists of two steps. First, a model is trained. Second, values are predicted by the model. Linear Regression is integrated into the existing table framework. Currently, model training and prediction can not be separated.

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

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

Syntax

LINEAR_REGRESSION ( TRAIN_[Filtered_]LM ( INPUT ( table.input_column, . ), OUTPUT ( table.output_column ) ), PREDICT ( table.predict_column, . ) )

TRAIN_LM : Trains a Linear Regression model.
Тренирует модель линейной регрессии.
TRAIN_FILTERED_LM : The data on which the linear model is trained is filtered.
Данные, по которым обучается линейная модель, фильтруются.
INPUT : One or more columns, which is used to train the model so that it describes the Output.

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

OUTPUT : One column, through which the model lays a predictor function.
Один столбец, через который модель закладывает функцию предиктора.

PREDICT : One or more columns, on which for each row a predicted value is returned by applying the trained model.

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

All columns in TRAIN_LM have to be joinable. The columns in PREDICT do not have to be joinable with the columns in TRAIN_LM.

The input of the model training is regarded as an independent sub query. This means if an aggregation is used, it is independent of the dimensions defined in the rest of the query. This also means that the columns within TRAIN_LN have to be joinable, but not with the columns used in the rest of the query.

Все столбцы в TRAIN_LM должны быть присоединяемыми. Столбцы в PREDICT не обязательно должны соединяться со столбцами в TRAIN_LM.

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

Filter behavior

Standard Linear Regression

If rows of a column are filtered, it does not affect the linear model, as long as the linear model is not trained on aggregation results. This means independent of filters and selections, the underlying model stays the same. If you want to restrict the input data of a model you can use a CASE WHEN statement and map the values you want to be ignored to null. If a model is trained on results of an aggregation it still changes with the filtering because the result of the aggregation is affected by the filtering.

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

Filtered Linear Regression

If a filter or selection changes, the model is retrained and the resulting function adopts to the new of view of data. This has a serious performance impact.

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

Как работает алгоритм Линейная регрессия

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

Ниже приведен пример итогового уравнения линейной регрессии.

Уравнение линейной регрессии

В примере выше y — это зависимая переменная, а x1, x2 и т.п. — это независимые переменные. Коэффициенты (b1, b2 и т.п.) объясняют корреляцию зависимых и независимых переменных. Знак коэффициентов (+/-) определяет, какое именно влияние оказывает переменная — положительное или отрицательное. b0 — это точка пересечения, которая указывает значение зависимой переменной, предполагая, что все независимые переменные равны 0.

На рисунке ниже модель линейной регрессии описывается линией регрессии y = 153.21 + 900.39x. Модель описывает отношение между зависимой переменной, Прогрессированием диабета, и независимой переменной, Уровнем триглицеридов в сыворотке. Показано положительное влияние. Этот пример демонстрирует модель линейной регрессии с двумя переменными. Хотя невозможно визуализировать модели с более чем тремя переменными, на практике модель может иметь любое количество переменных.

Пример линейной регрессии

Модель линейной регрессии помогает прогнозировать значение зависимой переменной, а также может помочь объяснить, насколько точен прогноз. Это определяется значениями параметров R-квадрат и p-значение. Значение R-квадрат указывает, какая часть вариации зависимой переменной может быть объяснена независимой переменной, а p-значение объясняет, насколько надежно это объяснение. Значения R-квадрата варьируются между 0 и 1. Значение 0,8 означает, что независимая переменная может объяснить 80 процентов вариации наблюдаемых значений зависимой переменной. Значение 1 означает, что можно сделать идеальный прогноз, что редко встречается на практике. Значение 0 означает, что независимая переменная совсем не помогает в прогнозировании зависимой переменной. Используя p-значение, вы можете проверить, насколько сильно независимая переменная влияет на зависимую по сравнению с 0.

Дополнительные источники

Связанные разделы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara11.ru/