Menu
CoddyTech

Предсказания с помощью линии

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

Аппроксимирующая прямая — это небольшая машина для предсказаний: подставьте новое значение x и получите значение y. Щенка взвешивали с 8-й по 20-ю неделю:

weeks = np.array([8, 10, 12, 14, 16, 18, 20])
kg = np.array([3.1, 4.0, 5.2, 6.1, 7.0, 8.2, 9.1])
slope, intercept = np.polyfit(weeks, kg, 1)
new_weeks = np.array([15, 52])
print(np.round(slope * new_weeks + intercept, 1))

Это выводит [ 6.6 25.2]. Неделя 15 находится в пределах данных. Недели 52 в них нет, и линия продолжает подниматься ещё долго после того, как собака перестаёт расти:

Семь взвешиваний с 8-й по 20-ю неделю на аппроксимирующей прямой. Линия продолжается пунктиром в затенённую область с пометкой «за пределами данных», достигая 25.2 кг на 52-й неделе, тогда как пунктирная кривая реальной собаки выравнивается около 13 кг

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

week = 52
print(week >= weeks.min() and week <= weeks.max())

Это выводит False.

challenge icon

Задание

Средне

Свечу измеряли каждый час по мере её сгорания, с 0-го по 6-й час: hours и height в см. Программа считывает new_hours.

  1. Подберите прямую, которая предсказывает height по hours.
  2. Выведите прогноз для new_hours, округлённый до 2 знаков после запятой.
  3. Выведите, находится ли new_hours в пределах значений часов в данных, включая обе границы.

Для ввода 4.5:

Predicted height: 13.07 cm
Inside the data: yes

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

import numpy as np

hours = np.array([0, 1, 2, 3, 4, 5, 6])
height = np.array([20.0, 18.4, 17.1, 15.3, 13.9, 12.2, 10.8])
new_hours = float(input())

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

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

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

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