用語集

K-最近傍探索(KNN)

K-Nearest Neighbors (KNN)は、直感的なノンパラメトリックアプローチで、分類や回帰タスクの機械学習を簡素化します。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

K-最近傍(KNN)は機械学習(ML)の基本的なアルゴリズムであり、分類と回帰の両方のタスクに使用される。KNNはそのシンプルさと直感的なアプローチで際立っており、インスタンスベースの学習を理解するための出発点として最適である。KNNは、基礎となるデータ分布を仮定しないため、ノンパラメトリック手法に分類される。また、学習データの段階で一般的なモデルを構築するのではなく、データセット全体を保存し、予測が必要なときだけ計算を実行するため、「遅延学習」アルゴリズムとしても知られている。

KNNの仕組み

KNNの核となる考え方は類似性に基づくもので、ユークリッド距離のような距離メトリクスを用いて定義されることが多い。新しい未知のデータ点を予測する際、アルゴリズムは保存されている学習データセットから、そのデータ点に最も近い「K」個のデータ点(近傍点)を特定する。値'K'はユーザー定義の整数で、考慮される近傍の数を表す。

分類では,新しいポイントは,そのK個の近傍の間で最も一般的なクラスに割り当てられる(多数決).回帰の場合、予測は通常、K個の近傍の平均値である。距離メトリック(マンハッタン、ミンコフスキーなど)の選択と'K'の値は、モデルの性能に大きく影響する重要なハイパーパラメータである。効率的な実装は、特に大きなデータセットで近傍探索を高速化するために、KDツリーや ボールツリーのようなデータ構造に依存することが多い。

K'の値の選択

最適な'K'を選択することは非常に重要である。K'値が小さいと(例えばK=1)、モデルはデータ中のノイズや外れ値に対して非常に敏感になり、オーバーフィッティングを引き起こす可能性がある。逆に、「K」の値が大きいと、決定境界が滑らかになりすぎ、モデルが局所的なパターンに鈍感になり、アンダーフィッティングや予測時の計算コストが高くなる可能性がある。バイアスと分散のトレードオフのバランスをとる適切な'K'を見つけるために、クロスバリデーションScikit-learn クロスバリデーションガイド参照)のようなテクニックがしばしば採用される。Scikit-learn ライブラリは、KNN を実装し、ハイパーパラメータ検索を実行するためのツールを提供しており、Ultralytics ハイパーパラメータチューニングガイドで一般的なヒントを見つけることができます。

KNNの応用

KNNの単純さは、特に解釈可能性が重視される様々な用途に適している:

KNNの利点と欠点

KNNにはいくつかの利点があるが、限界もある:

利点がある:

デメリット

KNNと関連概念との比較

KNNを他のアルゴリズムと区別することは重要である:

  • K-平均クラスタリング:K-Meansは、類似性に基づいてデータをK個のクラスターにグループ化するために使用される教師なし学習アルゴリズムである。KNNは、ラベル付けされた近傍に基づいて分類や回帰に使用される教師あり学習アルゴリズムである。
  • サポートベクターマシン(SVM):SVMはクラスを分ける最適な超平面を見つける教師ありアルゴリズムである。KNN が局所的な近傍類似性に基づいて分類するのに対し、SVM は大域的な最適境界を求めます。詳しくはScikit-learn SVM のページをご覧ください。
  • 決定木:決定木は、階層的なルールを学習し、木のような構造を作ることでデータを分類する。KNN は距離ベースの類似度を使用しますが、決定木は特徴ベースの分割を使用します。詳細はScikit-learn の決定木のページを参照してください。

KNNは特定のタスクや基本的なMLの概念を理解するのに役立ちますが、リアルタイムの物体検出のような複雑な問題には、次のようなより高度なモデルが役立ちます。 Ultralytics YOLOのような、より高度なモデルが、特に大規模なコンピュータビジョンデータセット上で優れたスピードとパフォーマンスを提供します。このようなモデルは、Ultralytics HUBのようなプラットフォームを使用してトレーニングおよびデプロイすることができます。

すべて読む