Графики остатков
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 14 из 58.
Хорошая оценка может скрывать неверную форму. Эта линия показывает R-квадрат 0.82 на графике подъёма теста, но ошибки образуют дугу:
Правый график — это график остатков: каждый остаток — фактическое значение минус предсказанное — в зависимости от предсказанного значения, с линией на уровне 0:
residuals = y_test - pred
fig, ax = plt.subplots()
ax.scatter(pred, residuals)
ax.axhline(0, color="gray", linestyle="--")
plt.show()Остатки хорошей модели разбросаны вокруг 0, как шум. Наличие закономерности означает, что модель что-то упускает: в данном случае — замедление роста.
Если признаков несколько, постройте график остатков также для каждого признака: тот, график которого изгибается дугой, скрывает кривую.
Задание
СреднеАвтошкола построила линейную модель по 80 тестам на торможение: speed_kmh и braking_m. В стартовом коде прогнозы тестов хранятся в pred, а диаграмма подписана.
- Вычисли остатки.
- Построй их точечную диаграмму относительно прогнозов поверх серой пунктирной линии на уровне 0, затем покажи диаграмму.
Не пропускает ли линия кривую? Слева она даже предсказывает отрицательный тормозной путь.
График хорошей линейной модели на других данных выглядит так:
Coddy опишет твою диаграмму.
Попробуйте сами
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
brakes = pd.read_csv("braking.csv")
X_train, X_test, y_train, y_test = train_test_split(brakes[["speed_kmh"]], brakes["braking_m"], test_size=0.25, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
fig, ax = plt.subplots()
ax.set_title("Braking Line Check")
ax.set_xlabel("Predicted braking distance (m)")
ax.set_ylabel("Residual (m)")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск модели3Линейная регрессия
Предсказание чиселНесколько признаковОценка ошибокГрафики остатковПовторение: прокат велосипедовПотренируйтесь самостоятельно: Онлайн-компилятор Python