Содержание:
1. Что такое линейная регрессия
2. Математика простой и множественной линейной регрессии
3. Показатели производительности
4. Реализация Python
5. Ссылки

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

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

2. Математика простой линейной регрессии

Предположим, что «x» обозначает нашу независимую переменную, «y» обозначает нашу зависимую переменную, а «h» обозначает функцию гипотезы, тогда

х → (ч) → у; функция гипотезы принимает входной признак «x» и предсказывает желаемый результат «y»; функция гипотезы определяется как ниже

В приведенном выше уравнении theta0 — это точка пересечения оси Y, а theta1 — это наклон линейной линии.

Основная идея заключается в том, чтобы расстояние между «точками данных (y)» и «прогнозируемыми точками (h(x))» было минимальным. Для этого нам нужно обновить тета0 и тета1, чтобы получить наилучшую линию в обучающих данных.

Функция стоимости также известна как «функция квадратичной ошибки», и наша цель — минимизировать функцию стоимости «J» по тета0 и тета1.

Градиентный спуск

Рассмотрим «theta0» = 0 (что означает, что линии проходят через начало координат) и «m» = 3 (размер выборки). Чтобы найти наиболее подходящую линию, нам нужно построить несколько линий, изменив значение «theta1». На приведенном ниже графике «ось Y = h (x)».

Рисунок ниже построен путем замены значений h(x), полученных из каждой из приведенных выше строк, в формулу функции стоимости. Приведенная ниже кривая известна как Кривая градиентного спуска.

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

в приведенном выше уравнении «α» — скорость обучения; j=0 и j=1 необходимо обновлять одновременно.

Влияние скорости обучения «α» на градиентный спуск

я. Если «α» слишком мал, то градиентный спуск может быть медленным.

II. Если «α» слишком велико, то градиентный спуск может превысить минимум. Он может не сходиться или даже расходиться.

III. Если «theta1» уже находится на локальном минимуме, то значение «theta1» остается таким же, поскольку наклон на минимуме равен 0 (это недопустимый случай в линейной регрессии, поскольку этот алгоритм имеет только глобальные минимумы).

IV. Градиентный спуск может сходиться к локальным минимумам, даже если «α» имеет фиксированное значение (поскольку наклон продолжает уменьшаться).

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

Математика множественной линейной регрессии

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

Функция гипотезы для вышеуказанной задачи будет

И градиентный спуск будет

Показатели эффективности

  1. R²:

ŷ — прогнозируемое значение y, а y̅ — среднее значение. R² всегда будет положительным, поскольку мы, по крайней мере, выберем линию, которая лучше подходит, чем y̅.

2. Скорректированный R²:

R² увеличивается, если признаки коррелируют. Но он также немного увеличивается, если дополнительная добавленная функция не коррелирует. Поэтому, если бы мы выбрали модель, основанную на показателе R², мы могли бы получить менее эффективную модель. Для решения этой проблемы используется скорректированный R². По мере увеличения числа «P» корректируется R².

В приведенном выше уравнении R² — это оценка R², N — количество точек данных, а P — количество признаков.

Значение R² всегда будет больше, чем значение Adjusted R².

Реализация Python

#Import the library
from sklearn.linear_model import LinearRegression
#Build a model
regressor = LinearRegression()
#Train the model
regressor.fit(X_train, y_train)
#Get predictions on test data
y_pred = regressor.predict(X_test)
#R² metric
from sklearn.metrics import r2_score
r2_score(y_test, y_pred)

Рекомендации

  1. Андрей НГ: https://www.youtube.com/watch?v=kHwlB_j7Hkc
  2. Криш Найк: https://www.youtube.com/watch?v=4UJelID_ICw
  3. https://www.analyticsvidhya.com/blog/2021/05/all-you-need-to-know-about-your-first-machine-learning-model-linear-regression/#:~:text=In %20самые%20самые%20простые%20слова,%20зависимые%20и%20независимые%20переменные