本文へ移動

主成分分析

導入

あるデータセット が与えられたとき、各データ点 次元のベクトルで表される。このとき、各データ点が高次元空間に散らばっている場合、データの可視化や解析が困難になることがある。そこで、データの次元を削減し、より低次元の空間に射影することで、データの構造を理解しやすくする手法が求められる。

具体的にはある方向ベクトル を考え、各データ点 をこのベクトル上に射影することを考える。ただし、 に制限しておこう。つまり、 方向の成分だけを取り出すことである。よりイメージしやすいようにベクトルではなく 次元空間に点 があると考える。ベクトル が方向を示し、原点を通る直線 を定める。このとき、点 から直線 に下ろした垂線の足の点を とする。この点 が点 の直線 への射影である。点 上になるのだから、あるスカラー値 が存在して

と表される。ここで、点 から直線 に下ろした垂線は直線 に直交するから、

が成り立つ。したがって、点 の直線 への射影 は以下のようになる。

このようにして、各データ点 を方向ベクトル に基づいて に射影できた。

分散最大化

さて、データセット には他にもさまざまなベクトルが存在した。これら全てを 上に射影する。すると、射影されたベクトルの集合は のとり方次第で同じところに集まってしまうかもしれない。せっかく、違うデータ点を用意したのでできるだけ違いができるような を決めたい。そこで、射影されたベクトルの分散が最大になるような を選ぶことを考える。その こそが、データセットで「最も違いを表現できる方向」を示すベクトルになる。これを主成分(principal component)と呼ぶ。

「違い」の基準として分散が考えられるので、射影されたベクトルの分散を計算してみよう。データセット の各データ点を方向ベクトル に射影したベクトルの集合を

とする。ここで、各射影ベクトル

であった。この平均を とすると、

で計算できる。ここで、 は元のデータセット の平均ベクトルである。さて、射影ベクトルの集合 の分散 は以下で計算できるだろう。

ここで、各射影ベクトル を代入すると、

ここで、各データ点 を行ベクトルとする行列 を考える。つまり、

である。すると、分散 は以下のように書き換えられる。

ここで、以下のような行列 を定義する。

すると、

これを縦ベクトルと見なすと、分散 は以下のように書き換えられる。

ここで、 はデータセット 分散共分散行列(variance-covariance matrix)である。

【定義】分散共分散行列

データセット の分散共分散行列 は以下で定義される。

したがって、分散 は以下のように最終的に表される。

そして、この最適化問題は以下のようにまとめられる。

第1主成分

この最適化問題はラグランジュ未定乗数法を用いて解くことができる。ラグランジュ関数 を以下のように定義する。

ここで、 はラグランジュ未定乗数である。このラグランジュ関数 を最大化する を求める。まずラグランジュ関数を で偏微分し、それを0に等しく設定する。

最後の式は の行列積が のスカラー倍になることを示している。つまり、 は共分散行列 固有ベクトル(eigenvector)であり、 は対応する固有値(eigenvalue)である。したがって、主成分分析における最適化問題の解は固有値問題の解として得られる。

共分散行列 の固有値を とし、対応する固有ベクトルを とする。ここで、固有値は大きい順に並べておく。すなわち、

である。ここで、 に、 を代入すると、

となる。つまり、求めた固有値は の値に対応している。したがって、最も大きい固有値 に対応する固有ベクトル が主成分分析における最適解である。これを第1主成分(first principal component)と呼ぶ。

第2主成分以降

第1主成分 が求まった後、次に第2主成分 を求めることができる。第2主成分は、第1主成分と直交する方向で、かつ分散が最大になるような方向ベクトルである。つまり、以下の最適化問題を解くことで求められる。

同様にラグランジュ未定乗数法を用いる。ラグランジュ関数 を以下のように定義する。

ここで、 はラグランジュ未定乗数である。このラグランジュ関数 を最大化する を求める。まずラグランジュ関数を で偏微分し、それを0に等しく設定する。

これに対し、両辺を で左から掛けると、

となる。 はスカラーなので転置しても変わらない。したがって、

である。ここで、 を代入すると、

となる。これを最初の式に代入すると、

となる。つまり、第2主成分 の固有ベクトルであり、対応する固有値 である。つまり、第2主成分は の第2固有値 に対応する固有ベクトル である。 を選んでしまうと、制約 を満たせないからである。これを第2主成分(second principal component)と呼ぶ。同様にして、第3主成分、第4主成分、dots.c、第 主成分まで求めることができる。

ここで疑問なのは の固有ベクトルが本当に直交するかどうかである。これは以下の命題で説明できる。

【命題】実対称行列の直交固有ベクトル

主張

実対称行列 の異なる固有値に対応する固有ベクトルは直交する。

証明

の異なる固有値 に対応する固有ベクトル を考える。すなわち、

が成り立つ。ここで、最初の式の両辺を で左から掛け、次に2番目の式の両辺を で左から掛ける。 すると、

