共分散行列とは、複数の変数(多次元データ)間における分散と共分散をグリッド(行列)状に並べたものです。データの各変数単体のばらつき(分散)と、異なる変数間の連動性(共分散)を同時に表現でき、機械学習における次元削減や特徴抽出、データの分布の理解に不可欠な基礎概念となっています。
共分散行列とは
共分散行列とは、複数の特徴量(変数)を持つデータセットにおいて、それぞれの変数がどの程度ばらついているか(分散)と、変数同士が互いにどのように連動して変化するか(共分散)を一覧表(行列)の形式で整理したものです。
詳しく解説
共分散行列は、データ分析や機械学習における多変量解析の基本的な道具です。d個の特徴量があるとき、共分散行列はd行d列の正方対称行列になります。対角成分には各特徴量自身の「分散」が入り、非対角成分には異なる特徴量間の「共分散」が入ります。共分散が正のときは、一方の変数が大きくなると他方も大きくなる傾向を示し、負のときは一方が大きくなると他方が小さくなる傾向を示します。値がゼロに近い場合は無相関を意味します。この行列は、データの広がり具合や傾きを多次元空間における楕円体として表現することができ、データの全体的な形状を把握するために極めて重要です。
具体例・使われ方
機械学習の分野において、共分散行列はデータの次元削減手法である「主成分分析」で直接使用されます。主成分分析では、データの共分散行列から固有値と固有ベクトルを計算し、データが最も大きく分散している方向を特定して次元を削減します。また、異常検知で用いられる「マハラノビス距離」の計算や、ガウス混合モデル(GMM)を用いたクラスタリングにおいても、データの分布の形状を定義するために共分散行列が不可欠です。
似た用語との違い
共分散行列と混同されやすいのが「相関係数」を並べた相関係数行列です。共分散はデータのスケール(単位の大きさ)に影響を受けるため、例えば身長と体重のように単位が異なると、数値の絶対値だけでは関係の強さを比較しにくくなります。一方、相関係数は共分散を各変数の標準偏差で割ることで、単位の影響を排除し-1から1の範囲に正規化したものです。共分散行列はデータの元のスケール情報を保持している点、相関係数は純粋な関係性の強さのみを示す点で異なります。
注意点
共分散行列は変数間の線形な関係しか捉えることができません。非線形な関係がある場合、共分散の値はゼロに近くなり、関係性を見落とす危険性があります。また、外れ値に非常に敏感であるため、一部の極端なデータによって行列全体が大きく歪んでしまう性質があります。さらに、特徴量の数(次元数)がデータ数に比べて非常に多い場合、共分散行列の逆行列を安定して計算できなくなるため、正則化などの対策が必要です。