K 最近傍法 (KNN): その概要と機械学習での使用方法

公開: 2024-12-18

K 最近傍 (KNN) は、機械学習 (ML) の基本的な手法です。このガイドは、KNN、その仕組み、そのアプリケーション、利点、課題を理解するのに役立ちます。

目次

k 最近傍アルゴリズムとは何ですか?

KNNはどのように機能しますか?

k最近傍アルゴリズムと他のアルゴリズムの違い

KNN は機械学習でどのように使用されますか?

KNNの応用

KNNのメリット

KNNのデメリット

k 最近傍アルゴリズムとは何ですか?

k 近傍 (KNN) アルゴリズムは、分類と回帰の両方に使用される教師あり学習手法です。 KNN は、データセット内の近くのデータ ポイントを評価することによって、特定のデータ ポイントのラベル (分類) または予測値 (回帰) を決定します。

Grammarly で賢く仕事をする
仕事を持つすべての人のための AI ライティング パートナー

KNNはどのように機能しますか?

KNN は、データセット内で空間的に互いに近いデータ ポイントは類似の値を持つか、類似のカテゴリに属する​​傾向があるという前提に基づいています。 KNN は、このシンプルだが強力なアイデアを使用して、ラベル付きトレーニング データセット内の隣接するデータ ポイントの事前設定数 (ハイパーパラメーター k) を見つけることによって、新しいデータ ポイントを分類します。この値 k は、KNN ハイパーパラメータの 1 つであり、ML 実践者がアルゴリズムの学習方法を制御するために使用する事前設定された構成変数です。

次に、アルゴリズムは、隣接する値のどれが新しいデータ ポイントに最も近いかを判断し、その値に隣接する値と同じラベルまたはカテゴリを割り当てます。選択した k の値はモデルのパフォーマンスに影響します。値が小さいとノイズ感度が高まり、値が大きいと堅牢性が高まりますが、KNN が局所的なパターンを見逃す可能性があります。

データ ポイント間の近さ、つまり距離は、もともと数学的空間内のポイントの類似性を測定するために開発されたメトリクスを使用して計算されます。一般的なメトリクスには、ユークリッド距離、マンハッタン距離、ミンコフスキー距離などがあります。 KNN のパフォーマンスは選択したメトリクスに影響され、データの種類やサイズが異なると、メトリクスが異なればパフォーマンスが向上します。

たとえば、各データ ポイントを記述する個々の属性であるデータ内の次元の数は、メトリクスのパフォーマンスに影響を与える可能性があります。選択した距離メトリックに関係なく、目標は、他のデータ ポイントからの距離に基づいて新しいデータ ポイントを分類または予測することです。

  • ユークリッド距離は、空間内の 2 点間の直線に沿った距離であり、最も一般的に使用される指標です。次元数が少なく、重大な外れ値がないデータに最適です。
  • マンハッタン距離は、測定されるデータ ポイントの座標間の絶対差の合計です。このメトリクスは、データが高次元である場合、またはデータ ポイントがグリッド状の構造を形成している場合に役立ちます。
  • ミンコフスキー距離は、調整可能なパラメーターの値に応じて、ユークリッド距離またはマンハッタン距離のように機能する調整可能なメトリックです。このパラメーターを調整すると、距離の計算方法が制御されます。これは、KNN をさまざまなタイプのデータに適応させるのに役立ちます。

その他のあまり一般的ではないメトリクスには、チェビシェフ距離、ハミング距離、マハラノビス距離などがあります。これらのメトリクスはより特殊化されており、特定のデータ型と分布に適しています。たとえば、マハラノビス距離は、変数間の関係を考慮して、点の分布からの点の距離を測定します。そのため、マハラノビス距離は、フィーチャが異なるスケールを使用するデータを操作するのに適しています。

