Menu
CoddyTech

Das Gesetz der großen Zahlen

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

Bei 10 Münzwürfen sind 8-mal Kopf keine Überraschung. Wirf weiter, und der Kopfanteil nähert sich langsam 0,5:

Ein Liniendiagramm des Kopfanteils bei 300 Münzwürfen: Bei den ersten Würfen schwankt er zwischen 0,3 und 1 und nähert sich dann einer rot gestrichelten Linie bei der Wahrscheinlichkeit 0,5 an

Jeder Punkt benötigt den bisherigen Anteil. np.cumsum liefert die laufende Summe; teile sie durch die bisherige Anzahl der Würfe:

heads = np.array([True, False, True, True])
print(np.cumsum(heads))
print(np.round(np.cumsum(heads) / np.arange(1, 5), 2))

Dies gibt aus:

[1 1 2 3]
[1.   0.5  0.67 0.75]

ax.axhline(y) zeichnet die Referenzlinie quer über das Diagramm:

ax.plot(np.arange(1, 301), share)
ax.axhline(0.5, color="red", linestyle="--")

Das ist das Gesetz der großen Zahlen: mehr Versuche, näher an der Wahrscheinlichkeit. Ein Modell, das bei 20 Stichproben gut abschneidet, könnte Glück haben; bei 2000 kaum.

challenge icon

Aufgabe

Mittel

Eine Müslimarke versteckt in 20 % der Packungen ein Spielzeug. Das Programm liest ein, wie viele geöffnet werden; der Starter-Code füllt toys (True für ein Spielzeug) und beschriftet das Diagramm.

  1. Berechne den laufenden Anteil der Spielzeuge.
  2. Gib ihn nach 10 Packungen und nach allen Packungen mit 3 Dezimalstellen aus.
  3. Stelle ihn gegen die Packungsnummern ab 1 dar, füge bei 0.2 eine schwarze gepunktete Linie (":") hinzu und zeige das Diagramm an.

Für 80 weitere Packungen:

After 10 boxes: 0.1
After 80 boxes: 0.212

und zeichnet dieses Diagramm. Dann beschreibt Coddy deines.

Ein Diagramm mit dem Titel Toys in Cereal Boxes: Der laufende Anteil über 80 Packungen bleibt bei 0 für 8 Packungen, schwankt dann und pendelt sich schließlich nahe einer schwarzen gepunkteten Linie bei 0.2 ein

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt

boxes = int(input())

# Ändere die folgenden Zeilen nicht
rng = np.random.default_rng(25)
toys = rng.random(boxes) < 0.2

fig, ax = plt.subplots()
ax.set_title("Toys in Cereal Boxes")
ax.set_xlabel("Boxes opened")
ax.set_ylabel("Share with a toy")

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