Регрессионный анализ: от линейных моделей к предсказаниям

Пройдите тест, узнайте какой профессии подходите
Сколько вам лет
0%
До 18
От 18 до 24
От 25 до 34
От 35 до 44
От 45 до 49
От 50 до 54
Больше 55

Для кого эта статья:

  • Студенты и специалисты, начинающие карьеру в области аналитики данных
  • Практикующие аналитики, желающие углубить свои знания в регрессионном анализе
  • Профессионалы, заинтересованные в применении методов регрессии для решения реальных задач

    Представьте, что вы хотите предсказать цену недвижимости, объем продаж или количество подписчиков сервиса. За этими предсказаниями скрывается математическая мощь регрессионного анализа — мостика между миром данных и миром решений. 🔍 Регрессия — это не просто статистический метод, а инструмент, способный трансформировать бизнес и науку, превращая числа в прогнозы, а прогнозы в стратегические действия. Освоив регрессионный анализ, вы получаете ключ к пониманию зависимостей, скрытых в ваших данных, и способность строить модели, объясняющие реальность с математической точностью.

Хотите не просто читать о регрессии, а применять эти методы профессионально? Курс Профессия аналитик данных от Skypro даст вам не только теоретическое понимание регрессии, но и практические навыки работы с реальными датасетами. Вы освоите Python, SQL и библиотеки для анализа данных, научитесь строить предсказательные модели и интерпретировать их результаты — всё, что нужно для успешного старта карьеры в аналитике данных.

Сущность регрессии в анализе данных и её типы

Регрессионный анализ — мощный статистический метод, исследующий связь между зависимой переменной и одной или несколькими независимыми переменными. Целью регрессии является построение математической модели, способной описать эту связь и предсказать значения зависимой переменной на основе независимых.

Простейший пример: предсказание стоимости дома (зависимая переменная) на основе его площади (независимая переменная). Регрессия позволяет количественно оценить, как изменение площади влияет на стоимость, и построить функцию, описывающую эту зависимость.

В арсенале аналитика данных существует несколько ключевых типов регрессии, каждый со своими особенностями и областями применения:

  • Линейная регрессия — моделирует линейную зависимость между переменными с помощью уравнения прямой линии.
  • Множественная регрессия — расширение линейной регрессии для множества независимых переменных.
  • Полиномиальная регрессия — использует полиномы для моделирования нелинейных зависимостей.
  • Логистическая регрессия — применяется для задач классификации, когда зависимая переменная бинарна.
  • Регрессия Пуассона — подходит для моделирования счетных данных (количество событий).
  • Квантильная регрессия — позволяет оценивать медианное или иное квантильное значение зависимой переменной.

Каждый тип регрессии имеет свои допущения и ограничения. Выбор конкретного метода зависит от характеристик данных и поставленной задачи.

Тип регрессии Форма модели Применение Ограничения
Линейная y = β₀ + β₁x + ε Простые линейные зависимости Не подходит для нелинейных данных
Множественная y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε Многофакторные зависимости Чувствительность к мультиколлинеарности
Полиномиальная y = β₀ + β₁x + β₂x² + ... + βₙxⁿ + ε Криволинейные зависимости Риск переобучения при высоких степенях
Логистическая log(p/(1-p)) = β₀ + β₁x + ε Бинарная классификация Только для категориальных зависимых переменных

Исторически регрессионный анализ берет свое начало в работах Фрэнсиса Гальтона в XIX веке, который исследовал рост детей относительно роста их родителей. Сам термин "регрессия" происходит от его наблюдения, что рост детей "регрессировал" к среднему значению в популяции. С тех пор регрессия эволюционировала в незаменимый инструмент для областей от экономики до машинного обучения. 📈

Дмитрий Корнеев, ведущий аналитик данных

Когда я начинал работать с прогнозированием продаж в розничной сети, мой руководитель дал простое задание: "Предскажи продажи на следующий месяц". Я гордо построил сложную нейронную сеть, которая отлично работала на тренировочных данных. Но на тестовых... катастрофа. Модель просто не обобщалась.

