読み方 : ケーきんぼうほう
k近傍法【k-NN】k-nearest neighbor algorithm
k近傍法とは?

未知のデータ点が与えられると、学習済みのデータセット全体との距離を計算し、最も近いk個の点を選び出す。分類タスクでは、選ばれたk個の点が持つラベルのうち最も多いものを予測結果とし、回帰タスクでは選ばれたk個の値の平均を予測値とする。距離の計算にはユークリッド距離が広く用いられるが、マンハッタン距離など他の指標が使われることもある。
kの値は予測精度に大きく影響する。kを小さく設定すると、ノイズや外れ値の影響を受けやすくなる。kを大きくするとノイズの影響は緩和されるが、異なるクラスのデータが混在しやすくなり、境界が滑らかになりすぎることがある。適切なkの値は、交差検証などを用いてデータに応じて調整するのが一般的である。
データをそのまま保持しておき、予測時に初めて計算を行う「怠惰学習」(lazy learning)という手法に分類される。モデルの学習処理が不要で、新しいデータが追加されても再学習なしに対応できる。アルゴリズムが単純で理解しやすく、非線形な境界も扱える利点もある。一方、データ量が増えると予測の度に全データとの距離計算が必要となり、処理速度が低下するという課題がある。また、特徴量の次元数が多くなるほど距離の意味が薄れる「次元の呪い」の影響を受けやすく、事前の特徴量選択や正規化が精度に直結する。
k近傍法は画像認識やレコメンドエンジン、異常検知など幅広い分野で利用されている。教師あり学習の基礎的な手法として教育や比較評価にも用いられることが多い。高速化のためにkd木などの探索構造を用いる方法や、近似近傍探索を利用する手法も提案されている。