model = LinearRegression()

# Обучаем модель на обучающих данных

model.fit(X_train, y_train)

```

Что здесь происходит?

– `LinearRegression()` – создаёт объект модели линейной регрессии.

– `.fit(X_train, y_train)` – обучает модель, находя оптимальные коэффициенты (вес признаков), которые позволяют наилучшим образом предсказывать цену квартиры.

Шаг 4: Анализ коэффициентов модели

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

```python

# Вывод коэффициентов

print("Коэффициенты модели:", model.coef_)

print("Свободный член (intercept):", model.intercept_)

```

Что это означает?

– Коэффициенты (`coef_`) показывают, как изменится предсказание цены, если изменить один из признаков на единицу.

– Свободный член (`intercept_`) – это базовое значение, с которого начинается предсказание, когда все признаки равны нулю.

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

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

```python

# Делаем предсказания на тестовых данных

y_pred = model.predict(X_test)

# Выводим предсказанные и реальные значения

print("Реальные цены:", y_test.values)

print("Предсказанные цены:", y_pred)

```

Здесь модель делает прогноз стоимости квартир, основываясь на их площади и этаже.

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

Чтобы понять, насколько хорошо модель работает, сравним её предсказания с реальными значениями.

```python

# Вычисляем среднюю абсолютную ошибку (MAE)

mae = mean_absolute_error(y_test, y_pred)

# Вычисляем среднеквадратичную ошибку (MSE)

mse = mean_squared_error(y_test, y_pred)

# Выводим ошибки

print(f"Средняя абсолютная ошибка (MAE): {mae:.2f} млн рублей")

print(f"Среднеквадратичная ошибка (MSE): {mse:.2f}")

```

Что значат эти метрики?

– MAE (Mean Absolute Error) – показывает, насколько в среднем предсказанная цена квартиры отличается от реальной. Например, если MAE = 0.8, значит, предсказание модели в среднем отличается от настоящей цены на 800 тысяч рублей.

– MSE (Mean Squared Error) – похожая метрика, но возводит разницу в квадрат, чтобы сильнее наказывать большие ошибки.

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

Шаг 7: Визуализация результатов

Давайте построим график, чтобы посмотреть, насколько хорошо модель предсказывает цены.

```python

# График: реальные vs предсказанные цены

plt.scatter(y_test, y_pred)

plt.xlabel("Реальные цены (млн рублей)")

plt.ylabel("Предсказанные цены (млн рублей)")

plt.title("Сравнение реальных и предсказанных цен")

plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], color='red', linestyle='–')

plt.show()

```

Красная линия – это идеальный результат (предсказания совпадают с реальными значениями). Если точки расположены близко к ней, значит, модель хорошо справляется с предсказаниями.

Выводы

Мы прошли все основные шаги работы с линейной регрессией:

1. Подготовили данные и разделили их на обучающую и тестовую выборки.

2. Обучили модель на обучающих данных.

3. Посмотрели коэффициенты, которые нашла модель.

4. Сделали предсказания на тестовых данных.

5. Оценили качество предсказаний с помощью метрик.

6. Визуализировали результаты.

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

Метрики оценки качества моделей

После того как модель машинного обучения обучена, необходимо понять, насколько хорошо она справляется со своей задачей. Для этого используются **метрики качества** – числовые показатели, которые помогают объективно оценить, насколько точны предсказания модели.