オモンパカリスト

深層学習、計算論的神経科学に興味あります

単純ベイズ(Naive Bayes)をpython/numpyの実装

ことのいきさつ。
確率モデルのサーベイはそろそろ飽きてきて切り上げて、
IBMのDyBMやConditonal RBMを実装できるようになりたいなーと思ってて、
Theanoで実装していくことにしたんだけど、

そもそもNumpyすらまともに書けなかった。

というわけで、Pythonの実装力をつけるために、とにかく手を動かすことからはじめた。

まずはNumpyの書き方を勉強。

本題

つくったやつ
github.com

いざPython機械学習アルゴリズムを実装しようとしても、
基礎知識や慣習がないに等しかった。
そこでまずは行列演算ライブラリNumpyの配列操作を理解するために、
以下のサイトを参考にした。

機械学習の Python との出会い — 機械学習の Python との出会い

丁寧に「単純ベイズ(Naive Bayes)」の実装を例にNumpyの勉強になった。

単純ベイズというアルゴリズムは最近知ったばかりで、
メールの迷惑メール振り分けなど、クラス分類に使われるものらしい。
ベイズの定理を使って分類器を実装していて、
理論も実装も「単純」にはいかなかった(弱音)

ブロードキャスト機能、かなり重要だな〜。