Menu
CoddyTech

Könnte es Zufall sein?

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

Fünf Leser einer serifenlosen Schrift waren 6,6 Sekunden schneller als fünf Leser einer Serifenschrift. Wenn die Schrift nichts geändert hätte, könnte jede Zeit zu einer der beiden Gruppen gehören. Mische die Zeiten, um das zu veranschaulichen:

Zehn Lesezeiten als Zellen, fünf für Serifenschriften in Blau und fünf für serifenlose Schriften in Orange. Ein Pfeil mit der Beschriftung rng.permutation(pooled) führt zu denselben zehn Werten in gemischter Reihenfolge, aufgeteilt in eine fiktive Serifenschrift-Gruppe mit einem Mittelwert von 48.4 und eine fiktive serifenlose Schrift-Gruppe mit einem Mittelwert von 49.8: eine zufällig entstandene Differenz von +1.4 Sekunden

rng.permutation(a) gibt eine gemischte Kopie zurück. Wiederhole den Vorgang 1000-mal und behalte jeden künstlichen Unterschied bei:

serif = np.array([52, 47, 58, 50, 55])
sans = np.array([45, 49, 41, 50, 44])
pooled = np.concatenate([serif, sans])
rng = np.random.default_rng(4)
diffs = []
for i in range(1000):
    shuffled = rng.permutation(pooled)
    diffs.append(shuffled[5:].mean() - shuffled[:5].mean())

Ein Histogramm der 1000 gemischten Differenzen von -7.8 bis 7.8 Sekunden, die sich um 0 häufen, mit einer roten Linie für die tatsächliche Differenz -6.6 nahe am linken Rand

Zufällige Abstände häufen sich um 0; der tatsächliche liegt nahe am Rand. Dies ist ein Permutationstest.

Bevor du darauf vertraust, dass ein Modell besser ist als ein anderes, prüfe, ob das Durchmischen selten eine so große Lücke erzeugt.

challenge icon

Aufgabe

Mittel

Die Hunde lernten auf zwei Arten, sich hinzusetzen: clicker und treats enthalten die Trainingseinheiten jedes Hundes. Der Startcode erstellt rng und shuffles.

  1. Berechne die tatsächliche Differenz: Mittelwert von treats minus Mittelwert von clicker.
  2. Fasse zuerst clicker und dann treats zusammen; mische shuffles Mal, teile bei len(clicker) auf und berechne jede simulierte Differenz in derselben Reihenfolge; ziehe keine weiteren Zufallszahlen.
  3. Gib die tatsächliche Differenz, die erste simulierte Differenz sowie den kleinsten und größten Wert mit 2 Dezimalstellen aus.

Für andere Hunde:

Real difference: 3.0
First shuffle: -1.0
Smallest shuffled: -3.33
Largest shuffled: 3.67

Probier es selbst

import numpy as np

# Trainingseinheiten, die jeder Hund brauchte, um "sit" zu lernen
clicker = np.array([9, 12, 8, 11, 10, 7, 13])
treats = np.array([14, 11, 15, 12, 16, 13])
# Ändere die folgenden Zeilen nicht
rng = np.random.default_rng(12)
shuffles = 1000

# Schreibe deinen Code unten
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