k近傍法 (G検定)

k近傍法

1. 定義と概要

k近傍法(k-NN、k-Nearest Neighbor)とは、予測したい新しいデータ点について、距離が近い順にk個の訓練データを選ぶ教師あり学習アルゴリズムです。特徴量(データがもつ個々の測定項目)を軸にした特徴量空間(データの特徴を数値の座標として表した仮想的な空間)上で、距離の近さをもとに参照するデータを絞り込みます。分類問題ではその多数決、回帰問題ではその平均値を予測結果とします。

代表的な題材としては、がく片や花弁の大きさが近い既知の花k個の品種を多数決にかけ、未知の花の品種を推定するアイリス分類が扱われます。単純な仕組みでありながら分類にも回帰にも使える汎用性の高さが、入門的な手法として広く採用される理由です。

従来の統計的な予測手法では、訓練データから回帰係数などのパラメータ(モデルの振る舞いを決める内部の数値)を推定してモデルを構築し、そのモデルに新しいデータを当てはめて予測する流れが一般的でした。k近傍法はこの流れを取らず、訓練データそのものを保持するだけで明示的なモデルを組み立てず、予測のたびにはじめて距離計算を行います。

この方式は怠惰学習と呼ばれ、訓練の段階でモデルを作る手法と対比される考え方です。仕組みが単純で非線形な境界にも対応できることから、機械学習の入門的な手法として広く扱われています。

2. 試験対策ポイント

まず押さえておきたいのが、k近傍法の怠惰学習という性質です。学習の段階でパラメータ推定やモデル構築を行わず訓練データをそのまま保持するため、予測のたびにすべての訓練データとの距離計算が発生し、訓練データが多いほど予測に時間がかかるという特徴とセットで扱われます。あらかじめモデルを組み立てておく手法に比べ、予測時の計算負荷が大きくなりやすい点が実務上の制約にもなります。

kの値が予測結果に与える影響も重要なテーマです。kが小さいと少数の近傍だけに結果が左右されやすくノイズに敏感になり、過学習(訓練データに合わせすぎて未知のデータへの対応力が落ちる状態)気味になってバリアンス(訓練データのわずかな違いで予測結果が大きく変わってしまう度合い)が増加します。反対にkが大きいとクラス境界が滑らかになりすぎて単純化され、学習不足気味になってバイアス(予測が単純化されすぎて実態からずれる度合い)が増加します。

kの大小と、そのときに起きやすい現象の対応は次のとおりです。

kの値 クラス境界のふるまい 増えやすい誤差
小さい 少数の近傍に左右され、ノイズに敏感になる バリアンスが増加し、過学習気味になる
大きい 境界が滑らかになりすぎて単純化される バイアスが増加し、学習不足気味になる

このバイアスとバリアンスのトレードオフの関係に加え、多数決が同数で割れないよう奇数のkを選ぶ慣行も押さえておきたいポイントです。

距離の計算方法も試験で扱われる要素です。一般にはユークリッド距離(2点間を直線で結んだときの距離)が用いられますが、距離をもとにした手法である以上、特徴量ごとの単位や尺度をそろえる正規化・標準化(前処理として単位や尺度を統一する作業)が欠かせません。単位の異なる特徴量をそろえずに距離計算を行うと、値の大きい特徴量だけに予測結果が引きずられてしまいます。

さらに、特徴量の数が増えるほどデータ同士の距離の差が薄れ近さという考え方の意味が弱まる次元の呪いという現象も、高次元データへの適用が不向きになる制約として扱われます。

3. 関連概念との比較・相違点

名称が似ているk-means法(k平均法)との違いは、重要なテーマです。k近傍法は正解ラベルを使う教師あり学習で分類や回帰を行うのに対し、k-means法は正解ラベルを使わずデータをk個のクラスタに分ける教師なし学習(クラスタリング)にあたります。

kが意味する内容も異なり、k近傍法のkは「参照する近傍データの数」を指しますが、k-means法のkは「作るクラスタの数」を指します。2つの手法の違いを観点ごとに並べると、次のようになります。

