Standardisierung
Teil des Abschnitts Statistik für ML der Machine Learning-Journey von Coddy. Lektion 49 von 64.
Viele Modelle lernen am besten, wenn jedes Merkmal bei 0 zentriert ist und eine Streuung von 1 aufweist. Standardisierung bewirkt genau das: Jeder Wert wird zu seinem z-Wert innerhalb seiner Spalte.
Fünf Kürbisse, Gewicht in kg und Breite in cm:
Broadcasting standardisiert jede Spalte auf einmal:
pumpkins = np.array([[30, 60],
[8, 30],
[22, 55],
[40, 65],
[15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))Dies gibt Folgendes aus:
[0. 0.]
[1. 1.]Runde, bevor du prüfst: Un gerundet kann ein Mittelwert von 0 als 2.22044605e-17 ausgegeben werden – ein winziger Rundungsfehler.
Im Gegensatz zu Min-Max gibt es keinen festen Bereich: Die meisten Werte liegen zwischen -2 und 2.
Aufgabe
MittelEine Milchviehfarm entdeckt ungewöhnliche Kühe. Jede Zeile von cows steht für eine Kuh: Milch (Liter pro Tag), Gewicht (kg) und Alter (Jahre), benannt in features. Das Programm liest die Position einer Kuh k ein.
- Vervollständige
standardize(X). Die Prüfzeilen geben dann[0. 0. 0.]und[1. 1. 1.]aus. - Finde den z-Wert von Kuh
k, der am weitesten von 0 entfernt ist, unabhängig vom Vorzeichen, und gib ihn wie unten mit 2 Dezimalstellen aus.
Für eine Kuh auf einem anderen Bauernhof:
Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herdProbier es selbst
import numpy as np
features = ["milk", "weight", "age"]
# Eine Zeile pro Kuh: Milch in Litern pro Tag, Gewicht in kg, Alter in Jahren
cows = np.array([[28, 610, 6],
[22, 540, 3],
[35, 680, 6],
[31, 590, 9],
[19, 650, 4],
[26, 520, 2],
[30, 600, 7]])
k = int(input())
# Gibt X zurück, wobei jede Spalte standardisiert ist: Mittelwert 0 und Standardabweichung 1
def standardize(X):
# Ersetze die folgende Zeile durch die Standardisierung
return X
# Ändere die folgenden drei Zeilen nicht: Sie überprüfen deine Funktion
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))
# Schreibe deinen Code darunter: Was fällt an Kuh k auf?
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
1Lage und Streuung
Mittelwert und MedianPerzentile und QuartileVarianz und StandardabweichungStichprobe oder Grundgesamtheit?Der häufigste WertRückblick: Lieferzeiten4Stichproben und Grundgesamtheiten
Grundgesamtheit und StichprobeStichprobenmittelwerte variierenDie StichprobenverteilungGrößere Stichproben, weniger ZufallRückblick: Eine Stadt befragen2Verteilungen
DichtehistogrammeDatenverteilungenDie NormalverteilungskurveDie 68-95-99,7-RegelZ-WerteRückblick: Akkulaufzeit3Wahrscheinlichkeit durch Simulation
Wahrscheinlichkeit als HäufigkeitDas Gesetz der großen ZahlenAugensummen beim WürfelnErwartungswertBedingte WahrscheinlichkeitRückblick: Gewinnchancen am Würfelstand6Zusammenhänge
Streudiagramme lesenKorrelationKorrelationsmatrixKorrelations-HeatmapsKorrelation ist keine KausalitätRückblick: Eiscreme und Sonne9Merkmalsskalierung
Warum Merkmale skalierenMin-Max-SkalierungStandardisierungStandardScalerRückblick: KletterpartnerÜbe selbstständig: Online-Python-Compiler