После этого провала я вернулся к основам — линейной регрессии. Использовав три ключевых фактора: сезонность, маркетинговые активности и исторические тренды, я построил модель, которая оказалась точнее на 27%. Важным уроком стало понимание, что иногда простота — ключ к успеху. Регрессия дала нам не только точность, но и интерпретируемость — мы точно знали, какой фактор и насколько влияет на продажи, что позволило оптимизировать маркетинговый бюджет.

Пошаговый план для смены профессии

Линейная регрессия: математический фундамент и практика

Линейная регрессия — это краеугольный камень регрессионного анализа, отличающийся своей простотой и вычислительной эффективностью. Суть метода заключается в поиске линейной функции, максимально точно описывающей зависимость между входными данными и целевой переменной.

Математически модель линейной регрессии можно представить как:

y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε

где:

  • y — зависимая переменная (то, что мы предсказываем)
  • β₀ — свободный член (пересечение с осью y)
  • β₁, β₂, ..., βₙ — коэффициенты регрессии
  • x₁, x₂, ..., xₙ — независимые переменные (признаки)
  • ε — случайная ошибка (шум)

Задача линейной регрессии — найти значения коэффициентов β, при которых модель наиболее точно соответствует наблюдаемым данным. Стандартный метод для решения этой задачи — метод наименьших квадратов (МНК), минимизирующий сумму квадратов отклонений прогнозируемых значений от фактических.

Формула для МНК:

β = (X^T X)^(-1) X^T y

где X — матрица признаков, y — вектор целевой переменной, а X^T — транспонированная матрица X.

Линейная регрессия основана на ряде допущений:

  • Линейность: зависимость между переменными линейна
  • Независимость ошибок: ошибки независимы друг от друга
  • Гомоскедастичность: дисперсия ошибок постоянна
  • Нормальность распределения ошибок: ошибки распределены нормально
  • Отсутствие мультиколлинеарности: предикторы не должны быть сильно коррелированы

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

Вот пример простой линейной регрессии в Python с использованием scikit-learn:

Python
Скопировать код
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# Генерируем данные
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# Создаем и обучаем модель
model = LinearRegression()
model.fit(X, y)

# Получаем параметры модели
print(f"Коэффициент (наклон): {model.coef_[0][0]:.4f}")
print(f"Свободный член: {model.intercept_[0]:.4f}")

# Делаем предсказания
X_new = np.array([[0], [2]])
y_pred = model.predict(X_new)

# Оцениваем качество модели
y_pred_all = model.predict(X)
r2 = r2_score(y, y_pred_all)
print(f"Коэффициент детерминации (R²): {r2:.4f}")

Преимущества линейной регрессии:

  • Простота и интерпретируемость
  • Вычислительная эффективность
  • Хорошая обобщающая способность для линейных зависимостей
  • Ясное понимание влияния каждого предиктора

Однако метод имеет и ограничения, включая неспособность моделировать нелинейные зависимости без трансформации данных и чувствительность к выбросам. 📊

Применение линейной регрессии распространяется на множество областей:

  • Экономика: прогнозирование продаж, цен акций
  • Медицина: связь между факторами риска и заболеваниями
  • Маркетинг: эффективность рекламных кампаний
  • Социальные науки: взаимосвязь между образованием и доходом

Линейная регрессия часто служит отправной точкой для более сложного моделирования, позволяя получить базовое понимание данных и взаимосвязей между переменными.

Многофакторные и полиномиальные регрессионные модели

Многофакторная (множественная) регрессия расширяет концепцию линейной регрессии, позволяя использовать несколько предикторов для предсказания целевой переменной. Это существенно повышает гибкость и точность моделирования, особенно в реальных задачах, где редко встречаются однофакторные зависимости.

Формально, модель множественной линейной регрессии описывается уравнением:

y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε

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

При работе с многофакторными моделями критически важно избегать мультиколлинеарности — высокой корреляции между предикторами. Мультиколлинеарность приводит к нестабильности оценок коэффициентов и усложняет интерпретацию модели. Для борьбы с ней используются:

  • Анализ корреляционной матрицы
  • Вычисление фактора инфляции дисперсии (VIF)
  • Методы регуляризации (Ridge, Lasso)
  • Метод главных компонент (PCA) для снижения размерности

