1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

主成分分析が固有値問題に行きつくまで

Last updated at Posted at 2022-12-19

はじめに

本記事では特徴量が2つの場合の例を用いて、主成分分析が固有値問題に帰着する過程を追います。主成分分析についての概要は他の投稿に譲り、数式をこねくり回すことを中心に説明をしていきます。初学者ですので至らない点がありましたらご指摘をお願いします。

今回は、身長と体重という2つの特徴量を持つデータセットを考えます。

身長($x_1$) 体重($x_2$)
1 170 60
2 154 48
$\vdots$ $\vdots$ $\vdots$
$i$ 185 80

この2つの特徴量に主成分分析を施したとき、おそらく、ある人の体格を表すような特徴量が第1主成分になると考えられます。そこで、$z_1$を第1主成分、$z_2$を第2主成分とします。

主成分分析では情報量をできるだけ保持したまま特徴量を減らしたいので、$z_1$の分散を最大にするベクトル$w$の向きを知ることが今回の目的になります。

ここまでを式でまとめてみます。

$z_1 = w_1x_1 + w_2x_2$
$z_{i1} = w_1x_{i1} + w_2x_{i2}$
$\bar{z}_1 = w_1\bar{x}_1+w_2\bar{x}_2$

$z_{i1}$は第1主成分の主成分軸での値、つまり体格のスコアを表しています。

数式の展開

続いて、分散の公式に従って$z_{i1}$の分散を計算していきます。


\begin{align}

\sigma^2_{z1}&= \frac{1}{n} \sum_{i=1}^{n} (z_{i1}-\bar{z}_1)^2\\

\\

 &=\frac{1}{n} \sum_{i=1}^{n} ((w_1x_{i1}+w_2x_{i2})-(w_1\bar{x}_1+w_2\bar{x}_2))^2\\

\\

 &=\frac{1}{n} \sum_{i=1}^{n} (w_1(x_{i1}-\bar{x}_1)+w_2(x_{i2}-\bar{x}_2))^2\\

\\

 &=w_1^2\;\frac{1}{n} \sum_{i=1}^{n}(x_{i1}-\bar{x}_1)^2
   +2w_1w_2\;\frac{1}{n} \sum_{i=1}^{n}(x_{i1}-\bar{x}_1)(x_{i2}-\bar{x}_2)
   +w_2^2\;\frac{1}{n} \sum_{i=1}^{n}(x_{i2}-\bar{x}_2)^2\\
\\
 &=w_1^2s_{11}+w_1w_2s_{21}+w_1w_2s_{12}+w_2^2s_{22}\\\\
\end{align}

$\nearrow$ここに分散共分散行列の萌芽を発見します。

$s_{11} = x_1$の分散
$s_{21} = s_{12} = x_1$と$x_2$の共分散
$s_{22} = x_2$の分散


\begin{align}
 &=w_1(w_1s_{11}+w_2s_{21})+w_2(w_1s_{12}+w_2s_{22})\\

\\

 &=\begin{pmatrix}
    w_1 & w_2
   \end{pmatrix}

   \begin{pmatrix}
    w_1s_{11}+w_2s_{21}\\
    w_1s_{12}+w_2s_{22}
   \end{pmatrix}\\

\\

&=\begin{pmatrix}
    w_1 & w_2
   \end{pmatrix}

   \begin{pmatrix}
    s_{11} & s_{12}\\
    s_{21} & s_{22}
   \end{pmatrix}

   \begin{pmatrix}
    w_1\\ w_2
   \end{pmatrix}\\

\\

&=W^{\mathrm{T}}SW\\\\
\end{align}

このように、$z_{i1}$の分散は分散共分散行列を用いたシンプルな式で表現することができます。

ラグランジュの未定乗数法

一旦今回の目的を整理しましょう。今回の目的は$\sigma^2_{z1}=W^{\mathrm{T}}SW$を最大にするベクトル$w$を求めることです。しかし、このままだと$W$の大きさが大きくなるほど分散の値も大きくなってしまい、最大値を特定することができません。そこでラグランジュの未定乗数法を用いて、$W$の大きさに制約条件を課すことで最大値を求めることが可能になります。また、今回求めたいのはベクトル$W$の方向なので$W$の大きさに制約条件を設けることには妥当性があります。

制約条件は後の計算上の都合のため以下のように定めます。

$W^{\mathrm{T}}W =1$ $\qquad$($||W|| = 1$)

ラグランジュの未定乗数法より、

f(W)=W^{\mathrm{T}}SW\\
g(W)=1-W^{\mathrm{T}}W\\
L(W,\lambda) = f(W) - \lambda g(W)

とおくと、

