k 近傍法アルゴリズムとは? k 近傍法 (KNN) アルゴリズムは教師あり機械学習の一手法で、分類と回帰に使われます。これはトレーニングセット内の「k」個の最も類似したデータポイントに基づいてラベルを割り当てる手法で、機械学習において最も広く使用されている分類器の 1 つです。 AI のデモ
合成データについて知っておくべきこと
ベクトルおよびベクトル検索とは KNN アルゴリズムの用途 使用する距離メトリック 「k」の値の定義方法 KNN アルゴリズムが重要な理由 メリット デメリット KNN アルゴリズムの仕組み さまざまな手法 KNN アルゴリズムの活用

機械学習人工知能においては、データ分類が基本プロセスとなります。そのゴールは、データポイントにその特徴に基づいてラベルを割り当てることです。ここでは、既知のデータ (トレーニングデータ) を分析し、各サンプルにカテゴリや値によるラベル付けをします。ラベルは、データ内のパターンと関係を明らかにし、モデルが新たな未知のデータポイントについて正確な予測を行えるようにするのに役立ちます。残念ながら、ラベル付けされたデータでの作業には独自の問題があります。データのラベル付けに伴う手動プロセスは時間を要し、困難なものになることがあり、組織によってはリソースへの投資という点でこの手法を選択できない場合があります。 

k 近傍法 (KNN) アルゴリズムは、この問題に対し、明快で効率的な解決策を提供します。KNN は、事前に複雑な計算を必要とせず、すべてのデータを保存し、既存のデータとの類似度に基づいて新しいデータに対する予測を行うという仕組みになっています。このアプローチにより、KNN は大規模な微調整を必要とせずに正確な予測を行うことができ、小さなデータセットを使いコンピューティング能力が限定されている状況で作業する場合には特に有益です。

すべて展開 すべて折りたたみ KNN におけるベクトルおよびベクトル検索とは

ベクトルは k 近傍法アルゴリズムが機能するために不可欠です。ベクトルは、多次元空間上の点を表す一連の数値です。機械学習モデルは、生の非構造化データを埋め込みと呼ばれるこうした数値表現に変換できなければなりません。埋め込みは、入力データの意味的または構造的な特質をキャプチャし、埋め込み間の関係はベクトル空間内での空間的な近接度 (互いにどの程度近いか、または遠いか) として表されます。

KNN はクエリポイントの「近傍点」(多次元空間内で近くに位置する他の埋め込み) を識別することで、この空間配置を使用します。これらの近傍点は、共通の特性や類似の特徴を持つデータポイントを反映しています。

たとえば、類似したテーマを持つ 2 つのドキュメントは、埋め込みがより近接しており、これによって、KNN は類似点と関連性を認識して、それらの関係に基づいて新しいデータを分類したり結果を予測したりできます。

Now Intelligence のご紹介 ServiceNow がどのように AI とアナリティクスをラボから引き出し、組織の働き方を変革して、デジタルトランスフォーメーションを加速させているかをご覧ください。 ダウンロード
KNN アルゴリズムの用途 

k 近傍法アルゴリズムは、ベクトルを使って新しいデータ点に対する「k」(最も近接したデータポイントまたは近傍点) を識別することで機能し、それらの近傍点に基づいて予測を行います。たとえば、ゴールがメールをスパムとそうでないものに分類することである場合、KNN は最も類似した「k」通のメールを見て、それらの近傍点の多数派となる分類に基づいて新しいメールを分類します。

または、年齢、興味、購入履歴などの特徴を備えたさまざまな顧客に関するデータが組織にあるとします。KNN は、それらの特徴を比較することで、顧客を常連客、不定期客、ウィンドウショッピング客などのカテゴリにグループ化できます。新規顧客が Web サイトを訪れた場合、KNN はどのグループに最も類似しているかを評価することで、その購買行動を予測できます。 

