Menu
CoddyTech

Erwartungswert

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

Eine Tombola: 70 % der Lose gewinnen nichts, 25 % gewinnen 5 Dollar, 5 % gewinnen 20. Wie viel ist ein Los wert?

Drei Balken für die Tombolapreise 0, 5 und 20 Dollar mit den Wahrscheinlichkeiten 0.7, 0.25 und 0.05. Die Balken stehen auf einem Balken wie bei einer Wippe, die auf einem Dreieck bei 2.25, dem Erwartungswert, ausbalanciert ist

Gewichte jeden Gewinn mit seiner Wahrscheinlichkeit und addiere: der Erwartungswert, der Gleichgewichtspunkt des Diagramms:

prizes = np.array([0, 5, 20])
chances = np.array([0.7, 0.25, 0.05])
print((prizes * chances).sum())

Das gibt 2.25 aus, den langfristigen Durchschnitt, obwohl kein Los diesen Betrag auszahlt. rng.choice mit p= zieht Lose entsprechend diesen Wahrscheinlichkeiten:

rng = np.random.default_rng(1)
tickets = rng.choice(prizes, size=10000, p=chances)
print(tickets.mean())

Dies gibt 2.298 aus. Bei 3 Dollar verliert ein Käufer 0,75 pro Ticket. Auch der durchschnittliche Fehler eines Modells bei neuen Daten ist ein Erwartungswert.

challenge icon

Aufgabe

Mittel

Ein Jahrmarkt-Rad zahlt die in prizes angegebenen Token aus, wobei jede Zone ihre eigene Wahrscheinlichkeit in chances hat. Das Startprogramm hat das Rad 4000-mal gedreht und die Ergebnisse in spins gespeichert; das Programm liest den Preis für eine Drehung ein.

  1. Gib den erwarteten Gewinn und anschließend den simulierten Durchschnitt aus, jeweils mit 2 Nachkommastellen.
  2. Gib aus, ob ein Spieler auf lange Sicht pro Drehung gewinnt oder verliert, und wie viel.

Für ein anderes Rad und einen Preis von 1.5:

Expected prize: 1.1 tokens
Simulated average: 1.08 tokens
A player loses 0.4 tokens a spin

Probier es selbst

import numpy as np

price = float(input())

# Der Gewinn jedes Feldes des Glücksrads in Tokens und seine Gewinnchance
prizes = np.array([0, 1, 4, 10])
chances = np.array([0.5, 0.3, 0.15, 0.05])

# Ändere die folgenden Zeilen nicht: 4000 simulierte Drehungen
rng = np.random.default_rng(9)
spins = rng.choice(prizes, size=4000, p=chances)

# 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