Линейная регрессия
Прогнозирование результатов с помощью одной функции
Метод прогнозирования зависимой переменной (Y) на основе значений независимых переменных (X), в которых они линейно связаны.
Цель: найти линейную функцию, которая предсказывает зависимую переменную (Y) как функцию признака или независимой переменной (X).
Линейная функция ,
y = b0 + (b1 * x1)
у = зависимая переменная
х = независимая переменная
Как найти наиболее подходящую линию?
В этой регрессионной модели мы пытаемся свести к минимуму ошибки прогноза, находя линию наилучшего соответствия. Другими словами, мы пытаемся минимизировать длину между фактическим значением (Yi) и предсказанным значением из нашей модели (Yp).
мы обычно используем MSE для вычисления ошибки.
мин {СУММ(Yi — Yp)² }
Шаг 1. Предварительная обработка данных
Мы будем следовать тем же шагам, что и в моей предыдущей статье Машинное обучение (часть 1).
Шаг 2. Разработка функций
Мы можем отфильтровать независимые переменные (X), которые имеют высокую взаимосвязь с зависимыми переменными (Y), построив их матрицу корреляции.
используйте Seaborn, чтобы нарисовать матрицу в красочном сюжете.
import pandas as pd df = pd.DataFrame(filename) df.corr() import seaborn as sn import matplotlib.pyplot as plt sn.heatmap(corrMatrix, annot=True)
Шаг 3. Подгонка модели линейной регрессии к обучающей выборке
from sklearn.linear_model import LinearRegression regressor = LinearRegression() regressor = regressor.fit(X_train, Y_train)
Шаг 4. Прогнозирование результатов
Y_pred = regressor.predict(X_test)
Шаг 5. Визуализация
Мы будем использовать библиотеку matplotlib.pyplot для создания точечных диаграмм наших обучающих и тестовых наборов, чтобы увидеть, насколько наша модель предсказывает значения.
import matlpotlib.pyplot as plt // visualize the training dataset plt.scatter(X_train, Y_train, color='blue') plt.plot(X_train, regressor.predict(X_train), color='red') // visualize the testing dataset plt.scatter(X_test, Y_test, color='blue') plt.plot(X_test, regressor.predict(X_test), color='red')