K近傍法(KNN)は、機械学習におけるシンプルな教師あり学習アルゴリズムです。分類や回帰タスクに用いられ、未知のデータが得られた際に、特徴空間上で最も距離が近い「k個」の過去データを参照し、多数決や平均によってそのデータのクラスや値を予測します。実装が容易で直感的に理解しやすい特徴があります。
K近傍法とは
K近傍法(KNN)は、機械学習における分類や回帰に用いられる、シンプルかつ強力な教師あり学習のアルゴリズムです。一言でいうと、「似たものは近くに集まる」という直感的な仮定に基づき、未知のデータを予測する際に、特徴空間の中で最も距離が近い「k個」の既存データを探索し、その多数決や平均値によって予測値を決定する手法です。
詳しく解説
K近傍法は、事前に入力データを学習して複雑な予測モデルを構築することはありません。代わりに、全ての訓練データをそのまま保持し、予測を行うタイミングでデータ間の距離を計算します。アルゴリズムの具体的な手順は以下の通りです。まず、未知のデータが入力された際、既存のすべてのデータとの間で「距離」を計算します。距離の測定には、一般的に「ユークリッド距離」や「マンハッタン距離」が用いられます。次に、計算された距離が最も小さい上位k個のデータを抽出します。そして、抽出したk個のデータに基づき予測を行います。分類タスクの場合は、k個のデータが属するクラスの中で最も多いもの(多数決)を予測結果とし、回帰タスクの場合は、k個のデータの目的変数の平均値を予測値とします。kの選定はモデルの精度に大きく影響します。kの値が小さすぎると「過学習」を引き起こしノイズに弱くなり、大きすぎるとデータの境界が曖昧になり「未学習」に陥ります。
具体例・使われ方
K近傍法の具体的な利用例として、画像認識や文字認識が挙げられます。手書き文字の画像データに対して、あらかじめラベル付けされたピクセル配置パターンとの距離を計算し、最も近い文字として分類します。また、おすすめシステム(レコメンデーション)では、ユーザーの購買履歴から趣味嗜好が最も似ているユーザーを特定し、その人たちが好んでいる商品を推薦します。医療分野では、患者の検査数値をもとに、過去のデータベースから最も類似した症状を持つ症例を抽出し、病気のリスクを予測することにも応用されます。
似た用語との違い
K近傍法と混同されやすい概念として「K平均法」があります。K近傍法が「教師あり学習」であり、既存の正解ラベル付きデータをもとに未知のデータのクラスを分類または予測するのに対し、K平均法は「教師なし学習」であり、ラベルのないデータを自動的にk個のグループ(クラスタ)に分けるクラスタリング手法です。名称に「K」が含まれ、距離の概念を利用する点では共通していますが、目的と仕組みが根本的に異なります。
注意点
K近傍法にはいくつかの重要な限界があります。予測のたびに全データとの距離を計算するため、データの件数や次元数(特徴量の数)が増えると計算量が爆発的に増加し、処理に時間がかかる「次元の呪い」という問題があります。また、特徴量ごとのスケール(値の範囲)が異なると、数値が大きい特徴量に距離計算が支配されてしまうため、事前にデータの標準化などの前処理が必須です。さらに、予測結果に対する明確な数式的根拠を説明することが難しいため、説明可能性が重視されるタスクでは注意が必要です。