Zacznij terazZacznij za darmo

Metoda najmniejszych kwadratów z `numpy`

Poniższe wzory są wynikiem rachunku różniczkowego omówionego we wprowadzeniu. W tym ćwiczeniu przyjmiemy, że obliczenia są poprawne, i zaimplementujemy te wzory w kodzie przy użyciu numpy.

$$ a_{1} = \frac{ covariance(x, y) }{ variance(x) } $$ $$ a_{0} = mean(y) - a_{1} mean(x) $$

To ćwiczenie jest częścią kursu

Wprowadzenie do modelowania liniowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz średnie i odchylenia dla dwóch zmiennych x, y z wczytanych danych.
  • Użyj np.sum(), aby uzupełnić wzory metody najmniejszych kwadratów, i wyznacz optymalne wartości a0 oraz a1.
  • Użyj funkcji model(), aby zbudować wartości modelu y_model na podstawie optymalnego nachylenia a1 i wyrazu wolnego a0.
  • Użyj predefiniowanej funkcji compute_rss_and_plot_fit(), aby wizualnie potwierdzić, że ten optymalny model dopasowuje się do danych.

Interaktywne ćwiczenie praktyczne

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

# prepare the means and deviations of the two variables
x_mean = np.____(x)
y_mean = np.____(y)
x_dev = x - ____
y_dev = y - ____

# Complete least-squares formulae to find the optimal a0, a1
a1 = np.sum(____ * ____) / np.sum( np.square(____) )
a0 = ____ - (a1 * ____)

# Use the those optimal model parameters a0, a1 to build a model
y_model = model(x, ____, ____)

# plot to verify that the resulting y_model best fits the data y
fig, rss = compute_rss_and_plot_fit(a0, a1)
Edytuj i uruchom kod