が成り立つ。ここで、 は実対称行列であるから、

となる。ここで、 であるから、

が成り立つ。 であるから、 が成り立つ。つまり、異なる固有値に対応する固有ベクトルは直交することが示された。

は実対称行列であるから、 の固有ベクトル は互いに直交する。

まとめると、主成分分析における第 主成分は共分散行列 の第 固有値 に対応する固有ベクトル である。これらの主成分は互いに直交し、第1主成分から順にデータの分散を最大化する方向を示している。

スペクトル分解

共分散行列 は実対称行列であるから、直行系固有ベクトル を正規直行系になるように正規化できる。

【定義】直行系・正規直行系

ベクトル が以下の条件を満たすとき、これらのベクトルは直行系(orthogonal system)であると言う。

さらに、各ベクトルのノルムが1であるとき、これらのベクトルは正規直行系(orthonormal system)であると言う。このとき、

である。

このとき、固有ベクトル とそれに対応する固有値 を以下のように並べる。ただし、ベクトルは縦ベクトルであることを改めて強調しておく。

また、

である。 は対角行列であり、対角成分に固有値 が並んでいる。これはよく以下のような形で書かれる。

上二つの等式から、 とおくと、

が成り立つ。ここで、 は直行行列である。

【定義】直行行列

行列 が以下の条件を満たすとき、直行行列(orthogonal matrix)であると言う。

ここで、 は単位行列である。

なぜなら、

であるからである。したがって、両辺に を右から掛けると、

が成り立つ。これをスペクトル分解(spectral decomposition)と言う。

【定義】スペクトル分解

実対称行列 は直行行列 と対角行列 を用いて以下のように分解できる。

これをスペクトル分解(spectral decomposition)と言う。

次に以下の2つの性質を確認しておこう。

【性質】分散共分散行列は半正定値行列

主張

データセット の分散共分散行列 は半正定値行列である。つまり、任意の に対して、

が成り立つ。

証明

データセット の分散共分散行列 は以下で定義される。

ここで、任意の に対して、

が成り立つ。したがって、分散共分散行列 は半正定値行列であることが示された。

【性質】半正定値行列の固有値は非負

主張

実対称行列 が半正定値行列であるとき、その固有値は全て非負である。

証明

実対称行列 の固有値を 、対応する固有ベクトルを とする。すなわち、

が成り立つ。ここで、両辺を で左から掛けると、

が成り立つ。左辺は半正定値行列の定義より非負であるから、

が成り立つ。ここで、 は固有ベクトルであるから、 であり、 である。したがって、 が成り立つ。つまり、実対称行列 の固有値は全て非負であることが示された。

これらの性質から、共分散行列 の固有値 は全て非負であることがわかる。また、スペクトル分解を使って第1主成分が、 であることも確認できる。元の最適化問題を再掲し、少し手を加える。

ここで レイリー商(Rayleigh quotient)と呼ばれる。スペクトル分解 を代入すると、

となる。ここで、 とおくと、

ここで、 とすると、

である。これは、 の重み付き平均である。したがって、最大値は最大の固有値 であり、そのとき かつ である。つまり、 である。このとき、

であるから、両辺に を左から掛けると、

次元圧縮

【定理】スペクトル分解の別表現
主張

実対称行列 のスペクトル分解は以下のように表される。

ここで、 の固有値、 は対応する正規化された固有ベクトルである。

証明

実対称行列 のスペクトル分解は以下で表される。

ここで、 は直行行列、 は対角行列である。これを展開すると、

が成り立つ。

【定義】対角成分の和(トレース)

行列 の対角成分の和はトレース(trace)と呼ばれ、以下で定義される。

【定理】トレースの性質
主張

行列 に対して、以下の等式が成り立つ。

証明

行列 の対角成分の和は以下で計算できる。

この定理を用いると、分散共分散行列 の対角成分の和 は以下のように表される。

したがって、分散共分散行列 の対角成分の和は意味的には、データセット の全ての次元にわたる分散の総和を表していることがわかる。なぜなら、定義より

であるからである。つまり、全ての次元にわたる分散の総和は共分散行列 の固有値の総和と等しい。 は第 主成分に対応する固有値であり、それは第 主成分が表現する分散の大きさを示していた。(最大化の対象であった)これらを用いて以下の2つの指標が定義される。

【定義】寄与率と累積寄与率

データセット の第 主成分に対応する寄与率(contribution ratio) は以下で定義される。

また、累積寄与率(cumulative contribution ratio) は以下で定義される。

この二つの指標は主成分分析における次元圧縮の際に重要な役割を果たす。寄与率 は第 主成分がデータの全体の分散に対してどれだけ寄与しているかを示し、累積寄与率 は最初の 主成分がデータの全体の分散のうちどれだけを説明しているかを示す。例えば、累積寄与率 が高い場合、最初の 主成分だけでデータの大部分の情報を保持できることを意味する。