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

Книгу можно купить на ЛитРес.
Всего за 690 руб. Купить полную версию
Шрифт
Фон

})

# Признаки (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("Обучающие данные:\n", X_train)

print("Тестовые данные:\n", X_test)

```

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

Пример 4: Проверка на переобучение

Допустим, мы обучили модель и посмотрели её точность на обучающих и тестовых данных.

```python

from sklearn.linear_model import LinearRegression

from sklearn.metrics import mean_absolute_error

# Создаем и обучаем модель линейной регрессии

model = LinearRegression()

model.fit(X_train, y_train)

# Делаем предсказания

train_predictions = model.predict(X_train)

test_predictions = model.predict(X_test)

# Оценка модели

train_error = mean_absolute_error(y_train,

train_predictions)

test_error = mean_absolute_error(y_test, test_predictions)

print(f"Ошибка на обучающей выборке: {train_error:.2f}")

print(f"Ошибка на тестовой выборке: {test_error:.2f}")

```

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

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

Пример 5: Линейная регрессия

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

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_`) показывают, как изменится предсказание цены, если изменить один из признаков на единицу.

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

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

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

```python

#

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

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

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

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3