このアルゴリズムの順応性は、マルチモーダルデータセットで使用するとさらに拡大します。そこでは、テキスト、画像、音声など、複数ソースからの情報が同時に結合されます。KNN は共有ベクトル空間におけるそれらの埋め込みを分析し、異なるモダリティ間の類似性を特定できます。マルチモーダルデータに KNN を適用すると、データの種類に関係なく、最も類似した近傍点を見つけることが可能になります。これにより、KNN は複雑度さと多様化の度合いが増すデータシナリオを処理するための万能アルゴリズムとなります。

  • パターン認識

KNN は画像認識や手書き認識などのパターン認識タスクで広く使用されています。KNN は、新しい画像やサンプルをラベル付けされたデータセットと比較することで、既知のパターンとの類似性に基づいて物体、文字、顔を正確に分類できます。 

  • データ処理 

KNN は欠損値の補完や外れ値の検出など、データの前処理に有効です。KNN は、最近傍点を分析することで、最も類似したデータポイントに基づいて欠損値を推定し、データの品質と一貫性を向上させることができます。 

  • 推奨エンジン 

KNN は、ユーザーの行動と好みを分析することで、推奨システムの構築を支援します。KNN は、興味が似ているユーザーを見つけることで、類似したプロファイルを持つ他のユーザーが気に入った製品、映画、コンテンツを提案し、ユーザーエクスペリエンスとエンゲージメントを向上させることができます。 

  • 画像からテキストへの変換 

KNN は、マルチモーダルシステム内の画像からテキストへの変換タスクで使用されることが多くなっています。KNN は、画像の埋め込みをテキストによる記述の埋め込みと比較することで、AI システムが自動キャプション付けなどの複雑なタスクを実行できるようにします。そこでは、最も近い一致に基づいて、特定の画像に対してコンテキストに応じた適切なテキストを提供します。 

KNN で使用する距離メトリック

上記の各アプローチでは、KNN の予測精度は、データの類似性を測定するために使用する距離メトリックに大きく依存します。KNN の距離メトリックは、データポイント間の類似性を測定します。これは正確な予測に不可欠です。これらのメトリックは、アルゴリズムがデータポイントの「近接度」を計算して新しいデータポイントの分類や予測を効果的に行うための方法を決定します。

ユークリッド距離 

ユークリッド距離は KNN で最も一般的に用いられるメトリックで、ユークリッド空間内の 2 点間の直線距離を計算するものです。これは地図と定規を使用して 2 地点間の最短経路を測定するようなものです。距離が短いほど、それらの点が類似していると見なされます。たとえば、異なる個人の身長と体重を比較するとき、ユークリッド距離は、最短のユークリッド距離で隔てられているそれら 2 つの特徴に基づいて最も類似した個人を特定するという役に立ちます。 

 

マンハッタン距離 

マンハッタン距離は、格子状の街路を移動するように、各次元に沿って点の間の絶対値を測定します。(建物を斜めに横切るのではなく) 通りに沿ってしか移動できない碁盤の目のような都市を想像してください。このメトリックは、配送ルートの比較や都市計画のシナリオなど、データポイントが格子のようなパターンの構造になっている場合に役立ちます。

ミンコフスキー距離  

ミンコフスキー距離はユークリッド距離とマンハッタン距離を一般化したものです。パラメーター「p」を調整することで、どちらのメトリックとも同様の動作ができます。ミンコフスキー距離は、データ分析の個別のニーズに基づいてさまざまなシナリオに適応できる柔軟なツールと考えてください。たとえば、異なる特徴 (価格、面積、部屋数など) を持つ不動産を比較する場合、「p」値を調整することで、特定の特徴を他のものより重視できるなど、さまざまなタイプのデータを比較するための汎用メトリックになります。 

「k」の値の定義方法 

「k」に適切な値を定義しないと、KNN アルゴリズムは意図したとおりに機能しません。「k」に選ぶ値が小さすぎると、予測がデータ内のノイズに対して過度に敏感になり、変動が大きくなり、予測の安定性が低下します。一方、過度に大きな値を指定すると、予測は平滑化しますが、モデルが汎化し過ぎて特定のパターンが見落される可能性があります。

