次元削減:PCA の入口

このページは、特徴数 d が大きすぎて扱いにくいときに検討する 次元削減の代表例として、**主成分分析(PCA, Principal Component Analysis)**を初学者向けに短く紹介するノートです(厳密な数理は扱いません)。

何をしたいか

元の $d$ 本の特徴を、そのまま捨てるのではなく、より少ない $k$ 本($k < d$)の新しい特徴へ写像して、

  • 可視化しやすくする
  • 計算量やノイズを抑える
  • 多重共線性を緩和する

などの目的を達成しやすくします。

PCA のざっくりしたイメージ

PCA は、データのばらつき(分散)が 大きく残る方向を優先して、新しい座標軸(主成分)を作る考え方です。
結果として得られる新しい特徴は 元特徴の線形結合として表現されます。

中心化とは(PCA の前処理)

PCA の前に行う 中心化は、各特徴列ごとに「平均との差」へ変換する操作です。
特徴 $j$ の値 $x_{ij}$ を、列平均 $\mu_j$ を使って

  • $x'{ij} = x{ij} - \mu_j$

に置き換えます。

例として値が [20, 25, 30] の列なら、平均は 25 なので中心化後は [-5, 0, +5] です。
このため中心化後に 正と負 が現れます(正は平均より大きい、負は平均より小さい、0 は平均ちょうど)。

母平均と標本平均(前提)

  • 母平均 $\mu$:本来対象にしたい全体(母集団)の真の平均
  • 標本平均 $\bar{x}$:手元のデータ(標本)から計算した平均

統計は、未知の $\mu$ を $\bar{x}$ でどこまでうまく推定できるかを扱う学問です。
実務では母平均 $\mu$ は未知であることが多いため、中心化や分散計算でも $\bar{x}$ を使う場面が基本になります。

共分散行列はどう作るか

中心化済みのデータ行列を $X_c \in \mathbb{R}^{N \times d}$ とすると、共分散行列 $S$ は

  • $S = \frac{1}{N-1} X_c^\top X_c$

で作れます(標本共分散の典型)。このとき形は

  • $X_c^\top$: $d \times N$
  • $X_c$: $N \times d$
  • $S$: $d \times d$

になります。
つまり、学習データが $N \times d$ でも、共分散行列は通常1つの $d \times d$ です($N \times d \times d$ にはしない)。

「全ペアを見る」の意味

特徴が 5 列なら、(A,B)(C,E) のように 列ペアごとに共分散を1つずつ計算し、結果を 5×5 の表に並べます。
ここで各ペアの計算は、長さ N の2列(N×1N×1)を同じ行どうしで掛けて合計する処理です。最後に1つの数値へ集約されます。

なぜ $N-1$ で割るのか(直感)

中心化で使う標本平均 $\bar{x}$ は、そのデータに最も合う中心です。
そのため $\sum (x_i-\bar{x})^2$ は小さめになりやすく、$N$ で割ると分散・共分散を過小評価しやすくなります。

もう1つの直感は、中心化後の偏差 $z_i=x_i-\bar{x}$ が

  • $z_1 + z_2 + \cdots + z_N = 0$

を必ず満たす点です。制約が1本あるので、自由に動ける情報量は実質 N-1
この1自由度ぶんを補正する標準的な分母が $N-1$(ベッセル補正)です。

注意(短く)

  • 解釈は元の列ほど直感に直結しないことがある(主成分の意味を読む必要が出る)
  • 前処理(スケーリング)の有無で結果が変わりやすい
  • 「次元を減らす」手法は PCA 以外にも多い(用途次第)

関連