Zacznij terazZacznij za darmo

Ekstrapolacja: wyjście poza granice danych

W tym ćwiczeniu przyjrzymy się pułapkom ekstrapolacji. Na ilustracji widać profil szlaku turystycznego na górze. Fragment trasy zaznaczony na czarno wygląda liniowo i posłużył do zbudowania modelu. Jednak linia najlepszego dopasowania, zaznaczona na czerwono, nie opisuje dobrze danych spoza pierwotnej „dziedziny" – tam, gdzie wkracza w nowe dane oznaczone kolorem niebieskim.

Jeśli chcemy używać modelu do przewidywania wysokości i zachować dokładność mieszczącą się w pewnej tolerancji, jakie są najmniejsza i największa wartości zmiennej niezależnej x, dla których możemy zastosować ten model?

Skorzystaj z wczytanych wcześniej danych: x_data, y_data, y_model oraz funkcji plot_data_model_tolerance(), aby uzupełnić rozwiązanie.

To ćwiczenie jest częścią kursu

Wprowadzenie do modelowania liniowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj np.abs(), aby obliczyć reszty jako różnice y_data - y_model.
  • Znajdź wartości .min() i .max() zmiennej x, dla których residuals są mniejsze niż tolerance = 100 metrów.
  • Użyj np.min() i np.max(), aby wyświetlić zakres (najmniejszą i największą) wartości x_good.
  • Użyj predefiniowanej funkcji plot_data_model_tolerance(), aby porównać dane, model i zakres wartości x_good, dla których warunek residuals < tolerance jest spełniony (True).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod