ЛИНЕЙНАЯ РЕГРЕССИЯ
Линейная регрессия - это алгоритм, основанный на обучении с учителем. Это самый простой алгоритм машинного обучения, который помогает делать различные прогнозы. Например: прогнозирование цен на жилье, прогнозирование недвижимости, прогнозирование цен на акции и многие другие прогнозы.
Линейная регрессия бывает двух типов:
1 Простая линейная регрессия
2 Множественная линейная регрессия
Простая линейная регрессия
Простая линейная регрессия - это регрессионная модель с единственной независимой переменной, то есть она состоит из одной независимой переменной и одной зависимой переменной.
В линейной регрессии Наша конечная цель - найти оптимальное решение или линию наилучшего соответствия (об этом я расскажу позже).
Давайте рассмотрим ситуацию, когда у нас нет независимой переменной (также называемой переменной-предиктором).
В такой ситуации только с одной переменной и без другой информации, лучший прогноз для следующего измерения - это среднее значение самой выборки.
Но простая линейная регрессия - это все о двух переменных (независимая переменная и зависимая переменная).
ПОСМОТРЕТЬ ВЫШЕ ИЗОБРАЖЕНИЕ СНОВА:
В приведенном выше примере мы видим темные черные точки (наши наблюдаемые точки данных) и линию, проходящую через все эти точки (эта линия известна как линия наилучшего соответствия).
Что такое остатки?
Расстояние между линией наилучшего совпадения и наблюдаемыми значениями называется остатками (также называемыми ошибками).
Сумма всех остатков выше и ниже линии равна нулю.
Так как суммирование остатков дает ноль. Поэтому возьмем квадраты всех этих остатков.
Зачем возводить в квадрат остатки?
1 делает их позитивными.
2 Подчеркивает большие отклонения.
Конечная цель линейной регрессии - минимизировать сумму квадратов ошибок.
Алгебра и линейная регрессия:
Поскольку все мы читали об этом уравнении,
x - случайная переменная, m - наклон подъема, b - точка пересечения оси y
ПРОСТАЯ МОДЕЛЬ ЛИНЕЙНОЙ РЕГРЕССИИ:
y = B0 + B1 * X + e0, это также уравнение для линии наилучшего соответствия.
B0 = параметр популяции пересечения y, B1 = параметр совокупности наклона, e0 = член ошибки
Уравнение простой линейной регрессии:
E (y) = B0 + B1 * X, где E (y) - среднее / ожидаемое значение y для заданных значений X.
B1 можно рассчитать как:
Также B0 можно рассчитать как,
B0 = y (среднее) - B1 * X
ИСПОЛЬЗУЯ ВСЕ ЗНАЧЕНИЯ В УРАВНЕНИИ, МЫ МОЖЕМ ПОЛУЧИТЬ ПРЕДПОЛАГАЕМЫЕ ЗНАЧЕНИЯ, т. е. ЛИНИЮ НАИЛУЧШЕГО СООТВЕТСТВИЯ.
Когда у нас есть выборочные данные, мы должны изменить наше уравнение на,
y ^ (y hat) = b0 + b1 * X, y ^ - точечная оценка E (y).
Давайте рассмотрим таблицу:
Мы будем использовать эту таблицу в качестве примера простой линейной регрессии.
Простая линейная регрессия - это модель, которая зависит от критерия наименьших квадратов.
КРИТЕРИЙ НАИМЕНЬШИХ ПЛОЩАДЕЙ:
Цель состоит в том, чтобы минимизировать сумму (y- (прогнозируемые значения y)) ²
Прогнозируемые значения y представлены линией регрессии, то есть суммой квадратов остатков.
Код Python для простой линейной регрессии:
# Простая линейная регрессия
# Автор Кашиш Бхагат
# Импорт библиотек
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Импорт набора данных
dataset = pd.read_csv ('Salary_Data.csv')
X = dataset.iloc [:,: -1] .values
y = dataset.iloc [:, 1] .values
# Разделение набора данных на обучающий набор и набор тестов
из sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 1/3, random_state = 0)
# Масштабирование функций
из sklearn.preprocessing import StandardScaler
sc_X = StandardScaler ()
X_train = sc_X.fit_transform (X_train)
X_test = sc_X.transform (X_test)
sc_y = StandardScaler ()
y_train = sc_y.fit_transform (y_train.reshape (-1,1))
# Подгонка простой линейной регрессии к обучающему набору
из sklearn.linear_model import LinearRegression
regressor = LinearRegression ()
regressor.fit (X_train, y_train)
# Прогнозирование результатов набора тестов
y_pred = regressor.predict (X_test)
# Визуализация результатов обучающего набора
plt.scatter (X_train, y_train, color = 'red')
plt.plot (X_train, regressor.predict (X_train), color = 'blue')
plt.title ('Заработная плата против опыта (обучающий набор)')
plt.xlabel ('Годы опыта')
plt.ylabel ('Заработная плата')
plt.show ()
# Визуализация результатов набора тестов
plt.scatter (X_test, y_test, color = 'red')
plt.plot (X_train, regressor.predict (X_train), color = 'blue')
plt.title ('Заработная плата против опыта (набор тестов)')
plt.xlabel ('Годы опыта')
plt.ylabel ('Заработная плата')
plt.show ()
БЛАГОДАРНОСТЬ!!!!!