KNN は、他の多くのアルゴリズムとは異なり、トレーニングを必要としないため、「遅延」学習アルゴリズムと呼ばれることがあります。代わりに、KNN はデータを保存し、新しいデータ ポイントで回帰または分類が必要な場合にのみ、それを使用して意思決定を行います。ただし、これは、予測ごとにデータセット全体が評価されるため、予測には多くの場合高度な計算要件があることを意味します。 ∫

k最近傍アルゴリズムと他のアルゴリズムの違い

KNN は、分類と回帰を目的とした教師あり ML 手法のより大きなファミリーの一部であり、これにはデシジョン ツリー/ランダム フォレスト、ロジスティック回帰、サポート ベクター マシン (SVM) が含まれます。ただし、KNN は、そのシンプルさとデータ処理への直接的なアプローチなどの点で、これらの手法とは異なります。

デシジョン ツリーとランダム フォレスト

KNN と同様に、デシジョン ツリーとランダム フォレストは分類と回帰に使用されます。ただし、これらのアルゴリズムは、KNN の距離ベースのアプローチとは異なり、トレーニング中にデータから学習した明示的なルールを使用します。デシジョン ツリーとランダム フォレストには、事前にトレーニングされたルールがあるため、予測速度が速くなる傾向があります。これは、リアルタイム予測タスクや大規模なデータセットの処理には、KNN よりも適していることを意味します。

ロジスティック回帰

ロジスティック回帰では、データが線形に分布していると仮定し、直線または超平面 (高次元空間内のデータ ポイントを分離する境界) を使用してデータを分類し、データをカテゴリに分類します。一方、KNN は特定のデータ分布を想定していません。そのため、KNN は複雑なデータや非線形データにより簡単に適応できますが、ロジスティック回帰は線形データで最適に使用されます。

サポートベクターマシン

KNN のようにポイント間の距離を調べる代わりに、サポート ベクター マシン (SVM) は、データ ポイントのグループ間に明確な境界線を作成することに重点を置き、多くの場合、データ ポイント間のギャップを可能な限り広げることを目標とします。 SVM は、多くの特徴を持つ複雑なデータセットの処理や、データ ポイント グループ間の明確な分離が必要な場合に優れています。比較すると、KNN は使用と理解が簡単ですが、大規模なデータセットではそれほどパフォーマンスが良くありません。

KNN は機械学習でどのように使用されますか?

多くの ML アルゴリズムは、1 種類のタスクのみを処理できます。 KNN は、分類と回帰という 1 つではなく 2 つの一般的なユースケースを処理できる能力で際立っています。

分類

KNN は、距離メトリックを使用して k 近傍を決定し、近傍のラベルに基づいて新しいデータ ポイントにラベルを割り当てることにより、データ ポイントを分類します。一般的な KNN 分類の使用例には、電子メールのスパム分類、購入履歴に基づく顧客のカテゴリへのグループ化、手書き番号認識などがあります。

回帰

KNN は、k 近傍の平均 (または加重平均) に基づいてデータ ポイントの値を推定することで回帰を実行します。たとえば、KNN は、近隣の同様の物件に基づいて住宅価格を予測したり、同様の株式の過去のデータに基づいて株価を予測したり、同様の場所の過去の気象データに基づいて気温を予測したりできます。

ML における KNN アルゴリズムの応用

KNN は比較的単純であり、分類と回帰の両方を実行できるため、幅広い用途があります。これらには、画像認識、推奨システム、テキスト分類が含まれます。

画像認識

画像認識は、その分類機能により、KNN の最も一般的なアプリケーションの 1 つです。 KNN は、色や形状などの未知の画像内の特徴を、ラベル付き画像データセット内の特徴と比較することによって画像認識を実行します。これにより、KNN はコンピューター ビジョンなどの分野で役立ちます。

レコメンドシステム

KNN は、ユーザーの嗜好データを類似ユーザーのデータと比較することで、ユーザーに製品やコンテンツを推奨できます。たとえば、ユーザーがいくつかのクラシックなジャズ曲を聴いたことがある場合、KNN は同様の好みを持つユーザーを見つけて、それらのユーザーが楽しんだ曲を推奨できます。そのため、KNN は、同様のデータに基づいて製品やコンテンツを推奨することで、ユーザー エクスペリエンスをパーソナライズするのに役立ちます。

