k近傍法とは?
k近傍法では対象となるオブジェクトに対して、そこから最も近いk個のオブジェクトの中で一番多いものを割り当てます。例えば右の図で赤い点の値はk=3の場合に緑と同じ値が割り当てられます。同様にk=7の場合には青と同じ値が割り当てられます。k=1にした場合は特に最近傍法と呼ばれます。
NAGが提供するk近傍法
データレコードxを与えた場合に、その従属変数に対応した値が未知の場合、 k最近傍モデル(k-nearest neighbour model) ではトレーニングデータ中から x に類似する k 個のデータレコードを抽出します。
x とトレーニングレコード間の類似性は独立変数上で計算される距離関数によって測られます。 その場合従属変数の値は k 個の最近傍データの中で最も高い確率を持ったクラス値に設定されます。 個々のクラス値に対し事前確率を設定することもできます。
データレコードを比較する際使用される類似性に関する尺度としては2 種類の距離関数が選択できます。第1 はユークリッド距離の2 乗で、データ値間の差の2 乗和を評価することによって距離を計測します。 第2はマンハッタン距離で、データ値間の差の絶対値を合計したものを評価し距離の尺度とします。
NAGが提供する最近傍法の関数ではまずk次元木(kd-tree)が計算を行い、そのデータを用いて 実際の分類や値の計算を行います。
【NAGのデータマイニングコンポーネントのドキュメント】
イントロダクションガイド
ユーザーガイド
提供されているk近傍法関数(サブルーチン)
nagdmc_kdtree - k次元木を構築する
nagdmc_save_kdtree - k次元木を保存する
nagdmc_load_kdtree - k次元木を読込む
nagdmc_free_kdtree - k次元木を解放する
nagdmc_knnc - k次元木を用いて最近傍分類を計算する
nagdmc_knnp - k次元木を用いて最近傍値を計算する