Jubatusという機械学習フレームワークはフロー型、つまり次々と流れてくるデータを、逐次的に学習と分析できるという特徴があります。コードを書いては試せるJupyter Notebookと相性が良さそうかなということで、ちょっと書いてみます。
Jubatusで戦国武将の名前を学習させ、徳川家か足利家かを予測するサンプルをJupyterで動かしてみましょう。
ちなみに私は下記を参考にMac上にVagrantでCentOS7.2を入れて使っています。
https://qiita.com/RyochanUedasan/items/b1ff13bc39913cb5b561
CentOS7にJupyterをインストール
anacondaを入れれば勝手に入りますが、Macのブラウザ(Chrome)から使えるように、こちらを参考に穴あけをしています。
sudo yum update -y
wget https://repo.continuum.io/archive/Anaconda2-5.0.1-Linux-x86_64.sh
bash ./Anaconda2-5.0.1-Linux-x86_64.sh
mkdir ~/.jupyter
touch ~/.jupyter/jupyter_notebook_config.py
vi ~/.jupyter/jupyter_notebook_config.py
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
VagrantfileでJupyter用のポートをフォワードするよう設定しておくと楽ですね。
config.vm.network "forwarded_port", guest: 8888, host: 8888
CentOS7にJubatusをインストール
ほぼ、こちらの手順でRHEL7と読み替えればうまくいくと思います。
http://jubat.us/ja/quickstart.html
一点、Pythonクライアントのインストールに必要なpipはez_setup.pyからではなく yumで入れたほうが確実です。
sudo yum install python-pip
sudo pip install jubatus
githubからJubatus Exampleをcloneし動作確認
sudo yum install git
git clone https://github.com/jubatus/jubatus-example.git
git cloneが成功したら、shogunを動作確認
shogunをJupyterに移植
こんな感じでコピペすればOK。
予測するところ(元データは「守時」だった箇所)を書き換えてみました。「晋三」は徳川っぽいのか・・・。
予測の関数を改造すれば、よりフロー型の機械学習という特徴を味わえそうですね。