見出し画像

【第57回】AIは近くの仲間を見て決める?k近傍法とは

前回のロジスティック回帰では、「境界線を引いて白か黒かを分ける」という方法を学びました。でも、AIの判断方法にはもっと直感的な「周りの様子を見て決める」というやり方もあるんです。まるで新しいクラスに入ったとき、「隣に座っている人が〇〇なら、自分も〇〇かな?」と考えるような、そんなシンプルで強力な手法について解説します!


1. 読み方

  • k近傍法 = けいきんぼうほう (英語では k-Nearest Neighbors と言い、略して k-NN と呼ばれます)


2. 意味(定義)

k近傍法を一言でいうと、「未知のデータがあるとき、その近くにある『k個』のデータの多数決で正体を決める手法」のことです。

難しい言葉を使わずに例えると、「似た者同士は近くに集まる」という直感をそのままAIにしたようなものです。

例えば、目の前に「正体不明のフルーツ」があるとします。

  1. まず、そのフルーツと「似ている(距離が近い)」フルーツを、周りからk個(例えば3個)選び出します。

  2. 選んだ3個のうち、2個が「リンゴ」で1個が「オレンジ」だったとします。

  3. 多数決の結果、「この正体不明のフルーツは、たぶんリンゴだ!」と判定します。

【判定のステップ】 ① 新しいデータが来た! ② すでに正体がわかっているデータの中から、距離が近い順にk個を探す。 ③ そのk個の中で一番多かったグループに分類する。


3. 歴史・背景

k近傍法は、機械学習の中でも非常に初期からあるシンプルな手法です。

この手法の面白いところは、AIが事前に「こういうのがリンゴだ」という複雑な計算式(モデル)を一生懸命作らないことです。データが来たら、その場その場で「近くに誰がいるか」を確認するだけ。そのため、専門用語で「怠惰学習(Lazy Learning)」と呼ばれたりします。

「わざわざ勉強しなくても、その場で周りを見れば答えが出るじゃないか」という、ある意味とても効率的な考え方に基づいています。この「距離で似ているものを探す」という概念は、今のAIがデータを処理する際の基礎的な考え方として今も大切にされています。


4. 比較・対比(似た用語との違い)

前回の「ロジスティック回帰」と比べてみましょう。

【ロジスティック回帰】

  • やり方: 全体のデータを眺めて、きれいに分ける「境界線」を一本引く。

  • 判断: 新しいデータが来たとき、「線より右か左か」だけで瞬時に決める。

  • 特徴: 一度線を引いてしまえば、元のデータはもう見なくていい。

【k近傍法(k-NN)】

  • やり方: 境界線は引かず、とりあえずデータを全部持っておく。

  • 判断: 新しいデータが来たとき、「近くに誰が何人いるか」を数えて決める。

  • 特徴: 判定のたびに、持っているデータ全部と距離を比べるので、データ量が多いと時間がかかる。


5. 活用シーン(実社会のどこで、どんな問題に使うか)

① おすすめ商品(レコメンドシステム) 「あなたと好みが似ている人(=データ上の距離が近い人)」を数人探し、その人たちが買っているけれど、あなたはまだ買っていない商品を「あなたにおすすめです!」と提案する仕組みに使われています。

② 簡易的なパターン認識(異常検知など) 例えば、工場の製品検査で「正常な製品」のデータがたくさんある場合、新しくできた製品が「正常なグループから遠く離れている」なら、「これは異常品かもしれない」と判定させることができます。


6. G検定での出題傾向

G検定では、特に「kの値によって結果がどう変わるか」という点がよく狙われます。

  • kが小さすぎる場合(例:k=1): 直近の1人だけを見るので、たまたま変なデータが隣にいただけで判定を間違えます。これを「過学習(学習しすぎ)」に近い状態と言います。

  • kが大きすぎる場合(例:k=100): 周りを気にしすぎて、結局「一番数が多いグループ」という単純な答えになりがちです。これを「未学習」に近い状態と言います。

また、「距離を測る(ユークリッド距離など)」という概念と一緒に問われることが多いので注意してください。


7. G検定の例題

【問題1:最頻出(基礎的な定義)】

k近傍法(k-NN)の説明として、最も適切なものはどれか?

