ЛИНЕЙНАЯ РЕГРЕССИЯ

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

Линейная регрессия бывает двух типов:

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 ()

БЛАГОДАРНОСТЬ!!!!!