Service¶
ServiceはDatasetに含まれる各レコードを利用して、Jubatusサーバに対してupdateやanalyzeといったRPCコールを行い、結果を取得します。
API¶
Serviceクラスは Jubatus RPC API と同じAPIを提供します。これらのAPIはDatasetを引数に取ります。
機械学習APIに加えて、Serviceクラスは clear
、 save
、 load
および get_status
API を提供します。
プロセス呼び出し¶
ServiceクラスはJubatusサーバプロセスを起動することができます。 jubaclassifier
プロセスをデフォルト設定で起動する例を以下に示します。
from jubakit.classifier import Config, Classifier
# Create a default configuration.
cfg = Config()
# Start the server process.
classifier_service = Classifier.run(cfg)
# ... do some train/classify tasks ...
# Stop the classifier process and return logs.
classifier_service.stop()
サーバプロセスはスタンドアロンモードで起動します。TCPポートは他のプロセスに競合しないように自動的に採番されます。一度Serviceインスタンスがフォーカスから外れたら、サーバプロセスはデストラクタにより停止します。
外部のJubatusサーバで動作させる¶
Jubakitは外部で動作しているJubatusサーバプロセスへもアクセスし、動作させることができます。
from jubakit.classifier import Classifier
# Classifier Service connects to ``127.0.0.1:9199`` using cluster name ``my_cluster``.
classifier_service = Classifier('127.0.0.1', 9199, 'my_cluster')
# ... do some train/classify tasks ...
Embedded Jubatus¶
Jubakitは 「embedded」 版Jubatusをバックエンドとして利用することができます。これによりRPC通信のオーバヘッドを削減することができます。
from jubakit.classifier import Config, Classifier
# Create a default configuration.
cfg = Config()
# Create a new service in "Embedded" mode.
classifier_service = Classifier.run(cfg, embedded=True)
# ... do some train/classify tasks ...
「embedded」 版の機能を利用するためには、embedded_jubatus
([embedded-jubatus-python](https://github.com/jubatus/embedded-jubatus-python))Pythonモジュールをインストールしている必要があります。embedded_jubatusはJubatusの機械学習部分を直接呼び出し可能なモジュールです。
Service一覧¶
Jubakitでは現在、以下のServiceをサポートしています。
- Classifier –
jubakit.classifier.Classifier
- Regression –
jubakit.regression.Regression
- Anomaly –
jubakit.anomaly.Anomaly
- Recommender –
jubakit.recommender.Recommender
- Weight –
jubakit.weight.Weight
他の機能のService化は対応中です。