2.3 予測の2つのアプローチ:最小二乗法とk-最近傍法
「どうやってデータから予測するか」という問いに対して、まったく異なる哲学を持つ2つの手法を比べます。 この2つを理解することで、機械学習の核心にある「バイアスとバリアンスのトレードオフ」を直感的に掴みましょう。
なぜ2つのアプローチを比べるのか
手元に100個のデータポイントがある。青いグループとオレンジのグループに分かれていて、 新しい点がどちらに属するかを予測したい。
どうすればいい?

一番シンプルな考え方は2つある。
「どうせ境界は直線だろう」
データ全体にフィットする直線(あるいは超平面)を引いて、その線で分類する。 「世界はシンプルだ」という強い仮定を置く代わりに、少ないデータでも安定した予測ができる。
「近くにいるものは同じグループだろう」
新しい点が来たら、それに一番近いk個のデータを見つけて多数決で決める。 仮定はほとんどない。データが複雑な分布をしていても対応できるが、 その分、予測は不安定になりやすい。
この節では、この2つのアプローチを数学的に定式化し、 どちらが「正解」かを探る旅に出発しましょう。 (ネタバレすると:どちらも「正解」であり「不正解」でもある)
線形モデルと最小二乗法
線形モデルの考え方は単純明快だ。入力変数$X = (X_1, X_2, \ldots, X_p)$に対して、出力$Y$をこう予測する:
たとえば2変数なら$\hat{Y} = \hat{\beta}_0 + X_1 \hat{\beta}_1 + X_2 \hat{\beta}_2$だ。$\hat{\beta}_0$ は切片(グラフで言えばY軸との交点)、$\hat{\beta}_1, \hat{\beta}_2$ は各変数の「効き具合」(重み)を表す。
数学的にはこれを行列とベクトルを使ってコンパクトに書ける:
「どの重みの組み合わせが一番いいか」を決めるのが最小二乗法だ。 予測値と実際の値のズレ(残差)の2乗和を最小化する:
RSS(Residual Sum of Squares、残差平方和)が何を意味するか、 実際に見てみよう。

アニメーションで確認できる通り、最初はズレ(残差)が大きい。 直線が最適な位置に動くにつれて、各点から直線への距離(残差)が縮まっていく。 この「残差の合計を最小にする」という目標が最小二乗法の本質だ。
RSS を最小化する $\beta$ を求めると、解析的な解が得られる:
この式の読み方:
- $\mathbf{X}$:すべてのデータをまとめた行列(行がデータ点、列が変数)
- $\mathbf{y}$:正解ラベルのベクトル
- この式全体は「データ全体を見て、残差の合計が最小になる重みを一発で計算する」公式
これを正規方程式の解という。 行列の逆行列を1回計算するだけで、最適な重みが求まる。 これが線形モデルの強みの一つだ。
分類に使う場合は、予測値$\hat{Y}$が0.5より大きければクラス1(オレンジ)、小さければクラス0(青)と判定する。 決定境界は$\{x : x^T \hat{\beta} = 0.5\}$という直線(または超平面)になる。
k-最近傍法(k-NN)
線形モデルは「データが直線的な構造を持つ」という強い仮定に依存している。 しかし現実のデータがそうとは限らない。
k-最近傍法(k-NN)は、まったく逆の哲学から出発する。 「新しい点 $x$ が来たら、訓練データの中で$x$ に最も近い$k$ 個の点を探し、そのラベルを多数決で決める」というものだ:
ここで $\mathcal{N}_k(x)$ は$x$ に最も近い$k$ 個の訓練データの集合を表す。
kの値によって境界の形が劇的に変わることを確認してみよう:

有効パラメータ数は約$N/k$ である。$k=1$ のときは$N$ 個(過学習)、$k$ が大きくなるほどパラメータ数が減り、モデルが単純になる。
2つのアプローチを比べる — バイアスとバリアンス
線形モデルとk-NNは、それぞれ異なる「リスク」を抱えている。
ここで2つの重要な概念を導入しよう:
モデルの「ズレ」。単純すぎるモデルが持つ系統的な誤差。 何度やっても同じ方向に外れ続ける性質。
例:真の境界が曲線なのに直線しか学べない場合
モデルの「ブレ」。訓練データが変わると予測がどれだけ変化するか。 不安定さを表す。
例:少しデータが変わるだけで予測が大きく変化する場合
各手法の特徴はこうなる:
では、どちらが優れているのか?実はどちらが有利かはデータの構造による。
データが生成されたシナリオを考えよう:

2つのクラスのデータが、それぞれ1つのガウス分布から生成されている。 真の決定境界は直線(超平面)であり、線形モデルがほぼ最適に機能する。
線形モデルが有利
各クラスのデータが、10個の小さなガウスクラスターの混合から生成されている。 真の決定境界は非線形で複雑。k-NNがより適切に機能する。
k-NNが有利
実際のデータには必ず「どちらのシナリオに近いか」という問いがある。 そして多くの場合、答えは「その中間」だ。 これが機械学習において「モデル選択」が重要な理由だ。
kとモデル複雑度の関係 — スペクトル上で眺める
k-NNにおける $k$ という数値は、 「どれだけ柔軟なモデルを使うか」のコントロールレバーだ。
線形モデルはこのスペクトルの「シンプル端」に位置する特殊なケースとも見なせる。
訓練誤差とテスト誤差がどう変化するか、グラフで確認してみよう:

グラフから読み取れること:
- 訓練誤差(青い曲線)は$k=1$ のとき常に0(完全過学習)。 kが大きくなるほど(単純なモデルほど)訓練誤差は上がる。
- テスト誤差(オレンジの曲線)は 適切な $k$ のとき最小になる。 kが小さすぎても大きすぎても、テスト誤差は上昇する。
- 最適な $k$ 付近(黄色の縦線)に「スイートスポット」がある。
右端(k=1、高複雑度):訓練データを丸暗記。 新しいデータへの汎化が悪い。これが過学習(Overfitting)。
左端(k=N、低複雑度):単純すぎてデータの本当の構造を捉えられない。 これが過少学習(Underfitting)。
中央付近:両者のバランスが取れており、汎化性能が最も高い。
線形モデルのテスト誤差は、中程度の $k$ のk-NNに近い性能 (自由度3相当)を示しているが、最適なk-NNには及ばない。 これはシナリオ2(混合ガウス)のような複雑なデータ構造では、 線形モデルの「直線しか引けない」という制約がボトルネックになるためだ。
まとめ
強い構造的仮定(線形性)を置く。安定しているが融通が利かない。
最小限の仮定のみ。柔軟だが不安定になりやすい。
安定さと柔軟さは常にトレードオフの関係にある。
普遍的な「最良」の手法は存在しない。データを見て判断する。