最適な「k」の値を見つけるために、実務者は通常交差検証 (データセットをトレーニングセットと検証セットに複数回分割して異なる「k」値をテストする手法) を使用します。これは、予測誤差を最小化しながらアルゴリズムの汎化性能を維持できる「k」を特定するのに役立ちます。

このプロセスでは、試行錯誤を行う場合があります。適切な「k」を見つけるには、さまざまな値をテストして、モデルが既知のデータと未知のデータの両方で適切に機能し、安定性と特異度の最適なバランスが達成されていることを確認します。

KNN アルゴリズムが重要な理由 
KNN アルゴリズムは、データポイント間の関係が一目で分からないさまざまなシナリオに有益なツールで、データポイント間の類似性を活用し、広範なモデルトレーニングをせずに正確な予測を行えます。これは、物体を特定するために視覚的な類似性が重要になる画像認識や、行動パターンを活用してユーザーを意味のあるグループに分類する顧客セグメンテーションなどの分野で特に有用です。 
KNN アルゴリズムのメリット 

データポイント間のつながり、類似性、関係を明らかにすることが、k 近傍法アルゴリズムの全体的な目的です。このモデルが多くの組織で選択されている理由は、さらに他にもさまざまなメリットをもたらすからです。KNN に関するベネフィットには次のようなものがあります。

導入が容易 

KNN は、機械学習の初心者でも、簡単に導入して理解できます。複雑なトレーニングフェーズを必要とせず、トレーニングデータセットを記憶し、それを直接使用して予測を行います。

適応性 

分類タスクに使用しても、回帰タスクに使用しても、KNN はデータポイントのグループ化に必要なさまざまなデータ構造や関係を処理できます。この柔軟性により、ファイナンス、医療、e コマースなどの複数の分野に適用できます。

複雑さの軽減

KNN は数個のハイパーパラメーターしか必要しません。主なものは「k」の値と距離メトリックです。そのため、広範なパラメーターの最適化が必要な他のアルゴリズムと比較して、モデルの調整の複雑さが軽減されます。結果として、モデル開発プロセス全体が簡素化され、最小限の調整で優れたパフォーマンスを容易に達成できます。

KNN アルゴリズムの使用に伴うデメリット 

KNN アルゴリズムには複数のメリットがありますが、目立つ弱点もいくつかあります。それらは以下のようなものです。 

高次元性に伴う問題 

高次元性とは、特徴 (次元) の数が増えるにつれて、同じレベルのパフォーマンスを維持するために必要なデータが指数関数的に増加することを指します。高次元空間では、データポイント間の距離が意味をなさなくなり、KNN が真に「最も近い」近傍点を特定することが困難になります。この問題により、多くの特徴を持つデータセットでのアルゴリズムの精度と有効性が大幅に低下する場合があります。 

過剰適合の起こりやすさ 

KNN は、データセット内のノイズや外れ値から悪影響を受ける可能性があり、特に「k」の値が小さい場合にそれが顕著になります。この敏感さが過剰適合につながり、アルゴリズムがノイズや異常値を正しいパターンであるかのように捉えてしまうことがあります。過剰適合の結果として、新たな未知のデータの汎化性能が不十分になり、モデルの予測性能が低下します。 

拡張の困難さ 

KNN ではデータセットのサイズに応じて計算が複雑になり、データセットが過度に大規模な場合は効率が低下します。各予測では、新しいデータポイントとトレーニングセット内にある既存のデータポイントすべてとの距離を計算する必要があり、メモリ使用率が増大し、計算時間が長くなります。このような拡張性の欠如により、大量のデータを伴うシナリオにおいては KNN の適用可能性が制限されます。 

KNN アルゴリズムの仕組み 

前述のように、KNN アルゴリズムは、データセット内の他のデータポイントとの近接性に基づいてデータポイントを分類します。これを実行するために、アルゴリズムは特定の一連のステップに従う必要があります。

1.近傍点の数 (k) を選択する 

分類または回帰を行う際に考慮すべき「k」の値を定義します。この値は、アルゴリズムがデータポイント間の類似性を評価する方法に影響します。

