Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pythonでベイズモデリング

 Pythonでベイズモデリング

ベイズモデリング、MCMCとくればR+Stanがデファクトですが、Pythonでも高速に回せるやりかたがあります

Avatar for Soogie

Soogie

May 21, 2026

More Decks by Soogie

Other Decks in Technology

Transcript

  1. ところで、PyCon JP 2026 ですよ  参加者募集中  3000円安いEarly Birdは先着200名まで(or 6/14まで)

     トークプロポーザル募集中 5/31 AoE (日本時間だと6/1 20:59まで)  登壇してみませんか?  遠方支援制度あります 近日公開  初参加、若者、発表者のうち、遠い人を優先的に支援  今年も広島開催なので首都圏だって十分遠い  主催メンバー、スポンサーも募集中
  2. ベイズモデリングとMCMC  Scikit-Learnのpredict()は1つの推定値を返してくれます  ベイズモデリングでは、1つの値ではなく、「たぶんこの辺」という確率分布で推定  「ここからここの間である確率が•%」みたいな解釈ができる  推定するときの手法のひとつがMCMC 

    マルコフ連鎖モンテカルロ法  細かいことを省くと、確率分布の形がややこしくて解析的に解けないから、 大量に「ガチャ」を引いて正解っぽい確率分布を探し当てる、力業の手法
  3. MCMCのデファクトスタンダードは R+Stanの組み合わせ  確率的プログラミング言語Stanでモデルを記述して、コンパイルした オブジェクトをRから呼び出す  言語を2つ覚えるのめんどくさい  コンパイル、オブジェクトとのデータのやりとりのオーバーロード 

    昔から比べると速くなったけど、計算量が多いのでやっぱり遅いし重い  Pythonでもできるけど  cmdstanpyパッケージ →StanをPythonから使える(開発中止)  PyMCパッケージ →Pythonで完結するけどV3までは遅くて重かった  NumPyroパッケージ →高速だけど乱数の扱いや関数の書き方がクセツヨ
  4. PyMC(V4以降)で潮目が変わった かも PyMCか cmdstanpy経由でStan Pythonの文法で完結する PyMCが好まれる傾向 (ただしStanより遅い) 以前 JAXで高速なNumPyroの 登場

    乱数の扱いが面倒だったり 関数型プログラミングで 窮屈 ちょっと 前 PyMC(V4以降) サンプリングのバックエン ドにNumPyroを指定可能に なった (書きやすい&高速) 最近 今日は ココ
  5. まとめ  Pythonに慣れてる人ならPyMC+NumPyroはおすすめ  NumPyro単体利用よりハードルが低い  Geminiに頼めばR+Stanからスクリプトを書いてくれるので移行も楽 R+Stan Python(PyMC+NumPyro) •

    安心と実績 • 書籍など日本語情報が豊富 • 他人が書いたStanの添削が趣味の先生がいる • 生成AIに聞けば書いてもらえる • Pythonで完結する利便性 • Stan同様の簡潔なモデル記述 • GPUが使えると超高速 (使えなくてもStan並み) • 生成AIによってはまだ知らない (Geminiは知ってた。改善するはず)
  6. そうそう、PyCon JP 2026 ですよ  参加者募集中  3000円安いEarly Birdは先着200名まで(or 6/14まで)

     トークプロポーザル募集中 5/31 AoE (日本時間だと6/1 20:59まで)  登壇してみませんか?  遠方支援制度あります 近日公開  初参加、若者、発表者のうち、遠い人を優先的に支援  今年も広島開催なので首都圏だって十分遠い  主催メンバー、スポンサーも募集中