K-Nearest Neighbors (KNN)は、直感的なノンパラメトリックアプローチで、分類や回帰タスクの機械学習を簡素化します。
K-最近傍(KNN)は機械学習(ML)の基本的なアルゴリズムであり、分類と回帰の両方のタスクに使用される。KNNはそのシンプルさと直感的なアプローチで際立っており、インスタンスベースの学習を理解するための出発点として最適である。KNNは、基礎となるデータ分布を仮定しないため、ノンパラメトリック手法に分類される。また、学習データの段階で一般的なモデルを構築するのではなく、データセット全体を保存し、予測が必要なときだけ計算を実行するため、「遅延学習」アルゴリズムとしても知られている。
KNNの核となる考え方は類似性に基づくもので、ユークリッド距離のような距離メトリクスを用いて定義されることが多い。新しい未知のデータ点を予測する際、アルゴリズムは保存されている学習データセットから、そのデータ点に最も近い「K」個のデータ点(近傍点)を特定する。値'K'はユーザー定義の整数で、考慮される近傍の数を表す。
分類では,新しいポイントは,そのK個の近傍の間で最も一般的なクラスに割り当てられる(多数決).回帰の場合、予測は通常、K個の近傍の平均値である。距離メトリック(マンハッタン、ミンコフスキーなど)の選択と'K'の値は、モデルの性能に大きく影響する重要なハイパーパラメータである。効率的な実装は、特に大きなデータセットで近傍探索を高速化するために、KDツリーや ボールツリーのようなデータ構造に依存することが多い。
最適な'K'を選択することは非常に重要である。K'値が小さいと(例えばK=1)、モデルはデータ中のノイズや外れ値に対して非常に敏感になり、オーバーフィッティングを引き起こす可能性がある。逆に、「K」の値が大きいと、決定境界が滑らかになりすぎ、モデルが局所的なパターンに鈍感になり、アンダーフィッティングや予測時の計算コストが高くなる可能性がある。バイアスと分散のトレードオフのバランスをとる適切な'K'を見つけるために、クロスバリデーション(Scikit-learn クロスバリデーションガイド参照)のようなテクニックがしばしば採用される。Scikit-learn ライブラリは、KNN を実装し、ハイパーパラメータ検索を実行するためのツールを提供しており、Ultralytics ハイパーパラメータチューニングガイドで一般的なヒントを見つけることができます。
KNNの単純さは、特に解釈可能性が重視される様々な用途に適している:
KNNにはいくつかの利点があるが、限界もある:
利点がある:
デメリット
KNNを他のアルゴリズムと区別することは重要である:
KNNは特定のタスクや基本的なMLの概念を理解するのに役立ちますが、リアルタイムの物体検出のような複雑な問題には、次のようなより高度なモデルが役立ちます。 Ultralytics YOLOのような、より高度なモデルが、特に大規模なコンピュータビジョンデータセット上で優れたスピードとパフォーマンスを提供します。このようなモデルは、Ultralytics HUBのようなプラットフォームを使用してトレーニングおよびデプロイすることができます。