期待値
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 16/64。
抽選:チケットの70%は何も当たらず、25%は5ドル、5%は20ドルが当たります。1枚の価値はいくらでしょうか?
各賞品に当たる確率を掛けて合計します。これは期待値、つまりグラフの重心です。
prizes = np.array([0, 5, 20])
chances = np.array([0.7, 0.25, 0.05])
print((prizes * chances).sum())これは、どのチケットでもその金額が支払われるわけではありませんが、長期平均の 2.25 を出力します。p= を指定した rng.choice は、その確率に従ってチケットを抽選します。
rng = np.random.default_rng(1)
tickets = rng.choice(prizes, size=10000, p=chances)
print(tickets.mean())これは2.298を出力します。3ドルの場合、購入者はチケット1枚につき0.75ドル損します。新しいデータに対するモデルの平均誤差も期待値です。
チャレンジ
中級縁日のルーレットでは、各ゾーンの当たる確率を chances に、その賞金のトークン数を prizes に格納しています。スターターコードでは、ルーレットを4000回回した結果を spins に格納しています。プログラムは1回あたりの料金を読み込みます。
- 期待される賞金を出力し、次にシミュレーションで得られた平均を、どちらも小数点以下2桁で出力します。
- 長期的に見て、プレイヤーが1回転あたりに得をするか損をするか、またその額を出力します。
別のルーレットで、料金が 1.5 の場合:
Expected prize: 1.1 tokens
Simulated average: 1.08 tokens
A player loses 0.4 tokens a spin自分で試してみよう
import numpy as np
price = float(input())
# ルーレットの各区画の賞品(トークン数)と、その区画に当たる確率
prizes = np.array([0, 1, 4, 10])
chances = np.array([0.5, 0.3, 0.15, 0.05])
# 以下の行は変更しないでください:4000 回のスピンをシミュレーションします
rng = np.random.default_rng(9)
spins = rng.choice(prizes, size=4000, p=chances)
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