LoslegenKostenlos loslegen

Wie ist es optimal?

Die Funktion np.polyfit(), mit der du deine Regressionsparameter bestimmt hast, findet die optimale Steigung und den Achsenabschnitt. Sie minimiert die Summe der quadrierten Residuen, auch RSS (für residual sum of squares) genannt. In dieser Übung zeichnest du die zu optimierende Funktion, also die RSS, gegen den Steigungsparameter a. Fixiere dafür den Achsenabschnitt auf den in der Optimierung gefundenen Wert. Zeichne dann die RSS gegen die Steigung. Wo ist sie minimal?

Diese Übung ist Teil des Kurses

Statistical Thinking in Python (Teil 2)

Kurs anzeigen

Anleitung zur Übung

  • Lege die Werte der Steigung fest, für die die RSS berechnet werden soll. Verwende np.linspace(), um 200 Punkte im Bereich zwischen 0 und 0.1 zu erhalten. Um zum Beispiel 100 Punkte im Bereich zwischen 0 und 0.5 zu erzeugen, könntest du np.linspace() so verwenden: np.linspace(0, 0.5, 100).
  • Initialisiere ein Array rss, das die RSS aufnimmt, mit np.empty_like() und dem oben erzeugten Array. Die Funktion empty_like() gibt ein neues Array mit derselben Form und demselben Typ wie ein gegebenes Array zurück (hier a_vals).
  • Schreibe eine for-Schleife, um die Summe der RSS für die Steigung zu berechnen. Hinweis: Die RSS ist gegeben durch np.sum((y_data - a * x_data - b)**2). Die Variable b, die du in der letzten Übung berechnet hast, befindet sich bereits in deinem Namespace. Hier ist fertility das y_data und illiteracy das x_data.
  • Zeichne die RSS (rss) gegen die Steigung (a_vals).
  • Klicke auf Antwort senden, um den Plot zu sehen!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen