ÎncepețiÎncepe gratuit

De ce este optimal?

Funcția np.polyfit(), pe care ai folosit-o pentru a obține parametrii regresiei, identifică panta și interceptul optime. Aceasta minimizează suma pătratelor reziduurilor, cunoscută și sub numele de RSS (residual sum of squares). În acest exercițiu, vei reprezenta grafic funcția care este optimizată – RSS – în funcție de parametrul pantei a. Pentru aceasta, fixează interceptul la valoarea găsită în urma optimizării, apoi trasează graficul RSS în funcție de pantă. Unde este minimul?

Acest exercițiu face parte din cursul

Gândire statistică în Python (Partea 2)

Vezi cursul

Instrucțiuni pentru exercițiu

  • Specifică valorile pantei pentru care se calculează RSS. Folosește np.linspace() pentru a genera 200 de puncte în intervalul dintre 0 și 0.1. De exemplu, pentru a genera 100 de puncte în intervalul dintre 0 și 0.5, poți folosi np.linspace() astfel: np.linspace(0, 0.5, 100).
  • Inițializează un vector, rss, care va conține valorile RSS, folosind np.empty_like() și vectorul creat mai sus. Funcția empty_like() returnează un vector nou cu aceeași formă și același tip ca vectorul dat (în acest caz, a_vals).
  • Scrie o buclă for pentru a calcula RSS în funcție de pantă. Indiciu: RSS este dat de np.sum((y_data - a * x_data - b)**2). Variabila b calculată în exercițiul anterior este deja disponibilă în spațiul tău de lucru. Aici, fertility reprezintă y_data, iar illiteracy reprezintă x_data.
  • Trasează graficul RSS (rss) în funcție de pantă (a_vals).
  • Apasă Trimite răspunsul pentru a vedea graficul!

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
Editează și rulează codul