IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
k近傍法(kNN)アルゴリズムは、近接性を使用して個々のデータ・ポイントのグループ化に関する分類または予測を行う、非パラメトリックな教師あり学習分類器です。これは、今日の機械学習で使用されている、最も人気があり、かつ最もシンプルな分類および回帰分類器の1つです。
kNNアルゴリズムは回帰問題にも分類問題にも使用できますが、通常は、類似のポイントが互いに近くにあるという仮定に基づいて動作する分類アルゴリズムとして使用されます。
分類問題の場合、クラス・ラベルは多数決に基づいて割り当てられます。つまり、特定のデータ・ポイントの周囲で最も頻繁に表されるラベルが使用されます。これは技術的には「相対多数」とみなされますが、文献では「多数決」という用語がより一般的に使用されています。これらの用語の違いは、「多数決」は技術的には50%を超える票を必要とし、これは主にカテゴリーが2つしかない場合に有効ですす。複数のカテゴリーがある場合。例:4つのカテゴリーがある場合、クラスについての結論を出すのに必ずしも50%の得票が必要というわけではありません。25%を超える投票でクラス・ラベルを割り当てることができます。ウィスコンシン大学マディソン校(University of Wisconsin-Madison)は、 こちらの例を挙げてこれをわかりやすくまとめています。
回帰問題では分類問題と同様の概念が使用されますが、この場合は、k個の最近傍の平均が取得され、分類についての予測が行われます。ここでの主な違いは、分類は離散値に使用されるのに対し、回帰は連続値に使用されることです。ただし、分類を行う前に、距離を定義する必要があります。最も一般的に使用されるのはユークリッド距離ですが、これについては後ほど詳しく説明します。
また、kNNアルゴリズムは「遅延学習」モデルのファミリーの一部でもあることにも注目してください。つまり、トレーニングを実行するのではなく、トレーニング・データセットの保存のみを実行します。これは、分類または予測が行われているときにすべての計算が行われることも意味します。すべてのトレーニング・データを保存するためにメモリーに大きく依存するため、インスタンス・ベースまたはメモリー・ベースの学習方法とも呼ばれます。
統計学者のEvelyn FixとJoseph Hodgesは、1951年に発表した論文でKNNモデルに関する最初のアイデアを提唱したとされています。一方、情報理論と統計学の専門家であるThomas Coverは、「Nearest Neighbor Pattern Classification(最近傍パターン分類)」という論文で2人の研究を深めています。これは、かつてほどの人気はありませんが、そのシンプルさと正確さから、今でもデータサイエンスで最初に学ぶアルゴリズムの1つです。ただし、データセットが大きくなるにつれて、KNNはますます非効率になり、全体的なモデルのパフォーマンスが低下するため、単純な推奨システム、パターン認識、データ・マイニング、金融市場予測、侵入検知などでよく使用されます。
要約すると、k最近傍アルゴリズムの目的は、特定のクエリー・ポイントの最近傍を識別し、そのポイントにクラス・ラベルを割り当てることです。これを実現するために、kNNにはいくつかの要件があります。
特定のクエリー・ポイントに最も近いデータ・ポイントを特定するには、クエリー・ポイントと他のデータ・ポイント間の距離を計算する必要があります。これらの距離メトリクスは、クエリー・ポイントをさまざまな領域に分割する決定境界を形成するのに役立ちます。一般的に、決定境界はボロノイ図で視覚化されます。
選択できる距離の測定方法はいくつかありますが、この記事では次の点についてのみ説明します。
ユークリッド距離(p=2): これは最も一般的に使用される距離測定であり、実数値のベクトルに限定されます。以下の式を使用して、クエリー・ポイントと測定対象の他のポイント間の直線を測定します。
マンハッタン距離(p=1):これも、2点間の絶対値を測定するためによく使われる距離メトリクスです。これは、市街地の道路を経由してある住所から別の住所まで移動する方法を示すグリッドで視覚化されることが多いため、「タクシー距離」または「市街地ブロック距離」とも呼ばれます。
ミンコフスキー距離:この距離測定は、ユークリッド距離とマンハッタン距離の測定基準を一般化した形式です。以下の式のパラメーター「p」を使用すると、他の距離メトリックを作成できます。ユークリッド距離は「p」が2の場合にこの式で表され、マンハッタン距離は「p」が1の場合に表されます。
ハミング距離: この手法は通常、ブール値または文字列ベクトルで使用され、ベクトルが一致しないポイントを識別します。そのため、これはオーバーラップ・メトリクスとも呼ばれています。これは次の式で表すことができます。
例えば、次の文字列があった場合、2つの値のみが異なるため、ハミング距離は2になります。
kNNアルゴリズムのk値は、特定のクエリー・ポイントの分類を決定するためにチェックされる近傍の数を定義します。例えば、k=1の場合、インスタンスは最も近い単一の隣接インスタンスと同じクラスに割り当てられます。
異なる値によって過剰適合または不足適合が発生する可能性があるため、kの定義はバランスを取る作業になる可能性があります。kの値が小さいと分散は高くなりますが、バイアスは弱くなります。一方、kの値が大きいとバイアスが強くなり、分散が低くなる可能性があります。kの選択は入力データに大きく依存します。外れ値やノイズの多いデータは、kの値が高いほどパフォーマンスが向上する可能性が高いためです。全体として、分類で同点にならないようにkを奇数にすることが推奨され、クロス検証戦術はデータセットに最適なkを選択するのに役立ちます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
さらに深く理解するために、Pythonとscikit-learn(sklearnとも呼ばれます)を使用して、kNNアルゴリズムについてさらに詳しく学習できます。Watson Studioのチュートリアルでは、このライブラリーの基本的な構文を学習できます。このライブラリーには、NumPy、pandas、Matplotlibなどの他の一般的なライブラリーも含まれています。次のコードは、kNNモデルを作成して予測する一例です。
kNNアルゴリズムは、主に分類を中心にさまざまなアプリケーションで利用されてきました。そのユースケースには次のようなものがあります。
他の機械学習アルゴリズムと同様、kNNにも長所と短所があります。プロジェクトやアプリケーションによっては、それが適切な選択となる場合とそうでない場合があります。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。