Когда зависимость между переменными не является линейной, на помощь приходят полиномиальные регрессионные модели, которые можно представить как:

y = β₀ + β₁x + β₂x² + ... + βₙxⁿ + ε

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

Анна Сергеева, старший аналитик данных

В экологическом проекте мне нужно было смоделировать связь между загрязнением воздуха и количеством респираторных заболеваний в разных районах города. Начав с линейной модели, я получила R² всего 0.43 — явно недостаточно для надежных выводов.

Анализ графиков показал явную нелинейность: при низких уровнях загрязнения количество заболеваний росло медленно, но после определенного порога начинало резко увеличиваться. Я применила полиномиальную регрессию 3-й степени, включив также факторы плотности населения, среднего возраста жителей и количества зеленых зон.

Результат превзошел ожидания: R² поднялся до 0.87, а модель выявила критические пороги загрязнения, при которых риск заболеваний резко возрастал. Эти данные позволили городской администрации разработать целевую программу по снижению загрязнения в наиболее уязвимых районах, что привело к 23%-ному сокращению числа госпитализаций уже в следующем году.

Пример реализации полиномиальной регрессии в Python:

Python
Скопировать код
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline

# Генерируем нелинейные данные
np.random.seed(0)
X = 6 * np.random.rand(100, 1) – 3
y = 0.5 * X**2 + X + 2 + np.random.randn(100, 1)

# Создаем и обучаем полиномиальную модель
degree = 2
polyreg = make_pipeline(PolynomialFeatures(degree), LinearRegression())
polyreg.fit(X, y)

# Визуализация результатов
X_test = np.linspace(-3, 3, 100).reshape(-1, 1)
plt.scatter(X, y, color='blue')
plt.plot(X_test, polyreg.predict(X_test), color='red')
plt.title(f'Полиномиальная регрессия (степень {degree})')
plt.xlabel('X')
plt.ylabel('y')
plt.show()

Выбор степени полинома — критически важная задача балансирования между недообучением и переобучением модели:

Степень полинома Характеристики Риски Применимость
1 (линейная) Простая, интерпретируемая Недообучение при нелинейных данных Линейные или почти линейные зависимости
2-3 Моделирует умеренную нелинейность Возможно недообучение при сложных данных Многие реальные задачи с плавной нелинейностью
4-5 Высокая гибкость Начинаются риски переобучения Сложные нелинейные данные с достаточным объемом выборки
6+ Очень высокая гибкость Высокий риск переобучения, неустойчивость Редко оправдано, требует больших выборок и регуляризации

Для определения оптимальной степени полинома часто используют:

  • Кросс-валидацию для оценки обобщающей способности модели
  • Информационные критерии (AIC, BIC)
  • Анализ остатков модели
  • Регуляризацию для контроля сложности

Многофакторные и полиномиальные модели значительно расширяют аналитический арсенал, но требуют внимательного подхода к выбору признаков и контролю сложности для достижения баланса между точностью и обобщающей способностью. 🧩

Реализация регрессии в Python: пошаговая инструкция

Практическая реализация регрессионного анализа в Python требует структурированного подхода, начиная от подготовки данных и заканчивая валидацией модели. Рассмотрим последовательные шаги на примере реального датасета. 🐍

Шаг 1: Подготовка среды и загрузка данных

Python
Скопировать код
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, Ridge, Lasso
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
from sklearn.metrics import mean_squared_error, r2_score

# Загрузка данных (используем датасет Boston Housing)
from sklearn.datasets import load_boston
boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = boston.target

# Исследуем структуру данных
print(f"Форма датасета: {X.shape}")
print(X.head())
print(f"\nЦелевая переменная (первые 5 значений): {y[:5]}")

Шаг 2: Разведочный анализ данных (EDA)

Python
Скопировать код
# Статистическое описание данных
print(X.describe())

# Проверка пропущенных значений
print(f"\nПропущенные значения:\n{X.isnull().sum()}")

# Анализ корреляций
plt.figure(figsize=(12, 10))
correlation_matrix = pd.DataFrame(data=X).corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Корреляционная матрица признаков')
plt.show()

