Anomaly¶
- 詳細な仕様は IDL 定義 を参照してください。
Configuration¶
設定は単体の JSON で与えられる。 JSON の各フィールドは以下のとおりである。
-
method
異常検知に使用するアルゴリズムを指定する。 以下のアルゴリズムを指定できる。
設定値 手法 "lof"
Recommenderベースの Local Outlier Factor を利用する。 [Breunig2000] "light_lof"
Nearest Neighborベースの LOF を利用する。
-
parameter
アルゴリズムに渡すパラメータを指定する。
method
に応じて渡すパラメータは異なる。- 共通
unlearner: 忘却機能に利用するUnlearnerのアルゴリズムを指定する。 忘却機能が不要な場合、このパラメータは省略する。 Unlearner で説明される unlearner
を指定する。 ここで指定された方法に基づいてデータを忘却する。忘却の単位は、ID単位である。unlearner_parameter: 忘却機能に利用するUnlearnerに渡すパラメータを指定する。 Unlearner で説明される unlearner_parameter
を指定する。 ここで指定された件数以上のデータは自動的に削除される。unlearner
を指定する際はこのunlearner_parameter
の指定は必須である。なお
unlearner
とunlearner_parameter
のパラメータは 省略可能 である。- lof
nearest_neighbor_num: 対象データに対する近傍の数を指定する。 大きくすると誤検出が減る代わりに、検出漏れが増える。 (Integer)
- 値域: 2 <=
nearest_neighbor_num
reverse_nearest_neighbor_num: 異常値の情報を更新する際に、逆近傍候補の個数を指定する。 大きくすると検出が正確になる代わりに、更新に時間がかかる。 (Integer)
- 値域:
nearest_neighbor_num
<=reverse_nearest_neighbor_num
ignore_kth_same_point: 登録できる重複データの件数を
nearest_neighbor_num - 1
件に制限することにより、スコアがinf
になることを防ぐ。 このパラメタは省略可能であり、デフォルト値はfalse
(無効) である。 (Boolean)method: 近傍探索に利用するレコメンダーのアルゴリズムを指定する。 Recommender で説明される
method
を指定する。parameter: 近傍探索に利用するレコメンダーに渡すパラメータを指定する。 Recommender で説明される
parameter
を指定する。- 値域: 2 <=
- light_lof
nearest_neighbor_num: 対象データに対する近傍の数を指定する。 大きくすると誤検出が減る代わりに、検出漏れが増える。 (Integer)
- 値域: 2 <=
nearest_neighbor_num
reverse_nearest_neighbor_num: 異常値の情報更新する際に、逆近傍候補の個数を指定する。 大きくすると検出が正確になる代わりに、更新に時間がかかる。 (Integer)
- 値域:
nearest_neighbor_num
<=reverse_nearest_neighbor_num
ignore_kth_same_point: 登録できる重複データの件数を
nearest_neighbor_num - 1
件に制限することにより、スコアがinf
になることを防ぐ。 このパラメタは省略可能であり、デフォルト値はfalse
(無効) である。 (Boolean)method: 近傍探索に利用する近傍探索器のアルゴリズムを指定する。 Nearest Neighbor で説明される
method
を指定する。parameter: 近傍探索に利用する近傍探索器に渡すパラメータを指定する。 Nearest Neighbor で説明される
parameter
を指定する。- 値域: 2 <=
-
converter
特徴変換の設定を指定する。 フォーマットは データ変換 で説明する。
- 例:
{ "method" : "lof", "parameter" : { "nearest_neighbor_num" : 10, "reverse_nearest_neighbor_num" : 30, "method" : "euclid_lsh", "parameter" : { "hash_num" : 64, "table_num" : 4, "seed" : 1091, "probe_num" : 64, "bin_width" : 100 } }, "converter" : { "string_filter_types" : {}, "string_filter_rules" : [], "num_filter_types" : {}, "num_filter_rules" : [], "string_types" : {}, "string_rules" : [ { "key" : "*", "type" : "str", "sample_weight" : "bin", "global_weight" : "bin" } ], "num_types" : {}, "num_rules" : [ { "key" : "*", "type" : "num" } ] } }
Data Structures¶
Methods¶
-
service
anomaly
-
bool
clear_row
(0: string id)¶ パラメータ: - id -- 削除する点 ID
戻り値: 点の削除に成功した場合 True
ID
id
で指定される点データを削除する。
-
id_with_score
add
(0: datum row)¶ パラメータ: - row -- 点の
datum
戻り値: 点 ID と異常値のタプル
点データ
row
を追加する。- row -- 点の
-
list<string>
add_bulk
(0: list<datum> data)¶ パラメータ: - row -- 追加する
datum
のリスト
戻り値: 追加に成功したIDのリスト
複数の点データをまとめて追加する。
add
と異なり、点データ追加時に異常値の計算は行わない。- row -- 追加する
-
double
update
(0: string id, 1: datum row)¶ パラメータ: - id -- 更新する点 ID
- row -- 点の新しい
datum
戻り値: 異常値
点
id
をデータrow
で更新する。
-
double
overwrite
(0: string id, 1: datum row)¶ パラメータ: - id -- 更新する点 ID
- row -- 点の新しい
datum
戻り値: 異常値
点
id
をデータrow
で上書き更新する。
-
double
calc_score
(0: datum row)¶ パラメータ: - row --
datum
戻り値: 与えられた
row
に対する異常度点を追加せずに、与えられた点データ
row
の異常度を計算する。この時、極端に大きな値を返却する場合がある。原因の詳細については FAQs:異常検知 を参照してください。
- row --
-
list<string>
get_all_rows
()¶ 戻り値: すべての点の ID リスト すべての点の ID リストを返す。
-
bool