Pymc3を使用して6面のダイスロールをシミュレートするにはどうすればよいですか?また、サイコロの異なる面に異なる分布があることは、私は何を知っていますか?Pymc3を使ってバイアスされた6面ダイスをシミュレートするには?
2
A
答えて
0
ランダムモジュールを使用して疑似乱数を生成することができます。以下は私の実例です。
import random
def roll_dice(num_sides=6):
return random.randint(0,num_sides-1) + 1
if __name__ == '__main__':
result = roll_dice(num_sides=2)
print(result)
6
PyMC3
に公正6面ダイスの1000本のロールをシミュレートする最も簡単な方法は、ちょうどnp.random.randint(1, 7, size=1000)
を呼び出すために、
import pymc3 as pm
with pm.Model():
rolls = pm.DiscreteUniform('rolls', lower=1, upper=6)
trace = pm.sample(1000)
trace['rolls'] # shows you the result of 1000 rolls
これが遅くなることに注意してください、しかし等価です。 np.random.multinomial(1000, pval=probs)
より、再び同等の、しかし遅い不公平ダイ
probs = np.array([0.1, 0.2, 0.3, 0.2, 0.1, 0.1])
with pm.Model():
rolls = pm.Multinomial('rolls', n=1000, p=probs, shape=6)
trace = pm.sample(1)
1000のロール用
。
あなたはがPyMC3
を使用することになるでsitutationは、あなたが観察した場合、たとえば、ある不公平ダイの50のロール、それは公正ダイであることをいくつか前期待を持っている、との後方を評価したいですその期待。ここではその一例です:
observations = np.array([20, 6, 6, 6, 6, 6])
with pm.Model():
probs = pm.Dirichlet('probs', a=np.ones(6)) # flat prior
rolls = pm.Multinomial('rolls', n=50, p=probs, observed=observations)
trace = pm.sample(1000)
trace['probs'] # posterior samples of how fair the die are
あなたは組み込みのtraceplot
サンプルがどのように見えるか確認するために使用することができます。私たちは正しく側面の一つが起動することをうまく
注意を他のものよりも頻繁に!
+0
完璧!再度、感謝します。 –
関連する問題
- 1. Rを使って偏った6面のダイスをシミュレートする
- 2. 2DバイアスされたランダムウォークをシミュレートするR
- 3. 3面ダイスの隠れマルコフモデル
- 4. Javaでバイアスされたロック
- 5. バイアスされたデータセットを使用したトレーニング意思決定ツリー
- 6. PyMC3 PKモデリング。モデルはデータセットを作成するために使用されるパラメータに解決されません
- 7. intern/leadfootを使ってモバイルデバイスをシミュレートするには
- 8. WireMockを使ってクラスをシミュレートするには?
- 9. 2d水面をシミュレートする方法は?
- 10. Androidシステムによって殺されたサービスをシミュレートする方法
- 11. pymc3はpymc3のパラメータ
- 12. PyMC3:pymc3.traceplot()を使用してトレースプロットの手段をオーバーラップする方法
- 13. pymc3で観測された確定性
- 14. bashスクリプトのバイアスされた動作
- 15. バイアスされた乱数ジェネレータ - Java
- 16. ダイスは、現在、私は、ダイス(サイコロは、剛体である箱コライダーを持っている)ローリングを作っていますユニティ
- 17. PHPとcURLを使ってPOSTをシミュレート
- 18. Locustを使ってランプアップをシミュレートする方法は?
- 19. 6面ダイス1枚で、特定の数字に達する可能性のある方法を計算してください
- 20. pymc3の入れ子になったロジットモデルの適切な指定
- 21. element.click()を使ってボタンをシミュレートするJavaScriptをクリックしてください
- 22. vC++ 6でmfcを使ってチェックしたメニュー項目をマークするには?
- 23. C#6補間された文字列を使って2倍にフォーマットする方法は?
- 24. フォーカスされたウィンドウを前面に持っていく
- 25. PyGameを使って画面にテキストを表示するには?
- 26. jpaとejbを使ってdbをシミュレートする方法3
- 27. cを使ってmysql compress関数をシミュレートする#
- 28. SimPyを使ってChord分散システムをシミュレートする
- 29. ローカルJSONアセットを使ってScala.jsのAPIをシミュレートする方法
- 30. Nodejを使ってユーザーをシミュレートする方法
私にはあまり偏っていないようですが、OPは特に 'pymc3'を使って解決策を求めました –