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
Instrukcje do ćwiczenia
- Użyj
np.abs(), aby obliczyć reszty jako różnicey_data - y_model. - Znajdź wartości
.min()i.max()zmiennejx, dla którychresidualssą mniejsze niżtolerance = 100metrów. - Użyj
np.min()inp.max(), aby wyświetlić zakres (najmniejszą i największą) wartościx_good. - Użyj predefiniowanej funkcji
plot_data_model_tolerance(), aby porównać dane, model i zakres wartościx_good, dla których warunekresiduals < tolerancejest 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)