いものやま。

雑多な知識の寄せ集め

『Pythonでスラスラわかる ベイズ推論「超」入門』を読んでみた。

Pythonでスラスラわかる ベイズ推論「超」入門』を読んでみたので、軽く感想とか。

概要と感想

ベイズ推論の本はいろいろあるけど、この本は理論というよりツールとして活用することに重きをおいた感じの本。

サンプリングをどう計算するのかとかはライブラリ(PyMC)に任せてしまって本では解説せず、統計モデルの作り方と得られたサンプリングの結果の使い方の解説が中心になってる。 数理最適化でたとえると、単体法とかの解説はしないでPuLP使ったモデリングの解説をしている感じ。

そういうこともあってすごく読みやすかったし、実用としてはこういう本の方が助かるよね。 別に研究者として新しいアルゴリズムを作りたいとかでもないし。

数理最適化もそうだけど、理論とか勉強しても実際に使うときはライブラリ叩くだけで、一番壁になるのはモデルを作る部分なので、その部分がちゃんと解説されてるのはとてもよかった。

とくに興味深かったのは6章で、ABテストでの効果検証、線形回帰での要素の影響度合い、項目反応理論でのテスト評価といった内容が取り上げられていて、こんな感じで使うんだというイメージが持てた。 こういうのをいくつか知っておくと別の分析でも使ったりできそう。

ただまぁ、この本であらためて思ったけど、こういった統計モデルは分析に使うもので、予測に使うには力不足な感じ。 モデルとしては単純な線形モデルにすぎないからねぇ。 それをどう解釈するのかという部分、つまり分析としては、より慎重な解釈を与えてくれるけど、予測の精度が上がるわけではないからなぁ。

あと、実際に使うときにはちょっとジレンマがありそうな感じも。

データが少ない場合は事前分布の重要度が上がるので恣意性がかなり入りそうだし、保証できる範囲も広くなってしまって分析としての意味がどれだけあるのかとなりそう。

一方でデータが多い場合はサンプリングにかかる時間がだいぶ増えてしまって、実用的に使えるか分からないところが。 6.3節では50問のテストを1,000人が受けた結果を分析するタスクがあったけど、たかが50,000程度のデータ、パラメータとしては1,100程度しかないのに、サンプリングで数分が要求されたり。 実際にはもっと次元の多いデータを扱いたいことが多いわけで、オモチャの問題でそんなだとなぁという感じも。

それとこの本では時系列データの扱いがなかったけど、そのあたりも気になるところ。 続編とか出るのかな?

時系列データを同じような感じでモデリングするのを試したことはあって、でもモデルのサイズが大きくなってぜんぜん動かなかったというのがあった。 これについては時系列データ用の分布がいくつか用意されてるのでそれを使うとサンプリングが走るようにはなったんだけど、複雑なモデルを作るのはちょっとキツそうな感じも。 実際の問題で使い物になるんかなぁ。

もくもく読書会

今回本を読むうえで「もくもく読書」という予定を立てて読むというのをやってみた。

これは社内で読書会をやったときに、読書会という場が用意されているとちゃんと最後まで読み進められるという学びがあったから。

あと、connpassをためしに使ってみたかったというのも。

やってみた感想としては、やっぱり予定を立てておくのは効果が大きいと感じた。 実際、予定通りに8回でちゃんと最後まで読み通すことができたし。 計画立てておかないと他のこと優先したりで最後まで読めてなかった可能性高かったと思う。

予定を立てておくと読むペースとかも分かるのがいいところ。 いつ頃までに読み終わるのか分かったり、1回でどれくらいの時間かけて何ページくらい読めばいいのかとかも調整できる。

connpassを使ってみたのはまぁ微妙なところ。 使い方とかは分かったのでとりあえずよかったけど。 あと画像の仕様とか。 資料を貼っておけるのも悪くはなかったかな。

最後に今回の読書でメモったノートブックを貼っておこうと思う。

今日はここまで!