Yolo 深圳
深セン
今すぐ参加
用語集

K近傍法(KNN)

K-Nearest Neighbors(KNN)が、分類および回帰タスクに対する直感的でノンパラメトリックなアプローチにより、機械学習を簡素化する様子をご覧ください。

K-Nearest Neighbors (KNN)は、ノンパラメトリックな教師あり学習アルゴリズムです、 教師あり学習アルゴリズムで 分類と回帰タスクの両方に広く使用されている。しばしば 遅延学習者」またはインスタンスベース学習法と呼ばれることもある。 を生成しない。その代わりに データセット全体を記憶し、新しいインスタンスに対して予測を行うときのみ計算を行う。このアプローチは は、類似のデータ点が特徴空間内で近接した位置を占めると仮定し、アルゴリズムが次のようなclassify 行うことを可能にする。 新しい入力を、多数決クラスまたは最近傍の平均値に基づいて分類できるようにする。

KNNの機能

K-最近傍探索の動作メカニズムは、データ点間の類似性を定量化する距離メトリクスに依存している。 に依存する。最も一般的な測定基準は ユークリッド距離ですが マンハッタン距離やミンコフスキー距離のような他の距離を使用することもできます。 が使用されることもある。予測プロセスにはいくつかの明確なステップがある:

  1. Kの選択: ユーザーは近傍の数を'K'と定義する。これは ハイパーパラメータのチューニングにおいて重要なステップです。 の値はモデルの Kの値はモデルのバイアスと分散のトレードオフに直接影響するからである。Kが小さいと が大きいとノイズに敏感になり、逆にKが大きいと明瞭な境界が平滑化されます。
  2. 距離を計算する:新しいクエリ点が導入されると、アルゴリズムはこの点と保存されたデータセット内のすべての例との間の距離を計算する。 を計算する。
  3. 隣人を特定する:アルゴリズムは距離をソートし、最も小さい値を持つ上位K個のエントリーを選択する。 エントリを選択する。
  4. 集計出力:
    • 分類:アルゴリズムは、K個の近傍探索の中で最も頻繁に現れるクラス・ラベルを割り当てる(多数決)。 の近傍に最も頻繁に出現するクラス・ラベルを割り当てる(多数決)。
    • 回帰:予測値は、K個の近傍の目標値の平均として計算される。 の平均値として計算されます。

KNNはシンプルであるため、多くの機械学習問題にとって効果的なベースラインとなる。 ベースラインとして有効である。以下は Scikit-learnライブラリを使った簡潔な例です。 基本的な分類ワークフローを示します。

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])

実際のアプリケーション

K-Nearest Neighborsは、その単純さにもかかわらず、解釈可能性とインスタンスベースの推論が重視される様々な高度なドメインで採用されている。 インスタンスベースの推論が重視される様々な高度な領域で採用されている。

  • 推薦エンジン:KNNは 協調フィルタリング レコメンデーションシステムストリーミング ストリーミング・プラットフォームでは、視聴履歴が類似しているユーザー(近隣ユーザー)を見つけ、彼らが気に入ったアイテムを推薦することで、コンテンツを提案するのに使われている。 する。この方法は、パーソナライズされたユーザー体験に効果的である。
  • 医療診断 医療画像分析において、KNNは 患者指標や画像特徴を過去の症例データベースと比較することで、病状の診断を支援します。例えば 例えば 乳がん腫瘍を 例えば、乳がんの腫瘍を、確認された症例との細胞の特徴の類似性に基づいて、悪性か良性かを分類するのに役立ちます。
  • 異常検知:金融機関は不正行為を特定するためにKNNを 不正を特定するための異常検出取引パターンを分析することで 取引パターンを分析することで、システムは、ユーザーの標準的な行動から大きく逸脱した行動にフラグを立てることができる。 つまり、"最も近い隣人 "から離れたポイントである。

KNNと関連アルゴリズムの違い

KNNと他のアルゴリズムの違いを理解することは、コンピュータ・ビジョンやデータ解析プロジェクトに適したツールを選択するために不可欠です。 重要である。

  • K-Meansクラスタリング:KNNと K-Meansクラスタリングと混同しやすい。 しかし、K-Meansは 教師なし学習技法であり 一方KNNは教師ありの手法で、予測にはラベル付きデータが必要である。
  • サポートベクターマシン(SVM):どちらも分類に使われるが サポート・ベクトル・マシン(SVM)は は、クラス間のマージンを最大化するグローバルな決定境界(超平面)を見つけることに重点を置く。逆にKNNは 大域的なモデルを構築することなく、局所的なデータ密度に基づいて決定を下す。これらの違いについては SVMのドキュメント
  • 決定木A 決定木は、特徴空間を分割する階層的なルールを学習することによってデータを分類する、 特徴空間を分割する階層的なルールを学習することでデータを分類する。KNNは純粋に特徴空間の距離メトリックに依存する。 不規則な決定境界に対してより柔軟であるが、推論時の計算が重い。

KNNは小規模なデータセットでは強力だが、ビッグデータではスケーラビリティの問題に直面する。 ビッグデータでは、クエリごとに距離を計算する計算コストのため に起因するスケーラビリティの問題に直面する。高性能な リアルタイム推論 ような最新のディープラーニング アーキテクチャ YOLO11のような最新のディープ・ラーニング・アーキテクチャが のような最新のディープラーニングアーキテクチャが一般的に好まれている。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加