Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Jubatus
Jubash は機械学習エンジンである Jubatus のサーバに接続して、各種の API リクエストをコマンドラインから送信することができるシェル環境です。
プログラムを書かずに Jubatus API の動作を試してみたい、シェルスクリプト/パイプで整形したログデータなどを直接流し込みたい、などのケースで役に立ちます。

昨年末に作って GitHub 上で公開していたのですが、今日突然 Softpedia (の Mac アプリのカテゴリ) に掲載されたらしいので :) このタイミングでご紹介してみます。

Jubash のインストール

Jubash を使用するためには Python 2.7 以降に加え Jubatus Python Client が必要です。pip install jubatus ないし easy_install jubatus などでインストールを行ってください。
Jubash 自体のインストール作業は特に不要です。以下のように
wget "https://raw.github.com/kmaehashi/jubash/master/jubash"
などで取得し、お好きな場所に置いてください。

Jubash の使い方

./jubash
のように起動すると、Jubatus サーバ (デフォルトでは localhost:9199) に接続され、API を叩くための専用の対話型シェル環境が立ち上がります (Jubatus サーバは事前に起動しておく必要があります)。
接続先の Jubatus サーバの種類は自動認識されます。例えば分類器 (jubaclassifier) であれば、
[Jubatus:classifier<>@127.0.0.1:9199] # train male height 170 weight 60
[Jubatus:classifier<>@127.0.0.1:9199] # train male height 185 weight 65
[Jubatus:classifier<>@127.0.0.1:9199] # train female height 150 weight 50
[Jubatus:classifier<>@127.0.0.1:9199] # train female height 155 weight 45
[Jubatus:classifier<>@127.0.0.1:9199] # classify height 140 weight 40
female: 1.0111604929
male: 0.0962741076946
のように利用します (# から行末までがユーザ入力です。ここでは、身長と体重から性別を推定させています)。
使用できるコマンドセットは help コマンドで確認できます。また、Tab 補完も使えます (readline 対応環境のみ)。

シェルスクリプトと組み合わせて Jubatus に学習させる例としては、例えば「パケット数から異常を検知する」というタスクを想定して、ifconfig から秒間パケット数を切り出して Jubatus 異常検知エンジン (jubaanomaly) に投入するサンプル がこちらにあります。なお、Jubash はあくまでカジュアルにお試しするためのツールですので、実践投入する際は各言語版の Jubatus クライアントを利用してプログラムを作成されることをお勧めします。

Comments

Leave Yours...
Name:
E-mail / URL (optional):
Comment:
Are You Robot?: