投稿

1月, 2018の投稿を表示しています

Python でベイズ統計入門

イメージ
ベイズな理論を勉強したいというと、まず PRML 読めって巷でよく見るんですが、 みんなあれ理解できるんですかね...? ああ、そんな感じねってふわっとはわかった気になるんですが、 実際にコードに落とし込んでサービス開発!とまでは理解が及ばないんですよね私。 コードに落とし込めない時点で、「それ理解してないじゃん」ってことだとは思いますが。 具体的にベイズな理論をどうやって実装できるのかパッとよくわからないので、 いかにもカンタンそうなものが巷にないかを探しました。 個人的に重要なのはふわっと例え話でベイズを語るものよりは、 実際にプログラムに落とし込んだものを探しました。 .... そしたらありましたよ、まさに私が求めていたものが。 「Think Bayes ――プログラマのためのベイズ統計入門」 これ超絶わかりやすいです。 ざっと英語版のフリーで公開されているやつを読んでみて、 これでも分かるんですが英語は読むのしんどい、、、 http://www.greenteapress.com/thinkbayes/thinkbayes.pdf と思ったら、日本語版翻訳版が既にオライリーさんから出てました。 以下のリポジトリに書籍で扱ってるコードが全部掲載されているんですが、  https://github.com/AllenDowney/ThinkBayes2 Python3 対応されていて、Jupyter Notebook でインタラクティブに実行できるので、 パッと実装を見てざっくり理解できちゃいます。 pymc とかその他便利ライブラリがありますが、 それらは使わずに pure な python で記述されているので、 事前知識も必要ないし、中身がわかるので良いコンテンツになっていると思います。 内容も地に足の着いたというか、具体例ベースで進むのですっげー腑に落ちます。 具体例を理解しておくと、あら不思議、PRML も「ああ、こういうことだったのか」と 理解度が一段あがることもあります。 ベースにあるメンタルモデルとして、ベイズ的な手法を厳密に適用すると数学的に解くことができない。 多くの場合、数学的に解ける問題に落とし込むための近似を行う。 どの部分をモデルに組み込んで、どの部分を取り