テキストの分類

テキスト分類では、未分類のテキストを、事前に分類されたテキストとの類似性に基づいて分類しようとします。 KNN は単語パターンの類似性を評価できるため、この使用例では効果的なツールになります。テキスト分類は、テキストをポジティブ、ネガティブ、またはニュートラルに分類するセンチメント分析や、ニュース記事のカテゴリを決定するなどのタスクに特に役立ちます。

ML における KNN アルゴリズムの利点

KNN には、そのシンプルさ、多用途性、トレーニング段階の欠如など、いくつかの注目すべき利点があります。

シンプルさ

他の多くの ML アルゴリズムと比較して、KNN は理解しやすく、使いやすいです。 KNN の背後にあるロジックは直感的であり、近くのデータ ポイントの値に基づいて新しいデータ ポイントを分類または予測 (回帰) するため、ML 実践者、特に初心者にとって人気の選択肢となっています。さらに、KNN を使用するには、k の値を選択する以外に、最小限のハイパーパラメーター調整が必要です。

多用途性

KNN は分類タスクと回帰タスクの両方に使用できます。つまり、画像認識から数値予測まで、幅広い問題や種類のデータに適用できます。 1 種類のタスクに限定された特殊なアルゴリズムとは異なり、KNN は適切に構造化されたラベル付きデータセットに適用できます。

明示的なトレーニング段階

多くの ML モデルは、実用化する前に、時間とリソースを大量に消費するトレーニング フェーズを必要とします。一方、KNN はトレーニング データを保存するだけで、予測時にそれを直接使用します。そのため、KNN は新しいデータで更新でき、予測にすぐに使用できます。このため、KNN は小規模なデータセットにとって特に魅力的です。

ML における KNN アルゴリズムの欠点

KNN にはその強みにもかかわらず、いくつかの課題もあります。これらには、高い計算コストとメモリコスト、ノイズや無関係な機能に対する敏感さ、「次元の呪い」が含まれます。

予測の計算コスト

KNN は予測を行うたびに、新しいデータ ポイントとトレーニング データセット全体のすべてのデータ ポイントの間の距離を計算するため、データセットが大きくなるにつれて、予測の計算コストが急速に増加します。これにより、データセットが大きい場合、または KNN が不十分なハードウェアで実行されている場合、予測が遅くなる可能性があります。

次元の呪い

KNN は、高次元データを処理する能力を制限する、いわゆる「次元の呪い」に悩まされています。データセット内のフィーチャの数が増加すると、ほとんどのデータ ポイントがまばらになり、互いにほぼ等距離になります。そのため、距離メトリックはあまり役に立たなくなり、KNN が高次元データセット内で本当に近くにある近傍を見つけることが困難になります。

メモリを大量に消費する

KNN の独自の機能は、予測時に使用するためにトレーニング データセット全体をメモリに保存することです。限られたメモリまたは大規模なデータセットを扱う場合、これは問題が発生し、非現実的になる可能性があります。他の ML アルゴリズムは、モデルのトレーニングとパラメーターの最適化を通じてトレーニング データを学習された特徴に凝縮および蒸留することで、この課題を回避します。一方、KNN はすべてのデータ ポイントを保持する必要があるため、トレーニング データセットのサイズに応じてメモリが線形に増加します。

ノイズや無関係な機能に対する敏感さ

KNN の威力は、そのシンプルで直感的な距離計算にあります。ただし、これは、重要でない特徴やノイズが距離計算の誤解を招き、予測精度に悪影響を与える可能性があることも意味します。そのため、重要な特徴が予測に最も大きな影響を与えることを確認するために、主成分分析 (PCA) などの特徴選択または次元削減手法が KNN でよく使用されます。