Clustering¶
- 詳細な仕様は IDL 定義 を参照してください。
Configuration¶
設定は単体の JSON で与えられる。 JSON の各フィールドは以下のとおりである。
-
method
クラスタリングに使用するアルゴリズムを指定する。 以下のアルゴリズムを指定できる。
設定値 手法 "kmeans"
k-meansを利用する "gmm"
混合ガウスモデルを利用する "dbscan"
dbscanを利用する
-
parameter
アルゴリズムに渡すパラメータを指定する。
method
に応じて渡す一部のパラメータが異なる。- kmeans, gmm 共通
k: いくつのクラスタに分割するか、を指定する。 (Integer)
- 値域: 1 <=
k
seed: 乱数の生成に使用するシードを指定する。 (Integer)
- 値域: 0 <=
seed
<= \(2^{32} - 1\)
- 値域: 1 <=
- dbscan
eps: 近傍点とみなす距離を指定する。 大きな値を指定するほど、離れている点でも近傍点とみなすようになる。 (Float)
- 値域: 0.0 <
eps
min_core_point: クラスタの形成に必要な密集度(近傍点の数)の下限を設定する。 大きな値を指定するほど、密集度の高い領域のみがクラスタを形成するようになる。 (Integer)
- 値域: 1 <=
min_core_point
- 値域: 0.0 <
-
compressor_method
データ点を圧縮するアルゴリズムを指定する。
method
によって使用できるメソッドが異なる。設定値 手法 "simple"
圧縮を行わない "compressive"
コアセットによる圧縮を行う(kmeans, gmmのみ)
-
compressor_parameter
compressorに渡すパラメータを指定する。
compressor_method
に応じて渡すパラメータが異なる。- simple
bucket_size: ミニバッチを実行するデータの件数。
bucket_size
件のデータが登録される度にクラスタリングが実行される。 ただしmethod
がkmeans
またはgmm
の場合、初回のクラスタリングはk
件のデータが登録されるまで実行されない。 (Integer)- 値域: 2 <=
bucket_size
- 値域: 2 <=
- compressive
bucket_size: ミニバッチおよび圧縮を実行するデータの件数。
bucket_size
件のデータが登録される度にクラスタリングが実行される。 ただしmethod
がkmeans
またはgmm
の場合、初回のクラスタリングはk
件のデータが登録されるまで実行されない。 (Integer)- 値域: 2 <=
bucket_size
bucket_length: ミニバッチのサイズ。 (Integer)
- 値域: 2 <=
bucket_length
compressed_bucket_size: bucket_size
を何点に圧縮するかを指定する。 圧縮率 = (compressed_bucket_size
/bucket_size
)である。 (Integer)- 値域:
bicriteria_base_size
<=compressed_bucket_size
<bucket_size
bicriteria_base_size: 圧縮の粗さに関係するパラメータ。 (Integer)
- 値域: 1 <=
bicriteria_base_size
<=compressed_bucket_size
forgetting_factor: 忘却定数
c_f
。 (Float)- 値域: 0.0 <=
forgetting_factor
forgetting_threshold: 重みにかけられた忘却係数の和がこの値を超えたら、それより上位のレベルには圧縮しないようにする。 (Float)
- 値域: 0.0 <=
forgetting_threshold
<= 1.0
seed: 乱数の生成に使用するシードを指定する。 (Integer)
- 値域: 0 <=
seed
<= \(2^{32} - 1\)
- 値域: 2 <=
-
distance(optional)
データ間の距離を測る手法を指定する。 設定可能な値は下表の通りである。 このオプションは省略可能であり、省略された場合は
euclidean
が使用される。 このオプションはmethod
がkmeans
,dbscan
の時のみ有効である。設定値 手法 "euclidean"
ユークリッド距離を使用する "cosine"
コサイン距離を使用する
-
converter
特徴変換の設定を指定する。 フォーマットは データ変換 で説明する。
- 例:
{ "method" : "kmeans", "parameter" : { "k" : 3, "seed" : 0 }, "compressor_method" : "compressive", "compressor_parameter" : { "bucket_size" : 1000, "compressed_bucket_size" : 100, "bicriteria_base_size" : 10, "bucket_length" : 2, "forgetting_factor" : 0.0, "forgetting_threshold" : 0.5, "seed" : 0 }, "distance": "euclidean" "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
clustering
-
bool
push
(0: list<indexed_point> points)¶ パラメータ: - points -- 追加する点のリスト
戻り値: 点の追加に成功した場合 True
点データを追加する。
-
uint
get_revision
()¶ 戻り値: クラスタ状態のバージョン クラスタ状態のバージョンを返す。
-
list<list<weighted_datum>>
get_core_members
()¶ 戻り値: クラスタの概略 クラスタのコアセットをdatum形式で返す。
-
list<list<weighted_index>>
get_core_members_light
()¶ 戻り値: クラスタの概略 クラスタのコアセットのindexを返す。
-
datum
get_nearest_center
(0: datum point)¶ パラメータ: - point --
datum
戻り値: 与えられた点に最も近いクラスタ中心
点を追加せずに、与えられた点データ
point
に最も近いクラスタ中心を返す。 アルゴリズムにdbscan
を選択した場合、このメソッドは使用できない。- point --
-
list<weighted_datum>
get_nearest_members
(0: datum point)¶ パラメータ: - point -- 指定する点
戻り値: 点のリスト
point
で指定した点から最も近いクラスタの概略をdatum形式で返す。 アルゴリズムにdbscan
を選択した場合、このメソッドは使用できない。
-
list<weighted_index>
get_nearest_members_light
(0: datum point)¶ パラメータ: - point -- 指定する点
戻り値: 点のリスト
point
で指定した点から最も近いクラスタの概略をindexで返す。 アルゴリズムにdbscan
を選択した場合、このメソッドは使用できない。
-
bool