A. データを代表する中心点を作り、その中心点との距離で分類する手法である。
B. 新しいデータに対し、距離が近いk個のデータの多数決でクラスを決定する手法である。
C. データを階層的に分けていき、最終的に葉ノードで分類する手法である。
D. 境界線を引いて、確率的にどちらのクラスに属するかを判定する手法である。

【問題2:頻出(特徴に関する問題)】

k近傍法における「k」の値に関する記述として、正しいものはどれか?

A. kの値が大きければ大きいほど、常に予測精度が向上する。
B. k=1とした場合、ノイズ(外れ値)の影響を受けにくくなる。
C. kの値が極端に小さいと、局所的な変動に影響されやすく(過学習気味に)なる。
D. kの値は、必ずデータの総数と同じにする必要がある。

【問題3:ひっかけ(勘違いしやすいポイント)】

k近傍法の特徴に関する記述として、正しいものはどれか?

A. 学習段階で複雑な数式(モデル)を作成するため、予測時の計算が非常に速い。
B. 教師なし学習の代表的な手法であり、正解ラベルがなくても分類できる。
C. データをメモリに保持したまま判定を行うため、「怠惰学習」と呼ばれることがある。
D. 境界線が直線的に引かれるため、複雑な分布を持つデータには全く使えない。


8. 7の例題の回答と解説

【問題1:回答】 B

【解説】 正解はBです。k近傍法の基本は「近いk個のデータの多数決」です。Aはk-means(k平均法)などの説明、Cは決定木の説明、Dはロジスティック回帰などの説明です。

【問題2:回答】 C

【解説】 正解はCです。

  • A:kが大きすぎると、大まかになりすぎて精度が落ちます。

  • B:k=1だと、たまたま隣にいた1つの「変なデータ」に完全に影響されるため、ノイズに弱くなります。

  • D:kは適切に選ぶ必要があり、全データ数にする必要はありません。

【問題3:回答】 C

【解説】 正解はCです。k近傍法は事前にモデル(数式)を作らず、判定時に初めて計算を始めるため、「怠惰(Lazy)」と呼ばれます。

  • A:予測時に毎回全データと距離を測るため、むしろ計算に時間がかかります。

  • B:正解(ラベル)を見て多数決をするので、「教師あり学習」です。

  • D:境界線は直線ではなく、データの分布に合わせてグニャグニャと柔軟に決まるため、複雑なデータにも対応できます。


9. Ankiアプリ用(CSV形式)

k近傍法(k-NN)の基本的な判定方法は?,近くにあるk個のデータの多数決でクラスを決めること。
k近傍法が「怠惰学習」と呼ばれる理由は?,学習段階でモデルを作らず、予測時に初めて計算を行うから。
k近傍法でkの値が極端に小さい(k=1など)時のデメリットは?,ノイズや外れ値の影響を受けやすくなる(過学習気味になる)。
k近傍法は「教師あり学習」と「教師なし学習」のどちらか?,教師あり学習
k近傍法でデータ同士の「似ている度合い」を測るために使われる指標は?,距離(ユークリッド距離など)


📝 総評・まとめ

お疲れ様でした!k近傍法は、私たちが日常的に行っている「似ている人たちの意見を参考にする」という感覚に近い、とても人間らしいAIの手法でしたね。 「kの値(何人まで参考にするか)」で結果が変わるというポイントさえ押さえれば、もうバッチリです!

✅ 絶対に覚えて!

  • k近傍法 = 「近くのk個の多数決」で決める!

  • 怠惰学習 = 事前にモデルを作らず、その場で計算する!

  • kの調整 = 小さすぎるとノイズに弱く、大きすぎると大雑把になる!


🚀 次回予告 今回は「近くの仲間」を見て決めましたが、AIには「はい/いいえ」の質問を繰り返して、効率よく正解にたどり着く方法もあります。

【第58回】AIは質問を繰り返して答えを見つける?決定木とは


【第58回】へ進む

【第4章】へ戻る

📚 シリーズトップへ戻る

✅ この記事が役に立ったら「スキ」で応援してください!
あなたの応援が、次の解説を作るエネルギーになります!🚀


いいなと思ったら応援しよう!