Pythonの練習ということで,Numpyを使って混合ガウス分布のEMアルゴリズムによる最尤推定を実装してみた.そもそもPythonを書いた経験があまり無いうえに,全く知らないNumpyを使って行列演算や確率計算をしようということで,手探りでかなり苦戦してしまったが,何とか形にはなったと思う.ということで,次の勉強に活かすためにもここでコードを振り返ってみる. 注意:以下のコードはテストデータでしか確かめてないので多分どこかバグってる.あと確率値に対数を取ってないので,値が限りなく小さくなってゼロ除算になることがある. とっかかり まずscipyあたりで多変量正規分布が無いか探す 普通の正規分布scipy.stats.normはあるが多変量は無いっぽい 自分で関数を書く 逆行列とか転置とか書き方が複数あって混乱する 今回はとりあえず動いたらいいので適当に使う np.matrixとnp.ar