Menu
CoddyTech

Varianz und Standardabweichung

Teil des Abschnitts Statistik für ML der Machine Learning-Journey von Coddy. Lektion 3 von 64.

.std() ist der typische Abstand vom Mittelwert. Hier wird er von Hand berechnet, für fünf Espresso-Bezüge:

Fünf Espresso-Bezüge als Punkte um eine orangefarbene Mittelwertlinie bei 26 Sekunden. Ein grauer Strich verbindet jeden Punkt mit der Linie und ist mit seiner Abweichung beschriftet: -2, +1, -1, +4 und -2

Jede Abweichung vom Mittelwert ist eine Abweichung. Sie heben sich zu 0 auf, also quadriere sie und bilde dann den Durchschnitt: die Varianz.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

Dies gibt Folgendes aus:

[-2.  1. -1.  4. -2.]
5.2 2.28

Ihre Quadratwurzel, die Standardabweichung, macht aus quadrierten Sekunden wieder Sekunden: 2.28. np.var(a) und np.std(a) erledigen dies jeweils mit einem einzigen Aufruf.

Ein Merkmal mit einer Standardabweichung von 0 ändert sich nie und sagt einem Modell daher nichts.

challenge icon

Aufgabe

Einfach

Die Qualitätskontrolle prüft, wie gleichmäßig eine Maschine Saftflaschen befüllt. Das Starterprogramm liest sechs Volumina in ml ein und gibt aus, was spread_by_hand(a) zurückgibt, neben np.std. Vervollständige diese Funktion, sodass sie Folgendes zurückgibt:

  1. die Varianz: den Mittelwert der quadrierten Abweichungen vom Mittelwert von a,
  2. die Standardabweichung, ihre Quadratwurzel.

Für die Volumina 1004, 996, 1011, 993, 1002 und 998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

Probier es selbst

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# Gibt die Varianz und die Standardabweichung des Arrays a zurück
def spread_by_hand(a):
    # Schreibe hier deinen Code und gib dann die beiden Werte anstelle von 0, 0 zurück
    return 0, 0


# Ändere die folgenden Zeilen nicht
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Statistik für ML

Übe selbstständig: Online-Python-Compiler