頻度としての確率
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 13/64。
迷惑メールフィルターには「迷惑メールの確率は90%」、種の袋には「発芽率は80%」と書かれています。確率とは、長期的に見た割合で、0(決してない)から1(必ずある)までの値です。ここに50個の種があります。
rng.random(n)は0から1までの小数を生成し、そのうち80%は0.8未満になります。したがって、1回の比較で1000個の種をまけます。
rng = np.random.default_rng(3)
sprouted = rng.random(1000) < 0.8
print(sprouted.sum())
print(sprouted.mean())これは次のように出力します:
814
0.814真偽値の平均はTrueの割合です。0.814で、0.8に近い値です。この章の終わりまでに、この方法でサイコロ屋台全体の値段を算出します。
チャレンジ
中級ストライカーがある確率でペナルティキックを決めます。プログラムは確率(0 から 1)を読み取り、次にキックの回数を読み取ります。スターターコードでは rng を作成します。
- キックをシミュレートします。
rng.randomの値が確率を下回るたびにゴールとします。 - ゴール数と、3 桁の小数に丸めた推定確率を出力します。
0.5 と 10 回のキックの場合、結果が 0.5 から大きく外れる短い実行例:
Goals: 3 of 10
Estimated chance: 0.3自分で試してみよう
import numpy as np
chance = float(input())
kicks = int(input())
# 下の行を変更しないでください
rng = np.random.default_rng(21)
# 下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