Введение в ML: Линейная Регрессия
Цель: Построить первую регрессионную модель для предсказания стоимости жилья. Мы научимся интерпретировать веса модели (выясним, какой фактор важнее всего), диагностировать проблему мультиколлинеарности и правильно оценивать качество предсказания с помощью метрик RMSE и .
Инструменты:
sklearn.linear_model: Линейная регрессия.sklearn.metrics: MAE, MSE, R2.seaborn: Визуализация корреляций и весов.
Данные: California Housing. Набор данных содержит информацию о жилых районах Калифорнии (1990 г.).
- Целевая переменная (
target): Медианная стоимость дома (в единицах $100,000). - Признаки: Медианный доход (
MedInc), Средний возраст домов, Среднее кол-во комнат и т.д.
Часть 1: Загрузка и Анализ корреляций
Прежде чем строить модель, нужно проверить данные на наличие мультиколлинеарности (когда признаки дублируют друг друга).
Проблема мультиколлинеарности
Линейная регрессия "сходит с ума" и выдает некорректные веса, если два признака имеют корреляцию близкую к 1 или -1. Именно поэтому анализ тепловой карты обязателен.
Задание 1.1: Тепловая карта
- Загрузите данные
fetch_california_housing. - Создайте DataFrame.
- Постройте тепловую карту корреляций (
sns.heatmap) для всех признаков (без целевой переменной).
Часть 2: Подготовка и Масштабирование
Для линейной модели критически важно привести все признаки к одному масштабу. Иначе признак "Население" (тысячи людей) "задавит" признак "Количество спален" (единицы).
Задание 2.1:
- Разделите данные на Train/Test (80/20,
random_state=42). - Примените
StandardScaler.fitтолько на Train.transformна Train и Test.
Часть 3: Обучение и Интерпретация весов
Самое ценное свойство линейной регрессии — мы можем "заглянуть ей под капот" и понять логику принятия решений.
Задание 3.1: Обучение
- Обучите
LinearRegressionна масштабированных данных. - Выведите свободный член (,
intercept_) и коэффициенты (,coef_).
Задание 3.2: Визуализация важности признаков
Цифры читать неудобно. Давайте построим Barplot весов:
- Большой положительный столб: признак сильно повышает цену.
- Большой отрицательный столб: признак сильно снижает цену.
- Около нуля: признак не важен.
Анализ результата
Какой фактор сильнее всего влияет на цену? (Ожидаемо MedInc). А какой фактор неожиданно тянет цену вниз?
Часть 4: Оценка качества (Метрики)
Насколько сильно мы ошибаемся в долларах?
Задание 4.1: Расчет ошибок
- Сделайте предсказание для Test.
- Посчитайте метрики:
- MAE (Средняя абсолютная ошибка).
- MSE (Среднеквадратичная ошибка).
- RMSE (Корень из MSE).
- (Коэффициент детерминации).
Бизнес-интерпретация
Напоминание: Целевая переменная измеряется в **50,000.
Часть 5: Анализ остатков (Residuals) - Проверка "вшивости"
Если модель хорошая, её ошибки (остатки) должны быть распределены случайно (нормальное распределение вокруг нуля). Если мы видим паттерн — модель что-то упустила (нужна нелинейная модель).
Задание 5.1: График остатков
Постройте Scatter plot:
- Ось X: Предсказанные значения (
y_pred). - Ось Y: Остатки (
y_test - y_pred). - Проведите горизонтальную линию на уровне 0.