НачатьНачать бесплатно

Экстраполяция: за пределами данных

В этом упражнении мы рассмотрим риски экстраполяции. На рисунке показан профиль горного маршрута. Участок тропы, выделенный чёрным, выглядит линейным — на его основе была построена модель. Однако линия наилучшего соответствия, показанная красным, плохо описывает данные за пределами исходной «области определения»: при выходе на новые данные, отмеченные синим, точность заметно снижается.

Если мы хотим использовать модель для предсказания высоты и при этом оставаться в допустимых пределах погрешности, каковы наименьшее и наибольшее значения независимой переменной x, при которых модель ещё применима?

Для решения задачи используйте предварительно загруженные переменные x_data, y_data, y_model и функцию plot_data_model_tolerance().

Это упражнение является частью курса

Введение в линейное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • С помощью np.abs() вычислите остатки как разности y_data - y_model.
  • Найдите значения .min() и .max() переменной x, при которых residuals меньше tolerance = 100 метров.
  • Используйте np.min() и np.max(), чтобы вывести диапазон (наибольшее и наименьшее) значений x_good.
  • Используйте предопределённую функцию plot_data_model_tolerance(), чтобы сравнить данные, модель и диапазон значений x_good, для которых residuals < tolerance равно True.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Compute the residuals, "data - model", and determine where [residuals < tolerance]
residuals = np.abs(____ - ____)
tolerance = 100
x_good = x_data[____ < ____]

# Find the min and max of the "good" values, and plot y_data, y_model, and the tolerance range
print('Minimum good x value = {}'.format(np.____(____)))
print('Maximum good x value = {}'.format(np.____(____)))
fig = plot_data_model_tolerance(x_data, y_data, y_model, tolerance)
Редактировать и запускать код