Освоение простой линейной регрессии: руководство для начинающих по прогнозному моделированию

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

Что такое простая линейная регрессия?
Простая линейная регрессия — это статистический метод, целью которого является моделирование взаимосвязи между зависимой переменной (целевой переменной) и независимой переменной (переменной-предиктором) с помощью линейного уравнения. Предполагается, что между двумя переменными существует линейная связь, а это означает, что изменение предикторной переменной приведет к пропорциональному изменению целевой переменной.

Уравнение:
Уравнение простой линейной регрессии можно записать как:
y = mx + b

Здесь «y» представляет целевую переменную, «x» представляет собой предикторную переменную, «m» представляет наклон (изменение «y» при единичном изменении «x»), а «b» представляет собой y-перехват (значение ‘y’, когда ‘x’ равно нулю).

Метод 1: метод обычных наименьших квадратов (МНК)
Метод МНК — это наиболее распространенный подход для оценки параметров (наклона и точки пересечения) простой модели линейной регрессии. Он минимизирует сумму квадратов разностей между наблюдаемыми и прогнозируемыми значениями, чтобы найти наиболее подходящую линию. В Python вы можете использовать библиотеку statsmodelsдля выполнения регрессии OLS. Вот пример:

import statsmodels.api as sm
# Define the predictor variable
X = [1, 2, 3, 4, 5]
# Define the target variable
y = [2, 3, 4, 5, 6]
# Add a constant to the predictor variable
X = sm.add_constant(X)
# Fit the regression model
model = sm.OLS(y, X).fit()
# Get the model summary
print(model.summary())

Метод 2: Градиентный спуск
Градиентный спуск — это алгоритм оптимизации, обычно используемый для обучения моделей машинного обучения. Его также можно применять для оценки параметров модели линейной регрессии. Идея состоит в том, чтобы итеративно обновлять значения параметров на основе градиента функции стоимости. Вот упрощенная реализация на Python:

# Define the predictor variable
X = [1, 2, 3, 4, 5]
# Define the target variable
y = [2, 3, 4, 5, 6]
# Initialize the slope and intercept
m = 0
b = 0
# Set the learning rate and number of iterations
learning_rate = 0.01
num_iterations = 100
# Perform gradient descent
for i in range(num_iterations):
    y_pred = [m * xi + b for xi in X]
    error = [yi - ypi for yi, ypi in zip(y, y_pred)]
    delta_m = (-2 / len(X)) * sum([xi * ei for xi, ei in zip(X, error)])
    delta_b = (-2 / len(X)) * sum(error)
    m -= learning_rate * delta_m
    b -= learning_rate * delta_b
# Print the final parameter values
print("Slope (m):", m)
print("Intercept (b):", b)

Метод 3: Библиотека Scikit-learn
Scikit-learn — популярная библиотека машинного обучения на Python, предоставляющая полный набор инструментов для регрессионного анализа. Он включает в себя простой класс линейной регрессии, который позволяет легко создавать и оценивать модели регрессии. Вот пример:

from sklearn.linear_model import LinearRegression
# Define the predictor variable
X = [[1], [2], [3], [4], [5]]
# Define the target variable
y = [2, 3, 4, 5, 6]
# Create a linear regression model
model = LinearRegression()
# Fit the model to the data
model.fit(X, y)
# Get the slope and intercept
m = model.coef_[0]
b = model.intercept_
# Print the parameter values
print("Slope (m):", m)
print("Intercept (b):", b)

Простая линейная регрессия – это фундаментальный метод прогнозного моделирования. В этой статье мы исследовали три метода реализации и улучшения простых моделей линейной регрессии: метод обычных наименьших квадратов (OLS), градиентный спуск и библиотеку Scikit-learn. Поняв эти методы и применив их к своим данным, вы сможете получить ценную информацию и сделать точные прогнозы. Итак, начните изучать возможности простой линейной регрессии и раскройте потенциал своих данных!