# Визуализация зависимостей
plt.figure(figsize=(15, 10))
for i, feature in enumerate(X.columns, 1):
plt.subplot(3, 5, i)
plt.scatter(X[feature], y, alpha=0.5)
plt.title(f'{feature} vs Price')
plt.xlabel(feature)
plt.ylabel('Price')
plt.tight_layout()
plt.show()

Шаг 3: Подготовка данных для моделирования

Python
Скопировать код
# Разделение на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
print(f"Размер обучающей выборки: {X_train.shape}")
print(f"Размер тестовой выборки: {X_test.shape}")

# Масштабирование признаков
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Шаг 4: Построение и обучение моделей

Python
Скопировать код
# Линейная регрессия
lr_model = LinearRegression()
lr_model.fit(X_train_scaled, y_train)
y_pred_lr = lr_model.predict(X_test_scaled)

# Ridge регрессия (с L2 регуляризацией)
ridge_model = Ridge(alpha=1.0)
ridge_model.fit(X_train_scaled, y_train)
y_pred_ridge = ridge_model.predict(X_test_scaled)

# Lasso регрессия (с L1 регуляризацией)
lasso_model = Lasso(alpha=0.1)
lasso_model.fit(X_train_scaled, y_train)
y_pred_lasso = lasso_model.predict(X_test_scaled)

# Полиномиальная регрессия (степень=2)
poly_model = make_pipeline(
PolynomialFeatures(2), 
LinearRegression()
)
poly_model.fit(X_train_scaled, y_train)
y_pred_poly = poly_model.predict(X_test_scaled)

Шаг 5: Оценка качества моделей

Python
Скопировать код
# Функция для оценки и сравнения моделей
def evaluate_model(y_true, y_pred, model_name):
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_true, y_pred)
print(f"{model_name}:")
print(f" MSE: {mse:.4f}")
print(f" RMSE: {rmse:.4f}")
print(f" R²: {r2:.4f}\n")
return mse, rmse, r2

# Оценка каждой модели
results = {}
results['Linear'] = evaluate_model(y_test, y_pred_lr, "Линейная регрессия")
results['Ridge'] = evaluate_model(y_test, y_pred_ridge, "Ridge регрессия")
results['Lasso'] = evaluate_model(y_test, y_pred_lasso, "Lasso регрессия")
results['Polynomial'] = evaluate_model(y_test, y_pred_poly, "Полиномиальная регрессия")

# Визуализация сравнения моделей
plt.figure(figsize=(12, 6))
model_names = list(results.keys())
r2_scores = [results[model][2] for model in model_names]
plt.bar(model_names, r2_scores, color='skyblue')
plt.ylim(0, 1)
plt.title('Сравнение моделей по R²')
plt.ylabel('R²')
for i, v in enumerate(r2_scores):
plt.text(i, v + 0.02, f'{v:.3f}', ha='center')
plt.show()

Шаг 6: Анализ важности признаков (для линейной регрессии)

Python
Скопировать код
# Получение и визуализация коэффициентов
coef = pd.Series(lr_model.coef_, index=X.columns)
plt.figure(figsize=(12, 8))
coef.sort_values().plot(kind='barh')
plt.title('Важность признаков в линейной регрессии')
plt.show()

Шаг 7: Диагностика модели

Python
Скопировать код
# Анализ остатков
y_train_pred = lr_model.predict(X_train_scaled)
residuals = y_train – y_train_pred

plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.scatter(y_train_pred, residuals)
plt.axhline(y=0, color='r', linestyle='-')
plt.title('Остатки vs Предсказанные значения')
plt.xlabel('Предсказанные значения')
plt.ylabel('Остатки')

plt.subplot(1, 2, 2)
plt.hist(residuals, bins=30)
plt.title('Распределение остатков')
plt.xlabel('Остатки')
plt.ylabel('Частота')
plt.tight_layout()
plt.show()

# Проверка на нормальность остатков
import scipy.stats as stats
plt.figure(figsize=(10, 6))
stats.probplot(residuals, plot=plt)
plt.title('Q-Q график остатков')
plt.show()