観点 k近傍法 k-means法(k平均法)
学習の枠組み 正解ラベルを使う教師あり学習 正解ラベルを使わない教師なし学習
行うこと 分類や回帰の予測 データをk個のクラスタに分けるクラスタリング
kが指すもの 参照する近傍データの数 作るクラスタの数

学習の枠組みが根本から異なる点が、両者の最大の違いであり、名前の類似だけで同一視すると誤解を招きます。学習方式の違いとkが指す対象の違いは、いずれも取り違えやすい点として整理しておきたいところです。

同じ教師あり学習の分類手法であるサポートベクターマシン(SVM)との違いは、モデルを作るかどうかにあります。SVMは訓練の段階でマージン(クラスの境界線と最も近いデータ点との間の余白)を最大化する境界を学習し、そのモデルを保持して予測に用います。一方でk近傍法は訓練の段階でモデルを作らず、訓練データそのものを保持する怠惰学習に分類される点が異なります。

怠惰学習であるk近傍法は予測のたびに訓練データ全体との距離計算をやり直すのに対し、SVMは一度学習した境界だけを参照すればよく、新しいデータへの向き合い方がまったく異なります。同じ分類タスクを扱えても、学習の進め方の枠組みがまったく違うことになります。

4. ビジネス・実務での活用シナリオ

小売業のレコメンデーションでは、購買履歴が似ている利用者をk人見つけ、その利用者層がよく購入する商品を推薦する仕組みの基礎的な考え方として使われています。これは協調フィルタリング(似た好みを持つ利用者のデータをもとにおすすめを決める仕組み)の土台にあたる発想であり、似た嗜好の集団から次の一手を導く効果があります。

医療診断支援の分野では、過去の患者データの中から症状や検査値が近いk件の症例を参照し、疾患の分類を補助する初期的なスクリーニングに用いられています。経験の少ない場面でも、過去の類似事例との照合によって判断材料を得られる点が実務上の効果です。

画像・文字認識の分野でも、手書き文字やパターン画像を特徴量空間上で近い既存サンプルとの多数決によって分類する初期的な手法として使われています。実装の単純さから、より複雑なモデルの性能を測る比較のベースラインとしても採用されています。

5. 要点まとめ

  • k近傍法は新しいデータに近いk個の訓練データの多数決(分類)または平均(回帰)で予測する教師あり学習アルゴリズムで、訓練時にモデルを作らない怠惰学習に分類されます。
  • kの値は小さいと過学習気味、大きいと学習不足気味になるバイアスとバリアンスのトレードオフの関係にあり、距離計算には一般にユークリッド距離が使われ、高次元データでは次元の呪いという制約が生じます。
  • 名称が似るk-means法は教師なしのクラスタリング手法であり、教師あり学習であるk近傍法とは学習の枠組みが異なります。

6. 確認問題

問1k近傍法は、予測したいデータ点に距離が近いk個の訓練データを参照し、分類問題では多数決によって結果を出力する。

解答・解説をみる

○ 正しい

距離が近い順にk個の訓練データを選び、分類なら多数決、回帰なら平均値で予測するのがk近傍法の基本的な仕組みです。この参照方式が怠惰学習という性質の土台になっています。

問2k近傍法は訓練データから回帰係数などのパラメータを推定してモデルを構築し、そのモデルを用いて新しいデータの予測を行う。

解答・解説をみる

× 誤り

k近傍法は怠惰学習に分類され、訓練の段階でパラメータを推定する処理を行いません。正しくは、訓練データをそのまま保持し、予測のたびにはじめて距離計算を行う手法です。パラメータ推定型のモデルと混同した記述にあたります。

問3kの値を大きくすると、クラス境界はより滑らかになりモデルは単純化する方向に働く。

解答・解説をみる

○ 正しい

kを大きくすると多くの近傍の多数決になるため境界が滑らかになり、バイアスが増加します。反対にkを小さくするとバリアンスが増加し、過学習気味になります。