Anomaly チュートリアル

ここではJubatusの外れ値検知である、jubaanomalyを使用した、Jubatus Clientの使い方を説明します。

Jubatusでの外れ値検知では、LOF(Local Outlier Factor)をサポートしています。 LOFとは、N次元空間で、近く(近傍)にある点がどの程度あるかを調べる事で、外れ値を検出する方法です。 不正検知、障害検知などに利用することができます。

サンプルプログラムの概要

サンプルとして、KDDカップ(Knowledge Discovery and Data Mining Cup)の結果データを学習させ、外れ値を検知するプログラムを用います。

最初に、結果データをクライアント側で用意し、データを抽出しサーバ側に学習させます。 結果データは KDD Cup 1999 Data から kddcup.data_10_percent.gz をダウンロード後、解凍してください。

次に、学習させた際の戻り値から近傍かどうかを判定し、外れ値であれば結果を出力します。

処理の流れ

Jubatus Clientを使ったコーディングは、主に以下の流れになります。

  1. Jubatus Serverへの接続設定
サーバ側で起動している Jubatus ServerのHOSTやPORTを指定し、接続設定をします。
  1. 学習用データの準備
kddcup.data_10_percent.txtから1行ずつ読み出します。
  1. データの学習(学習モデルの更新)
読み出した学習用データをaddメソッドでサーバ側に与え、学習を行います。
  1. 結果の出力
addメソッドの戻り値にて外れ値かどうか判定し、結果を出力します。