固有値分解と特異値分解の違いってなんだっけ?

ある日、行列を前にして、「さて、これを固有値分解。。。あれ、特異値分解。。???ん、そもそも固有値分解と特異値分解って何が違うんだっけ」と混乱に陥った。

そこで、もう一度、「何がどうちがうのか?」をおさらいしてみた。

勉強したのはここのサイト

固有値分解も特異値分解もコレスキー分解も目的は同じ

コレスキー分解。。昔、教科書で目にしたことはあったが、久しぶりに目にした気がする。

ともかく、コレスキーも固有値も特異値も、目的は行列を分解することである。

つまり、(相関)行列を相関行列CをQ*Qtに分解したい時に使う。

どこが違うんだっけ?

それぞれ対応できる柔軟度が違う。

順番的には コレスキー < 固有値 < 特異値 で特異値分解が一番、柔軟に対応できる。

じゃあ、それぞれどういう時に使えて、どういう時に使えないの?

コレスキー分解: 

対応できるとき

行列が「正定値実対称行列」の時。「正定値実対称行列」ってなんだっけ?と思ったけど、「値が十分にあるとき」くらいに解釈しとけばいいんだ。(たぶん)

対応できない時

行列が「半正定値実対称行」の時。値が十分にない時だ。(たぶん)

固有値分解:

対応できるとき

行列が「半正定値実対称行列」の時

対応できない時

行列にノイズがあって、欠損値があるとき

平均値でもとって欠損うめとけ!とかやると、固有値がマイナスになってしまうことが(よく)ある。こうなると分解計算ができなくなる。

特異値分解

対応できるとき

行列に欠損値があってもおk!

イメージ的には、固有値がマイナスになった場合に、固有値を2乗して、マイナスになった固有値を埋めて、分解計算を続行する。

対応できない時

知らん

おまけ あれ、固有値ってどうやって計算するんだっけ?

行列式detを解く。

行列Aに対してはdet(A-λE)=0を解いた解が固有値。※Eは成分が1の対角行列

固有値固有ベクトルの求め方はこのページを参照のこと