2. 距離を計算する 

トレーニングセット内の各データポイントについて、標準的な距離メトリック (ユークリッド距離、マンハッタン距離、ミンコフスキー距離) のいずれか 1 つを使用して、新しいデータポイントとの距離を計算します。この距離測定により、新しいデータポイントの最近傍点と見なすべきものを特定できるようになります。

3.最近傍点の特定 

ステップ 2 で計算した距離をソートし、「k」個の最近傍点を決定します。これらの近傍点は、新しいデータポイントに対し、選択した距離メトリックに基づいて最も近いデータポイントです。 

4.予測を行う 

分類タスクの場合、「k」個の最近傍点の中で最も共通するクラスに、新しいデータポイントをアサインします。回帰タスクの場合、「k」個の最近傍点の平均値または中央値を計算し、その値を新しいデータポイントの予測値として使用します。

5.モデルを評価する

交差検証手法を使用して、KNN モデルの精度とパフォーマンスを評価します。必要に応じて「k」の値と距離メトリックを調整し、モデルの予測を最適化します。 

KNN を実行するさまざまな方法 

k 近傍法 (KNN) アルゴリズムを実行する方法はいくつかあり、そのそれぞれにメリットと適したアプリケーションが存在します。以下の方法により、最近傍点を見つけるプロセスを最適化し、KNN をさまざまなタイプのデータセットに対する効率的な選択肢にすることができます。  

  • 総当たり法 

総当たり法では、クエリポイントとデータセット内にある他のポイントすべてとの距離を計算します。シンプルですが、計算コストが高いので、小規模なデータセットに最適です。 

  • K 次元ツリー (kd 木)

kd 木は、空間を再帰的に超直方体に分割することで k 次元空間内の点を整理します。これは距離計算を減らし、中程度の高次元データの KNN 検索を高速化します。 

  • ボール木

ボール木は空間を入れ子状の超球形に分割し、データセットの無関係な部分を排除することで、効率的に最近傍点検索ができるようにします。これは特に高次元データに有効で、そうしたシナリオでは多くの場合 kd 木を上回るパフォーマンスを発揮します。 

ServiceNow の価格設定 ServiceNow では、お客様の組織のビジネスの成長とニーズの変化に合わせて拡張可能な、競争力のある製品パッケージをご用意しています。 見積もりを依頼
ServiceNow で k 近傍法アルゴリズムを活用 

k 近傍法アルゴリズムは、データポイントを分類し、関係を定量化する能力によって、AI システムに計り知れない価値をもたらします。エンタープライズ IT ソリューションのリーダーである ServiceNow は、高度な AI と KNN を統合し、デジタルトランスフォーメーションのための強力なツールを提供しています。受賞歴のある ServiceNow の Now Platform® は、AI と機械学習を活用して、あらゆるビジネス機能にわたりワークフローの自動化、最適化、最新化を行い、組織全体のインテリジェントな最適化を可能にします。 

ServiceNow は、KNN やその他の高度なアルゴリズムを統合することで、組織が AI を活用して意思決定の改善、投資から利益回収までの時間の短縮、ビジネスへのアプローチの効率化を実現できるようにしています。AI と Now Platform の革新的なパワーをご紹介します。今すぐ ServiceNow のデモをご覧ください。

代替
AI ワークフローの詳細 ServiceNow プラットフォームがビジネスのあらゆる面で実用的な AI をどのように実現するかをご覧ください。 生成 AI の詳細を見る お問い合わせ
リソース 記事 AI とは? 生成 AI とは? アナリストレポート IDC InfoBrief:デジタルプラットフォームで AI の価値を最大化 IT 運用における生成 AI 通信業界における生成 AI の実装 データシート AI 検索 ServiceNow® Predictive AIOps による機能停止の予測と防止 リソース管理 電子書籍 AI による IT サービスと IT オペレーションの最新化 生成 AI:本当にそれほど重要なのか? 生成 AI で組織の生産性を向上 ホワイトペーパー エンタープライズ AI 成熟度インデックス 通信事業者向け生成 AI