k近傍法
K-Nearest Neighbors, KNN, kNN_ GPT-4.icon
### K近傍法の概要
K近傍法は、与えられたデータポイントの「近傍(Neighbor)」に基づいて、分類や予測を行います。具体的には、テストデータポイントの周囲にあるK個の最も近いトレーニングデータポイントのラベルを基に、そのテストデータポイントのラベルを決定します。
### アルゴリズム
1. **データポイントの距離計算**:
- テストデータポイントとすべてのトレーニングデータポイントとの距離を計算します。一般的にはユークリッド距離が用いられますが、他の距離(マンハッタン距離、コサイン類似度など)も使用されることがあります。
2. **K個の最近傍を選ぶ**:
- 計算した距離に基づいて、テストデータポイントに最も近いK個のトレーニングデータポイントを選びます。
3. **ラベルの決定(分類の場合)**:
- 選ばれたK個の近傍の中で最も多く出現するラベルを、テストデータポイントのラベルとして予測します(多数決)。
4. **値の決定(回帰の場合)**:
- 選ばれたK個の近傍のラベルの平均値を、テストデータポイントの予測値として出力します。
### Kの選び方
- **Kの値**は、モデルの性能に大きく影響します。一般的には、Kが小さいとモデルがノイズに敏感になり、Kが大きすぎるとモデルが過度にスムーズになり、重要なパターンを見逃してしまう可能性があります。適切なKの値を選ぶために、交差検証(cross-validation)を用いることが推奨されます。 ### K近傍法の利点
1. **シンプルで直感的**: 理解しやすく、実装も容易です。
2. **トレーニングが高速**: トレーニングフェーズでは単にデータを保存するだけなので、計算が非常に簡単です。
3. **非線形な境界も対応可能**: 複雑なデータのパターンを捉えることができます。
### K近傍法の欠点
1. **計算コストが高い**: テスト時にすべてのトレーニングデータポイントとの距離を計算するため、データポイントが増えると計算コストが高くなります。
2. **メモリ使用量が多い**: 全てのトレーニングデータを保存しておく必要があるため、大規模なデータセットではメモリ使用量が増大します。
3. **スケーリングの必要性**: 距離に基づく手法なので、異なる尺度の特徴量を使う場合は標準化や正規化が必要です。
4. **次元の呪い**: 高次元データでは、データポイント間の距離が均一になり、K近傍法の性能が低下します。
### 実用例
- **画像認識**: K近傍法を使って、画像のラベルを予測します。
- **推薦システム**: ユーザーの過去の行動に基づいて、似た行動を取るユーザーを見つけ、アイテムを推薦します。
- **異常検知**: 通常のデータポイントと異なる新しいデータポイントを見つけるために使用されます。