Proč je to optimální?
Funkce np.polyfit(), kterou jsi použil/a k získání parametrů regrese, hledá optimální sklon a průsečík. Optimalizuje součet čtverců reziduí, známý jako RSS (residual sum of squares). V tomto cvičení vykreslíš funkci, která se optimalizuje – tedy RSS – v závislosti na parametru sklonu a. Průsečík zafixuj na hodnotu, kterou jsi našel/našla při optimalizaci, a pak vykresli RSS v závislosti na sklonu. Kde je RSS minimální?
Toto cvičení je součástí kurzu
Statistical Thinking in Python (Part 2)
Pokyny k cvičení
- Urči hodnoty sklonu pro výpočet RSS. Pomocí
np.linspace()získej200bodů v rozsahu mezi0a0.1. Například pro100bodů v rozsahu mezi0a0.5by volání vypadalo takto:np.linspace(0, 0.5, 100). - Inicializuj pole
rsspro ukládání hodnot RSS pomocínp.empty_like()a pole, které jsi vytvořil/a výše. Funkceempty_like()vrátí nové pole se stejným tvarem a typem jako zadané pole (v tomto případěa_vals). - Napiš cyklus
forpro výpočet RSS v závislosti na sklonu. Hint: RSS je dáno výrazemnp.sum((y_data - a * x_data - b)**2). Proměnnábvypočítaná v předchozím cvičení je už dostupná v tvém prostoru jmen. Zde jefertilityhodnotouy_dataailliteracyhodnotoux_data. - Vykresli RSS (
rss) v závislosti na sklonu (a_vals). - Klikni na Submit a prohlédni si výsledný graf!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()