Основные практические рекомендации при реализации регрессии в Python:

  • Начинайте с EDA: понимание данных критически важно для правильного выбора модели
  • Обрабатывайте выбросы: они могут значительно искажать результаты регрессии
  • Масштабируйте признаки: это повышает устойчивость и скорость сходимости алгоритмов
  • Используйте регуляризацию при высокой размерности для борьбы с переобучением
  • Тщательно проверяйте допущения модели через анализ остатков
  • Применяйте кросс-валидацию для надежной оценки обобщающей способности
  • Используйте Pipeline для стандартизации и воспроизводимости анализа

Python с его экосистемой библиотек (scikit-learn, statsmodels, numpy, pandas) предоставляет мощные и гибкие инструменты для всех этапов регрессионного анализа — от предварительной обработки данных до тонкой настройки моделей и визуализации результатов.

Оценка качества регрессионных моделей и их оптимизация

Оценка качества регрессионных моделей — критический этап, определяющий надежность и применимость результатов анализа. Корректная оценка требует использования соответствующих метрик и понимания их сильных и слабых сторон. 📏

Основные метрики оценки регрессионных моделей включают:

  • Среднеквадратичная ошибка (MSE): MSE = (1/n) Σ(yᵢ – ŷᵢ)², где yᵢ — фактическое значение, а ŷᵢ — предсказанное
  • Корень из среднеквадратичной ошибки (RMSE): RMSE = √MSE, имеет те же единицы измерения, что и целевая переменная
  • Средняя абсолютная ошибка (MAE): MAE = (1/n) Σ|yᵢ – ŷᵢ|, менее чувствительна к выбросам, чем MSE
  • Коэффициент детерминации (R²): R² = 1 – (SSres/SStot), показывает долю объясненной дисперсии
  • Скорректированный R²: R²ₐᵈⱼ = 1 – [(1-R²)(n-1)/(n-p-1)], учитывает количество предикторов
  • Средняя абсолютная процентная ошибка (MAPE): MAPE = (100/n) Σ|(yᵢ – ŷᵢ)/yᵢ|, выражает ошибку в процентах

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

Метрика Преимущества Ограничения Когда использовать
MSE Дифференцируемость, штрафует большие ошибки Чувствительность к выбросам, неинтуитивная интерпретация Для оптимизации моделей, когда большие ошибки особенно нежелательны
RMSE Имеет те же единицы измерения, что и y Чувствительность к выбросам Для интерпретируемого измерения ошибки
MAE Устойчивость к выбросам, интуитивная интерпретация Не дифференцируема в нуле, равнозначно штрафует все ошибки Когда выбросы присутствуют или желательна интуитивная интерпретация
Нормированность (0-1), интерпретируемость Не всегда отражает качество предсказаний, может быть отрицательным Для оценки объяснительной способности модели
MAPE Процентное выражение, независимость от масштаба Проблемы при y близком к нулю, асимметричный штраф Для сравнения моделей на разных масштабах данных

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

1. Отбор признаков

Эффективные методы отбора включают:

  • Фильтрационные методы: корреляционный анализ, дисперсионный анализ
  • Методы-обертки: последовательный отбор, рекурсивное исключение признаков
  • Встроенные методы: Lasso-регрессия, деревья решений
  • Методы на основе информационных критериев: AIC, BIC, ошибка кросс-валидации

Пример использования рекурсивного исключения признаков:

Python
Скопировать код
from sklearn.feature_selection import RFECV

# Создаем модель с рекурсивным исключением признаков
rfecv = RFECV(
estimator=LinearRegression(), 
step=1, 
cv=5, 
scoring='neg_mean_squared_error'
)
rfecv.fit(X_train_scaled, y_train)

# Выводим оптимальное число признаков и их маску
print(f"Оптимальное число признаков: {rfecv.n_features_}")
print(f"Маска выбранных признаков: {rfecv.support_}")
print(f"Выбранные признаки: {X.columns[rfecv.support_].tolist()}")