\left\{
\begin{array}{ll}
\frac{\partial L}{\partial W} = 0 \\\\
\frac{\partial L}{\partial \lambda} = 0
\end{array}
\right.

の解が極値を持つ$W$を与えます。

よって、以下の式を解いて$S$、$W$、$\lambda$の関係式を導きます。

\frac{\partial L}{\partial W} = \frac{\partial }{\partial W}W^{\mathrm{T}}SW - \frac{\partial }{\partial W}\lambda(1-W^{\mathrm{T}}W)  = 0

ここで、ベクトル微分の公式より

\frac{\partial }{\partial W}W^{\mathrm{T}}SW = (S+S^{\mathrm{T}})W\\
=2SW
\frac{\partial }{\partial W}W^{\mathrm{T}}W = 2W

となるので

2SW - 2 \lambda W = 0
SW = \lambda W \\

以上より、$z_1$の分散を最大にするベクトル$w$は、2つの特徴量の分散共分散行列を固有値分解をしたときの固有ベクトルであることが示せました。

おまけ 数式の展開(行列ver)


\begin{align}
 \sigma^2_{z1}&= \frac{1}{n} \sum_{i=1}^{n} (z_{i1}-\bar{z}_1)^2\\
\\
 &=\frac{1}{n} \sum_{i=1}^{n} ((w_1x_{i1}+w_2x_{i2})-(w_1\bar{x}_1+w_2\bar{x}_2))^2\\
\\
 &=\frac{1}{n}\begin{pmatrix} w_1x_{11}+w_2x_{12}-w_1\bar{x}_1-w_2\bar{x}_2 &
 
 \cdots& 
 w_1x_{n1}+w_2x_{n2}-w_1\bar{x}_1-w_2\bar{x}_2
\end{pmatrix}

\begin{pmatrix}
 w_1x_{11}+w_2x_{12}-w_1\bar{x}_1-w_2\bar{x}_2\\
 w_1x_{21}+w_2x_{22}-w_1\bar{x}_1-w_2\bar{x}_2\\
 \vdots& \\
 w_1x_{n1}+w_2x_{n2}-w_1\bar{x}_1-w_2\bar{x}_2\\
\end{pmatrix}\\

\\

&= \frac{1}{n}\begin{pmatrix}
w_1&w_2
\end{pmatrix}

\begin{pmatrix}
 x_{11}-\bar{x}_1  &\cdots& x_{n1}-\bar{x}_1\\
 x_{21}-\bar{x}_1  &\cdots& x_{n2}-\bar{x}_1
\end{pmatrix}

\begin{pmatrix}
x_{11}-\bar{x}_1 & x_{12}-\bar{x}_1\\
x_{21}-\bar{x}_1 & x_{22}-\bar{x}_1\\
\vdots&\vdots&\\
x_{n1}-\bar{x}_1 & x_{n2}-\bar{x}_1
\end{pmatrix}

\begin{pmatrix}
 w_1\\
 w_2
\end{pmatrix}\\

\\

&=\begin{pmatrix}
 w_1 & w_2
\end{pmatrix}

\;\frac{1}{n}
\begin{pmatrix}
 \sum_{i=1}^{n} (x_{i1}-\bar{x}_1)^2 & \sum_{i=1}^{n} (x_{i1}-\bar{x}_1)(x_{i2}- 
 \bar{x}_2)^2\\
 \sum_{i=1}^{n} (x_{i1}-\bar{x}_1)(x_{i2}-\bar{x}_2)^2 & \sum_{i=1}^{n} (x_{i2}-\bar{x}_2)^2
\end{pmatrix}

\begin{pmatrix}
 w_1\\
 w_2
\end{pmatrix}\\

\\

&=\begin{pmatrix}
 w_1 & w_2
\end{pmatrix}

\begin{pmatrix}
  \;\frac{1}{n}\sum_{i=1}^{n} (x_{i1}-\bar{x}_1)^2 & \;\frac{1}{n}\sum_{i=1}^{n} (x_{i1}-\bar{x}_1)(x_{i2}- 
  \bar{x}_2)^2\\
  \;\frac{1}{n}\sum_{i=1}^{n} (x_{i1}-\bar{x}_1)(x_{i2}-\bar{x}_2)^2 & \;\frac{1}{n}\sum_{i=1}^{n} (x_{i2}-\ 
  \bar{x}_2)^2
\end{pmatrix}

\begin{pmatrix}
 w_1\\
 w_2
\end{pmatrix}\\
\\
&= \begin{pmatrix}
   w_1 & w_2
\end{pmatrix}

\begin{pmatrix}
    s_{11} & s_{12}\\
    s_{21} & s_{22}
   \end{pmatrix}

   \begin{pmatrix}
    w_1\\ w_2
   \end{pmatrix}\\

\\

&=W^{\mathrm{T}}SW\\\\
\end{align}

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?