k近傍法(k-NN: k-Nearest Neighbors)とは、新しいデータポイントに最も近いk個の訓練データの多数決(分類)または平均値(回帰)で予測を行うアルゴリズムです。学習フェーズがなく、予測時にすべての計算を行う「怠惰学習(Lazy Learning)」の代表例です。
アルゴリズムの仕組み
予測時に、入力データと全訓練データとの距離を計算し、最も近いk個のデータポイントを選びます。分類ではk個の中で最も多いクラスを予測値とし、回帰ではk個の値の平均を予測値とします。
| ひとことで言うと | 近くにあるk個のデータの多数決で、答えを決めるシンプルな手法。 |
|---|---|
| 何がうれしいか | 学習らしい学習が不要で仕組みが直感的。まず試す基準(ベースライン)に向く。 |
| 注意点 | 予測のたびに全データと距離を測るので、データが多いと遅い。 |
距離指標の選択
ユークリッド距離が最も一般的ですが、マンハッタン距離、ミンコフスキー距離、コサイン類似度など、データの特性に応じた距離指標を選択できます。
1新しいデータ判定したい1件
▶
2全件と距離を測るどれが近いか計算
▶
3近い順にk個k=5なら上位5件
▶
4多数決一番多いクラスを採用
kの値と前処理
kが小さいとノイズに敏感(過学習気味)、kが大きいと決定境界が滑らか(未学習気味)になります。また、特徴量のスケールに影響を受けやすいため、事前の正規化や標準化が重要です。