# Строим график зависимости качества от числа признаков
plt.figure(figsize=(10, 6))
plt.plot(
range(1, len(rfecv.grid_scores_) + 1), 
-rfecv.grid_scores_, 
marker='o'
)
plt.xlabel('Число признаков')
plt.ylabel('Отрицательное MSE')
plt.title('Зависимость качества модели от числа признаков')
plt.show()

2. Регуляризация

Регуляризация помогает бороться с переобучением путем добавления штрафа за сложность модели:

  • L1-регуляризация (Lasso): способствует разреженности модели
  • L2-регуляризация (Ridge): стабилизирует оценки коэффициентов
  • ElasticNet: комбинирует L1 и L2 регуляризации

Пример поиска оптимального параметра регуляризации:

Python
Скопировать код
from sklearn.model_selection import GridSearchCV

# Настройка параметра регуляризации для Ridge
param_grid = {'alpha': np.logspace(-3, 3, 20)}
ridge_cv = GridSearchCV(
Ridge(), 
param_grid, 
cv=5, 
scoring='neg_mean_squared_error'
)
ridge_cv.fit(X_train_scaled, y_train)

# Отображаем результаты
print(f"Оптимальный alpha: {ridge_cv.best_params_['alpha']}")
print(f"Лучший RMSE: {np.sqrt(-ridge_cv.best_score_)}")

# Строим график зависимости RMSE от alpha
alphas = param_grid['alpha']
scores = ridge_cv.cv_results_['mean_test_score']
plt.figure(figsize=(10, 6))
plt.semilogx(alphas, np.sqrt(-scores), marker='o')
plt.xlabel('Alpha (логарифмическая шкала)')
plt.ylabel('RMSE')
plt.title('Зависимость RMSE от параметра регуляризации')
plt.show()

3. Проверка и устранение мультиколлинеарности

Мультиколлинеарность — высокая корреляция между предикторами — может привести к нестабильным оценкам коэффициентов. Для её выявления и устранения используют:

  • Анализ корреляционной матрицы
  • Расчет коэффициента инфляции дисперсии (VIF)
  • Метод главных компонент (PCA)

4. Обработка нелинейностей

Для повышения точности при нелинейных зависимостях применяются:

  • Полиномиальные признаки
  • Сплайны и локально-взвешенная регрессия
  • Преобразования переменных (логарифмирование, возведение в степень и др.)
  • Нелинейные модели (случайные леса, градиентный бустинг, нейронные сети)

5. Кросс-валидация

Кросс-валидация помогает получить надежную оценку качества модели и избежать переобучения:

Python
Скопировать код
from sklearn.model_selection import cross_val_score, KFold

# Настройка кросс-валидации
kf = KFold(n_splits=5, shuffle=True, random_state=42)

# Сравнение моделей с помощью кросс-валидации
models = {
'Linear': LinearRegression(),
'Ridge': Ridge(alpha=ridge_cv.best_params_['alpha']),
'Lasso': Lasso(alpha=0.1),
'Polynomial': make_pipeline(PolynomialFeatures(2), LinearRegression())
}

for name, model in models.items():
scores = cross_val_score(
model, X_scaled, y, 
cv=kf, 
scoring='neg_mean_squared_error'
)
rmse_scores = np.sqrt(-scores)
print(f"{name}: Mean RMSE = {rmse_scores.mean():.4f}, Std = {rmse_scores.std():.4f}")

Регрессионный анализ — мощный, но требующий внимания к деталям инструмент. Правильная оценка и оптимизация моделей позволяют не только повысить точность предсказаний, но и получить надежные, интерпретируемые результаты, применимые в реальных задачах. 🚀

Регрессионный анализ — это фундамент, на котором строится здание предсказательной аналитики. Овладев различными техниками от простой линейной до сложной полиномиальной регрессии, вы получаете ключ к пониманию зависимостей в данных и способность превращать эти зависимости в точные прогнозы. Помните: настоящая сила регрессии раскрывается не в механическом применении формул, а в глубоком понимании данных, тщательном выборе признаков и скрупулезной оценке качества моделей. Только так математика превращается в инсайты, а инсайты — в решения, меняющие реальность.

Читайте также

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Что такое регрессия в анализе данных?
1 / 5

Загрузка...