iDistanceを用いた多次元空間におけるK近傍法
元ネタは
H. V. Jagadish, Beng Chin Ooi, Kian-Lee Tan, Cui Yu, and Rui Zhang. iDistance: An adaptive B+-tree based indexing method for nearest neighbor search. ACM Trans. Database Syst., Vol. 30, No. 2, pp. 364–397, 2005.
iDistanceは多次元のデータを1次元空間に写像してK近傍探索を行う方法である.K近傍探索は,写像後の1次元データに対して範囲検索を行うことで可能となる.1次元データの範囲検索ということで,写像後の1次元データはB+木に格納される.また,1次元空間に写像するという特徴から,構造化P2Pなどにも応用されている.
iDistanceではまず,データ空間を個のクラスタに分割し,各クラスタから代表点を選出する.次元のデータはクラスタの代表点からの距離に基づいて,1次元の値に写像される.いま,定数が与えられたとすると,オブジェクトのiDistance値は
となる.ただし,はと間の距離とする.ここで,が十分に大きい場合は,クラスタは区間へと写像される.iDistance値を鍵としてB+木にデータが追加される.
いま,クエリポイントから半径以内にあるすべてのデータを得たいとする.これは,
を満たす代表点について,
となるiDistance値の範囲にあるデータを検索することによって行うことが可能である.ただし,は,から同一クラスタ内にある最も遠い距離にある点ととの距離を示している.K近傍探索は,この範囲検索を繰り返し行うことで達成出来る.