Menu
CoddyTech

Остатки

Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 35 из 64.

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

Пять работ по стрижке газона обозначены точками: время в минутах в зависимости от площади газона; через них проходит оранжевая линия тренда, а большая зелёная звезда на линии показывает прогноз: 50 минут для нового газона площадью 10

Насколько хороша прямая? Служба по уходу за газонами оценивает время на каждый заказ по формуле 4.5 * area + 5 минут. Каждый красный промежуток — это остаток: фактическое значение минус предсказанное.

Пять заказов на уход за газонами и предполагаемая прямая; от каждой точки до прямой проведён красный вертикальный отрезок с подписью +6, -5, +3.5, -7 и +3.5

Возведите их в квадрат и сложите, чтобы оценить прямую:

area = np.array([4, 6, 9, 12, 15])
minutes = np.array([29, 27, 49, 52, 76])
residuals = minutes - (4.5 * area + 5)
print(residuals)
print((residuals ** 2).sum())

Это выводит:

[ 6.  -5.   3.5 -7.   3.5]
134.5

Квадраты не дают +6 и -6 сократиться. Чем меньше эта сумма квадратов остатков, тем лучше прямая. Модель обучается, уменьшая её.

challenge icon

Задание

Средне

Компания по переездам оценивает, сколько времени занимает переезд, исходя из количества коробок. boxes и hours содержат данные о восьми прошлых переездах, а программа считывает две предполагаемые прямые: slope1, intercept1, затем slope2, intercept2.

  1. Оцените каждую прямую по сумме квадратов остатков.
  2. Выведите обе суммы, округлив их до 2 десятичных знаков, и лучшую прямую, как показано ниже.

Для прямых 0.16 * boxes + 0.8 и 0.12 * boxes + 2.5:

Line 1 SSR: 0.57
Line 2 SSR: 4.1
Better: line 1

Попробуйте сами

import numpy as np

boxes = np.array([10, 18, 25, 32, 40, 47, 55, 60])
hours = np.array([2.5, 3.5, 5.0, 5.5, 7.0, 8.0, 9.5, 10.0])
slope1 = float(input())
intercept1 = float(input())
slope2 = float(input())
intercept2 = float(input())

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Статистика для машинного обучения

Потренируйтесь самостоятельно: Онлайн-компилятор Python