機械学習における「多重共線性の罠」が起きる理由とは?

この記事では機械学習における「多重共線性」について、初心者の方にも分かりやすく解説していきたいと思います。

 

多重共線性とは何か?

多重共線性とは、機械学習モデルで使用する特徴量(データの特性を表す値)同士が強く関連している状態のことです。

簡単に言えば、「似たような情報を持つデータが複数ある」という状況です。

 

線形モデルの基本

機械学習の代表的な手法である線形回帰は、次のような形で表されます:

家賃 = a × 部屋の広さ + b × 駅からの距離 + c × 築年数 + ...

数式で表すと:

y = a₁x₁ + a₂x₂ + a₃x₃ + ... + a₍ₙ₎x₍ₙ₎

ここで:

  • y は予測したい値(例:家賃)
  • x₁, x₂, x₃… は特徴量(例:部屋の広さ、駅からの距離など)
  • a₁, a₂, a₃… は「係数」または「重み」と呼ばれる値

機械学習の目的は、これらの係数 a₁, a₂, a₃… の最適な値を見つけることです。

具体例:賃貸物件データの場合

以下のような賃貸物件データで家賃予測モデルを考えてみましょう:

物件 広さ(㎡) 広さ(畳) 駅距離(分) 家賃(万円)
A 20 12 5 8
B 25 15 10 9
C 30 18 15 10
D 35 21 5 12

このデータを使って、次のような予測式を作りたいとします:

家賃 = a × 広さ(㎡) + b × 広さ(畳) + c × 駅距離(分)

多重共線性で何が起きるのか?

問題点1:係数の値が不安定になる

「広さ(㎡)」と「広さ(畳)」は強い相関関係があります。実際、1畳 ≈ 1.65㎡ なので、ほぼ比例関係です。

多重共線性がある場合、様々な係数の組み合わせが同じくらい「良い」予測になってしまいます。

例えば:

  • パターン1: 家賃 = 0.3 × 広さ(㎡) + 0 × 広さ(畳) – 0.1 × 駅距離(分)
  • パターン2: 家賃 = 0 × 広さ(㎡) + 0.5 × 広さ(畳) – 0.1 × 駅距離(分)
  • パターン3: 家賃 = 0.15 × 広さ(㎡) + 0.25 × 広さ(畳) – 0.1 × 駅距離(分)

これらのパターンはすべて、サンプルデータに対して同じくらい良い予測を行います。なぜなら「広さ(㎡)」と「広さ(畳)」は実質的に同じ情報だからです。

少しだけ学習データが変わるだけで、係数の値が大きく変動してしまいます。これが「不安定」であるということです。

問題点2:具体例で見る予測の不安定さ

新しい物件Eのデータを考えてみましょう:

  • 広さ:22㎡
  • 広さ:13.3畳(通常の換算)
  • 駅距離:8分

パターン1の場合の予測:

家賃 = 0.3 × 22 + 0 × 13.3 - 0.1 × 8 = 6.6 - 0.8 = 5.8万円

パターン2の場合の予測:

家賃 = 0 × 22 + 0.5 × 13.3 - 0.1 × 8 = 6.65 - 0.8 = 5.85万円

これらは近い値ですが、実際の不動産データでは「広さ(㎡)」と「広さ(畳)」の関係が完璧に比例していないことがあります。

例えば、物件Eの畳数が少し異なっていたら:

  • 広さ:22㎡
  • 広さ:12畳(通常より少し小さい)
  • 駅距離:8分

パターン1の場合の予測:

家賃 = 0.3 × 22 + 0 × 12 - 0.1 × 8 = 6.6 - 0.8 = 5.8万円

パターン2の場合の予測:

家賃 = 0 × 22 + 0.5 × 12 - 0.1 × 8 = 6.0 - 0.8 = 5.2万円

わずかな違いで予測結果が大きく変わってしまいました!

問題点3:過学習につながる

このような不安定なモデルは、学習データにはよく合うかもしれませんが、新しいデータに対しては予測精度が低下します。これが「過学習」と呼ばれる問題です。

もう少し一般的な説明

多重共線性があると、次のような問題が生じます:

  1. 方程式を解くのが難しくなる: 数学的には、係数を求める方程式の解が「一意に定まらない」状態になります。これは「x + y = 10」だけでは x と y の値が一意に決まらないのと似ています。
  2. 小さな変化が大きな影響を与える: 学習データにわずかなノイズや誤差があると、係数の値が大きく変わってしまいます。
  3. 特徴量の個別の重要度が分からなくなる: 「広さ」と「家賃」の関係を知りたいのに、「広さ(㎡)」と「広さ(畳)」のどちらが重要なのか判断できなくなります。

多重共線性の解決方法

  1. 特徴量の選択: 相関の高い特徴量の一方を削除する 例:「広さ(㎡)」か「広さ(畳)」のどちらか一方だけを使用
  2. 主成分分析(PCA): 複数の特徴量を組み合わせて、新しい独立した特徴量を作る
  3. 正則化: 係数が極端な値にならないように制限する手法

まとめ

多重共線性は、似た情報を持つ特徴量が複数あるときに発生する問題です。これにより、予測式の係数が不安定になり、モデルの予測精度が低下します。

簡単に言えば、「家賃 = a × 広さ(㎡) + b × 広さ(畳) + c × 駅距離(分)」という式で、a と b の値が安定せず、学習データのわずかな違いで大きく変わってしまうのです。そして、この不安定さが新しいデータに対する予測精度の低下につながります。

機械学習モデルを作る際は、特徴量同士の関係を事前に調べ、多重共線性の問題に注意することが重要です。