Алгоритмы машинного обучения: базовый курс. Тайлер Венс

Алгоритмы машинного обучения: базовый курс - Тайлер Венс


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

      1. Постановка задачи

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

      Шаг 1: Подготовка данных

      Сначала импортируем необходимые библиотеки и создадим набор данных.

      ```python

      import pandas as pd

      import numpy as np

      import matplotlib.pyplot as plt

      from sklearn.model_selection import train_test_split

      from sklearn.linear_model import LinearRegression

      from sklearn.metrics import mean_absolute_error, mean_squared_error

      ```

      Теперь создадим небольшой набор данных с информацией о квартирах:

      ```python

      # Создадим искусственные данные: площадь (кв. метры), этаж и цена (в миллионах рублей)

      data = pd.DataFrame({

      "Площадь": [30, 45, 60, 75, 90, 105, 120, 135, 150, 165],

      "Этаж": [2, 3, 5, 1, 8, 10, 12, 15, 17, 20],

      "Цена": [3.5, 5.2, 6.8, 7.1, 9.3, 10.5, 12.7, 14.2, 15.8, 17.5]

      })

      ```

      Этот набор данных содержит три столбца:

      – Площадь – площадь квартиры в квадратных метрах

      – Этаж – на каком этаже расположена квартира

      – Цена – реальная стоимость квартиры в миллионах рублей (целевой признак)

      Шаг 2: Разделение данных на обучающую и тестовую выборки

      Мы разделим данные на обучающую выборку (80%) и тестовую выборку (20%). Это необходимо для проверки модели на новых данных, которые она не видела во время обучения.

      ```python

      # Отделяем признаки (X) и целевую переменную (y)

      X = data[["Площадь", "Этаж"]]

      y = data["Цена"]

      # Разделяем данные: 80% для обучения, 20% для тестирования

      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

      # Выведем размер обучающей и тестовой выборки

      print("Размер обучающей выборки:", X_train.shape[0])

      print("Размер тестовой выборки:", X_test.shape[0])

      ```

      Почему это важно?

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

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

      Шаг 3: Обучение модели линейной регрессии

      Теперь создадим модель линейной регрессии и обучим её на наших данных.

      ```python

      # Создаем объект модели линейной регрессии

      model = LinearRegression()

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

      model.fit(X_train, y_train)

      ```

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

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

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

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

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

      ```python

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

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

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

      ```

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

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

      – Свободный


Скачать книгу