【第58回】AIは近くの仲間を見て決める?k近傍法とは
新しいデータが来たとき、「近いものは似ている」と考える方法があります。
そのシンプルな考え方を使うのがk近傍法です。
この記事では、近くのデータを参考に判断する仕組みをやさしく解説します。
1. 読み方
ケーきんぼうほう (k-Nearest Neighbors / k-NN)
2. 意味(定義)
「新しいデータが入ってきたとき、その近くにある『k個』のデータを見て、多数決で答えを決める手法」のことです。
k: 「何個の近所の人を見るか」という数です。(例:k=3 なら、一番近い3人を見ます)
近傍 (Neighbors): 新しいデータの「近く」にあるデータのことです。
仕組み:
新しいデータ(未知のデータ)がやってくる。
そのデータから「距離」が近い順に、k 個のデータを探す。
見つけた k 個のデータの「クラス(種類)」を数える。
一番多かったクラスを、新しいデータの答えとする。
【クラスメイトの流行の例え】 あなたが「次に流行るスニーカー」を知りたいとします。
k=1 の場合: あなたの隣に座っている親友(一番近い人)が「この靴が流行ってるよ!」と言ったら、あなたも「これが流行りだ!」と判断します。(極端な意見に左右されやすい)
k=5 の場合: あなたの周りの5人の友達に聞き、4人が「流行ってる」と言い、1人が「流行ってない」と言ったら、「これは流行りだ!」と判断します。(周囲の平均的な意見を反映しやすい)
3. 歴史・背景
k近傍法は、非常に古くからある手法です。特別な学習プロセス(モデルを作る作業)を必要とせず、データそのものを使って予測を行うため、「怠惰(たいだ)学習(Lazy Learning)」とも呼ばれます。
「学習」といっても、何か複雑な数式を作るのではなく、「単にデータを保存しておいて、後で近くのものを探すだけ」という非常にシンプルな仕組みです。そのため、計算量(コンピュータの負担)は、データが増えれば増えるほど大きくなってしまうという課題もありますが、そのシンプルさゆえに、直感的なアルゴリズムとして長く使われています。
4. 比較・対比(似た用語との違い)
ここが試験で狙われる「整理」ポイントです!
k近傍法 vs 決定木/SVM ★重要
k近傍法: 「学習」というプロセスがほとんどない(データを保存するだけ)。新しいデータが入るたびに、近くのものを探し直す必要がある。
決定木/SVM: 事前に「ルール」や「境界線」を計算して「モデル」を作っておく。新しいデータが来ても、そのルールに当てはめるだけなので、予測は一瞬で終わる。
k の値による違い ★超重要
k が小さすぎる(例: k=1): 近くの一人の極端な意見に振り回されてしまう(過学習しやすい)。
k が大きすぎる(例: 全データ数): 周囲全員の意見を聞きすぎて、個別の特徴が消えてしまい、みんな同じ答えになってしまう(未学習になりやすい)。
5. 活用シーン(どんな問題に使うか)
レコメンドシステム: 「この商品を買った人は、他にこれも買っています」という、似たユーザーへの提案。
画像検索: 「この写真と見た目が似ている写真を、データベースから探す」。
異常検知: 普段の動き(データ)の近くに、変な動き(外れ値)がないかをチェックする。
6. G検定での出題傾向
G検定では、以下のポイントが狙われます!
「怠惰学習 (Lazy Learning)」という用語: 学習プロセスを省略し、予測時に計算を行う性質のこと。
「距離」の概念: 「ユークリッド距離」など、データ間の「近さ」をどう測るかという仕組み。
k の値による影響: k が小さいと過学習(Overfitting)、大きいと未学習(Underfitting)になりやすいというトレードオフの関係。
計算コストの課題: データ量が増えると、毎回「近くのものを探す」ための計算が非常に重くなるという弱点。
7. G検定の例題
【問題1:手法の性質】
k近傍法(k-Nearest Neighbors)の説明として、最も適切なものはどれですか?
A. 事前に複雑な数式や境界線を計算して「モデル」を作成し、そのルールに基づいて予測を行う手法である。
B. 新しいデータが入力された際に、既存のデータの中から距離が近い k 個のデータを参照して、多数決などでクラスを決定する手法である。
C. 複数の決定木を組み合わせることで、単一の決定木の弱点である過学習を抑制する手法である。
D. 特徴量を高次元空間へ写像することで、線形分離不可能なデータを分離可能にする手法である。
【問題2:ハイパーパラメータの影響】
k近傍法において、近傍数 k の値を極端に小さく(例:k=1)設定した場合に起こりやすい現象として、適切なものはどれとしたものですか?
A. モデルが単純化されすぎてしまい、訓練データにもテストデータにも適合できない「未学習(Underfitting)」の状態になる。
B. 境界線が滑らかになりすぎるため、データの細かな特徴を捉えられなくなる。
C. 個々のデータ点のノイズ(誤差)に敏感に反応してしまい、「過学習(Overfitting)」の状態になりやすくなる。
D. 計算量が大幅に減少するため、予測のスピードは向上するが、精度は著しく低下する。
8. 例題の回答と解説
【問題1 の回答】
正解:B
【解説】 k近傍法は、あらかじめルールを作るのではなく、新しいデータが入ってきたときに「近くの k 個」を見て判断します。A は決定木やSVMなどの「モデル構築型」の説明、C はランダムフォレスト等のアンサンブル学習、D はカーネル法の説明です。
【問題2 の回答】
正解:C
【解説】 k=1 ということは、「一番近くにいる一人」の意見をそのまま信じるということです。もしその一人がたまたま「間違い(ノイズ)」を含んでいた場合、モデルはそれを真実だと思い込んでしまいます。これが「過学習(Overfitting)」の状態です。逆に k を大きくしすぎると、全体的な傾向に引きずられすぎて「未学習(Underfitting)」になります。
