この記事では機械学習における「多重共線性」について、初心者の方にも分かりやすく解説していきたいと思います。
多重共線性とは何か?
多重共線性とは、機械学習モデルで使用する特徴量(データの特性を表す値)同士が強く関連している状態のことです。
簡単に言えば、「似たような情報を持つデータが複数ある」という状況です。
線形モデルの基本
機械学習の代表的な手法である線形回帰は、次のような形で表されます:
家賃 = 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:過学習につながる
このような不安定なモデルは、学習データにはよく合うかもしれませんが、新しいデータに対しては予測精度が低下します。これが「過学習」と呼ばれる問題です。
もう少し一般的な説明
多重共線性があると、次のような問題が生じます:
- 方程式を解くのが難しくなる: 数学的には、係数を求める方程式の解が「一意に定まらない」状態になります。これは「x + y = 10」だけでは x と y の値が一意に決まらないのと似ています。
- 小さな変化が大きな影響を与える: 学習データにわずかなノイズや誤差があると、係数の値が大きく変わってしまいます。
- 特徴量の個別の重要度が分からなくなる: 「広さ」と「家賃」の関係を知りたいのに、「広さ(㎡)」と「広さ(畳)」のどちらが重要なのか判断できなくなります。
多重共線性の解決方法
- 特徴量の選択: 相関の高い特徴量の一方を削除する 例:「広さ(㎡)」か「広さ(畳)」のどちらか一方だけを使用
- 主成分分析(PCA): 複数の特徴量を組み合わせて、新しい独立した特徴量を作る
- 正則化: 係数が極端な値にならないように制限する手法
まとめ
多重共線性は、似た情報を持つ特徴量が複数あるときに発生する問題です。これにより、予測式の係数が不安定になり、モデルの予測精度が低下します。
簡単に言えば、「家賃 = a × 広さ(㎡) + b × 広さ(畳) + c × 駅距離(分)」という式で、a と b の値が安定せず、学習データのわずかな違いで大きく変わってしまうのです。そして、この不安定さが新しいデータに対する予測精度の低下につながります。
機械学習モデルを作る際は、特徴量同士の関係を事前に調べ、多重共線性の問題に注意することが重要です。