教師なし学習とは
回帰や分類問題における学習は説明変数と目的変数のデータの組が与えられており、このような学習方法を教師あり学習といいます。しかし、すべてのデータに目的変数のデータが与えられているわけではなく、そのような場合には教師なし学習を行います。
ここでは、教師なし学習の中のアルゴリズムとして主成分分析を扱ってみましょう!
主成分分析
主成分分析は、データの多数ある特徴の中から重要な特徴を取り出す手法です。(数学的な言葉を使えば、特徴量ベクトルの変換を行ったときに、そのノルムが最も大きくなるような基底を探すということで、固有空間への射影を行なったのちに次元圧縮をすることに対応します。)
Irisのデータセットを用いて実際に主成分分析してみます。
まず、pythonを用いてデータセットの中身を確認します。
因みに、Irisとは「あやめの花」のことです。本データセットは以下の特徴量で構成されています。
・sepal length:がく片の長さ
・sepal width:がく片の幅
・petal length:花弁の長さ
・petal width:花弁の幅
最終列のlabelは教師ラベル(あやめの種類)のことで0,1,2のいずれかの値となります。
4次元の特徴量を、主成分分析によって2次元に圧縮してみます。
以下の図がその結果です。
色が同じデータは同じ種類のあやめであることを示しています。
横軸が第1主成分、縦軸が第2主成分となっており、軸ラベルの括弧の中の数字は、その主成分がどれだけデータの特徴を表しているかを示す割合です(寄与率といいます)。このことから、あやめのデータは2つの主成分で 95パーセント以上の特徴を表せていることがわかります。また、同じ種類のあやめは、グラフ上で似た座標に集まっていることも確認できることから、「2つの主成分によって、あやめの種類は概ね推定できる」ということがわかります。
以上より、主成分分析は煩雑な多次元データから、データの特徴を表す本質を抽出することができるアルゴリズムだということがわかりました!
主成分分析の理論
主成分分析とは、
あるデータの行列$X$が与えられたとき、
$||X\phi_{1}||$を最大にする$\phi_{1}\in R^{N}$、
$\phi_{1}$と直交して$||X\phi_{2}||$を最大にする$\phi_{2}\in R^{N}$、
・・・、
$\phi_{p}$と直交して$||X\phi_{p}||$を最大にする$\phi_{p}\in R^{N}$を求める操作です。
ここで、$||X\phi_{i}||=1$と仮定しておきます。
まず、$\phi_{1}$に対する最適化問題は、以下のように表されます。
\max ||X\phi_{1}||^2 \qquad subject \, to \quad ||\phi_{1}||=1
上記の式をラグランジュの未定定数法で解くと
(X^T X)\phi_{1} = \gamma_1 \phi_{1}
という式が得られます。これは、$X^T X$の固有ベクトルが$\phi_{1}$であることを表しています。そして、対応する固有値$\gamma_1$は、最適化問題の解となります。
つまり、$\phi_{1}$が第1主成分です。
次に、$\phi_{2}$に対する最適化問題は、以下のように表されます。
\displaylines{
\max ||X\phi_{2}||^2 \\
\qquad subject \, to \quad ||\phi_{2}||=1 \quad , \quad \phi_{1}^T \phi_{2} =0
}
この問題に対しても、ラグランジュの未定条数法を適用し、
(X^T X)\phi_{2} = \gamma_2 \phi_{2}
が求まります。また、$X^T X$が対称行列なので、その固有ベクトルである$\phi_{1}$、$\phi_{2}$は直交します。従って$\phi_{2}$が第2主成分です。
これを一般の$i=1,2,...,p$に適応すれば、第$p$主成分までが求まります。
確率分布から見る話
主成分分析を、確率分布から生成されるアルゴリズムとみると、
これは、潜在変数がガウス分布に従う行列分解モデルの最尤推定結果としてみることもできます。このように主成分分析をみると、モデルに沿ったデータ生成を行えるようになります。次回はこの辺りの話(確率的主成分分析)をしてみようかなと思います。