説明変数 x の数が大きいときなど、データセットを用いてx を潜在変数 z に変換する手法を用いることがあります。z の数が二つのとき、データの可視化 (見える化) になります。手法の例としては、以下のものが挙げられます。
- Principal Component Analysis (PCA)
- Kernel Principal Component Analysis (KPCA)
- AutoEncoder (AE) [deep autoencoder や variational autoencoder など]
- Generative Topographic Mapping (GTM)
- Isometric mapping (Isomap)
- Locally Linear Embedding (LLE)
- t-distributed Stochastic Neighbor Embedding (tSNE)
- Uniform Manifold Approximation and Projection (UMAP)
今回は、これらの手法を以下の観点で分類してみます。
- 線形か非線形か
- z の数を任意に変えられるかどうか
- 新たなサンプルに対して x から z に変換できるかどうか
- z から x に逆変換できるかどうか
分類の結果から、データ解析・機械学習の目的に応じて、適切な手法を使い分けることができるようになります。
線形か非線形か
x の線形結合で z が表わされる手法が線形であり、それ以外の手法が非線形です。上の手法を線形か非線形かで分類すると、以下のようになります。
- 線形: PCA
- 非線形: KPCA, AE, GTM, Isomap, LLE, tSNE, UMAP
線形手法の方が結果を解釈しやすいです。例えば PCA では寄与率や累積寄与率により z の情報量を検討できます。なお、非線形手法も含めて、可視化手法の精度を検討する手法として k3n error があります。
z の数を任意に変えられるかどうか
低次元化手法の中には、基本的に 2 次元で可視化することを前提としたものがあります。もちろんそういった手法でも理論的には多くの z を計算することが可能ですが、計算負荷や精度の観点から、多くの z を計算することは適切ではありません。上の手法を分類すると以下になります。
- z の数を任意に変えられる: PCA, AE, UMAP
- 変えるのは適切でない: KPCA, GTM, Isomap, LLE, tSNE
データの可視化が目的の場合はどの手法でも構いませんが、例えば x を z に低次元化してから回帰分析やクラス分類を行うときなどは、2 つより多くの z が必要になることもあります。そのときは、z の数を任意に変えられる手法を使用します。
新たなサンプルに対して x から z に変換できるかどうか
ある与えられたデータセットを可視化できれば十分なこともあれば、例えば PCA の主成分軸 (ローディング) のように z の空間を計算しておいて、新たなサンプルの x の値が入力されたときにその空間に写像してそのサンプルの可視化結果を見たいこともあります。また異常検出のとき、事前に z を規定しておいて、新たに測定されるサンプルを z の空間に写像してから、その空間において異常検出をすることがあります。新たなサンプルに対して x から z に変換できる手法とできない手法の分類は以下の通りです。
- 新たなサンプルに対して x から z に変換できる: PCA, AE, GTM, UMAP
- 変換できない: KPCA, Isomap, LLE, tSNE
z から x に逆変換できるかどうか
x を z に変換してから回帰分析やクラス分類を行い、モデルを構築したあと、そのモデルの逆解析をすると、得られるのは z の値です。それを元の x の値に戻すには z から x への逆変換が必要になります。また異常検出のとき、x から z に変換し、その後 z から x に逆変換したときの誤差も、異常検出のための重要な指標になります。z から x に逆変換できるかどうかの分類は以下の通りです。
- z から x に逆変換できる: PCA, AE, GTM
- 逆変換できない: KPCA, Isomap, LLE, tSNE, UMAP
最後に、低次元化手法は基本的に教師なし学習であるため、データセットごとに最適な手法を選択することは難しいです。ただ k3n error を用いれば、x におけるサンプルの近接関係と z におけるサンプルの近接関係とがなるべく一致するような手法を選択することができるようになります。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。