Začněte nyníZačněte zdarma

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)

Zobrazit kurz

Pokyny k cvičení

  • Urči hodnoty sklonu pro výpočet RSS. Pomocí np.linspace() získej 200 bodů v rozsahu mezi 0 a 0.1. Například pro 100 bodů v rozsahu mezi 0 a 0.5 by volání vypadalo takto: np.linspace(0, 0.5, 100).
  • Inicializuj pole rss pro ukládání hodnot RSS pomocí np.empty_like() a pole, které jsi vytvořil/a výše. Funkce empty_like() vrátí nové pole se stejným tvarem a typem jako zadané pole (v tomto případě a_vals).
  • Napiš cyklus for pro výpočet RSS v závislosti na sklonu. Hint: RSS je dáno výrazem np.sum((y_data - a * x_data - b)**2). Proměnná b vypočítaná v předchozím cvičení je už dostupná v tvém prostoru jmen. Zde je fertility hodnotou y_data a illiteracy hodnotou x_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()
Upravit a spustit kód