# 主成分分析
## 定義
主成分分析(principal component analysis, PCA)は、$N$ 個の観測 $x_1,\dots,x_N \in \mathbb{R}^p$ に対し、ランク $q \le p$ の最良線形近似 $f(\lambda) = \mu + V_q\lambda$ を最小二乗再構成誤差 $\sum_i \|x_i-\mu-V_q\lambda_i\|^2$ の最小化として求める手法である。中心化したデータ行列 $X$ の特異値分解 $X=UDV^T$($U$: 左特異ベクトル、$D$: 特異値の対角行列、$V$: 右特異ベクトル)を用いると、ランク $q$ の解 $V_q$ は $V$ の最初の $q$ 列であり、$UD$ の列が主成分得点(principal component scores)、$V$ の列が負荷量(loadings)と呼ばれる。第1主成分の方向 $v_1$ は線形結合 $Xv_1$ の分散を最大化する方向であり、以降の主成分は既存成分と直交する制約のもとで逐次分散を最大化する方向として定義される。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1)
## 横断的知見
- **PCAは「教師なしの記述統計」にも「教師ありの正則化装置」にもなる、同一数学的対象の二つの顔である**: ch.14(教師なし学習)は主成分を、データの低次元多様体近似・次元削減・可視化(手書き数字画像、半球面データ等)のための記述的手法として提示する。一方 ch.3 §3.4.1・§3.5.1(線形回帰)は同じ特異値分解 $X=UDV^T$ を、ridge回帰の縮約機構(分散の小さい主成分方向ほど強く縮小する)や主成分回帰(PCR、下位主成分を打ち切る)という**教師あり正則化**の道具として使う。両者は同一の $V$・$D$ を、前者は「データ構造の要約」、後者は「予測のための情報の取捨選択」という異なる目的で流用しており、PCAが教師あり/教師なし学習の境界をまたぐ基盤的な線形代数装置であることを示す。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1, [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]] §3.4.1, §3.5.1)
- **「縮小(shrink)」か「打ち切り(truncate)」かという同一分散構造への対処の分岐**: ch.3 は ridge 回帰(主成分ごとに $d_j^2/(d_j^2+\lambda)$ で連続的に縮小)と主成分回帰(下位 $p-M$ 個の主成分を完全に切り捨て)を対比する。ch.14 のスパースPCA(§14.5.5)も同じ「主成分をどう扱うか」という問題に対し、負荷量ベクトル自体に $L_1$ ペナルティを課して**個々の変数を切り捨てる**という第三の道を示しており、縮小・打ち切り・スパース化という3つの異なる正則化戦略が同じ主成分構造の上に成立することが分かる。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]] §3.5.1, [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.5)
- **ch.18の教師あり主成分分析は、「主成分をどう使うか」の分岐に第四の道――事前の特徴量スクリーニング――を加える**: ch.14 は主成分を教師なしの記述統計として、ch.3 はridge・PCRという教師あり正則化装置として使ったが、[[@2009__Springer__The Elements of Statistical Learning - Chapter 18 High-Dimensional Problems - p >> N]] §18.6の教師あり主成分分析はこの両者のさらに先にある。$p\gg N$(リンパ腫データで7399遺伝子・240標本)では通常のPCAはノイズ特徴量に汚染され、目的変数(生存時間)と相関する主成分を見つけられない。そこで教師あり主成分分析は、まず各特徴量の目的変数への単変量相関で閾値スクリーニングを行い、生き残った特徴量部分集合だけにPCAを適用する(アルゴリズム18.1)。これはch.3のPCR(全変数でPCAを行い下位成分を打ち切る)ともch.14のスパースPCA(全変数でPCAを行い負荷量をスパース化する)とも異なり、**PCAを適用する前に**目的変数の情報で入力自体を絞り込む点が特徴である。図18.14はこの違いを実データで可視化しており、全遺伝子の第1主成分(教師なし)は生存曲線を有意に分離できない(p=0.14)のに対し、事前スクリーニングを経た教師あり主成分は明確に分離する(p=0.006)。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]] §3.5.1, [[@2009__Springer__The Elements of Statistical Learning - Chapter 18 High-Dimensional Problems - p >> N]] §18.6)
- **pre-conditioningは、教師あり主成分分析(密な予測)とlasso(スパースな解釈可能性)という異なる正則化戦略を直列につなぐ**: ch.18 §18.6.3は、教師あり主成分分析の予測値$\hat y_i$を新たな目的変数としてlassoに与えるpre-conditioning手法を示す。これは本ページが既に指摘した「縮小・打ち切り・スパース化」という3正則化戦略のうち、主成分分析(教師あり=打ち切り+スクリーニングの複合)とL1スパース化(ch.3のlasso、[[縮小推定]]参照)を、1つのモデルの中で「まず密な低次元表現で目的変数をノイズ除去し、次にそのノイズ除去された目的変数をスパースに再現する」という**2段階の直列合成**として結びつける具体例である。単独のlassoが高次元のノイズ特徴量に過学習しやすいのに対し、pre-conditioned lassoは同程度の予測誤差をより少ない特徴量で達成する(図18.17)。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 18 High-Dimensional Problems - p >> N]] §18.6.3)
- **教師なしのPCAが分散だけを最大化するのに対し、[[線形判別分析]]の正準変量はクラス内分散に対するクラス間分散の比を最大化する、という「同じ一般化固有値の枠組みで目的関数だけが変わる」関係にある**: 本ページがこれまで確立してきたPCAは、$\max_a a^Ta$ に制約を課した(あるいは特異値分解による)分散最大化問題であり、目的変数(クラスラベル)の情報を一切使わない。一方ch.4 §4.3.3は、LDAの正準変量(canonical variates)を between-class covariance $B$ と within-class covariance $W$ を用いたRayleigh商 $\max_a a^TBa/a^TWa$(式4.15)の最大化として導出しており、これは制約付き分散最大化 $\max_a a^TBa$ s.t. $a^TWa=1$ という一般化固有値問題である。$W$ を単位行列に置き換えれば通常のPCAの分散最大化問題に一致するため、正準変量は「クラス内共分散でスケーリングした空間での主成分分析」とみなせる。両者はいずれも逐次直交な方向を求める固有値問題という共通の数学的骨格を持ちながら、PCAが教師なし(データ構造のみ)、正準変量が教師あり(クラスラベルを使う)という点で分岐しており、本ページが既に指摘した「PCAは教師あり/教師なし学習の境界をまたぐ」という観察に、判別分析という具体的な教師あり側の実例を追加する。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1, [[@2009__Springer__The Elements of Statistical Learning - Chapter 4 Linear Methods for Classification]] §4.3.3)
- **応用文脈の書(ESL)と数学的導出の書(MML)という非対称性**: 本ページがこれまで蓄積してきた知見はいずれも[[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]]系統であり、PCAを「教師なしの記述統計」「ridge/PCRの正則化装置」「LDAの対比対象」という応用側の道具として扱っていた。これに対し[[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]]は応用にはほぼ触れず、PCAを支える数学そのもの――分散最大化(制約付き最適化とラグランジュ乗数法)、再構成誤差最小化(直交射影)、確率的潜在変数モデル(ガウス条件付け)という3つの独立した経路が同一の固有値問題$Sb_m=\lambda_mb_m$に帰着することの証明――を与える。ESLが「PCAが何に使えるか」を示す一方、MMLは「PCAがなぜ成り立つか」を示しており、両書は同一の数学的対象に対して相補的な役割を担う。ESLの主張(例: ridge回帰の縮小機構、正準変量との一般化固有値問題としての対比)は、MMLが与える分散最大化の定式化$\max_{b}b^\top Sb$ s.t. $\|b\|=1$を前提として初めて厳密に理解できる。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1, [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]] §10.2–10.3)
- **同じSVDベースの定式化でも、データ行列の転置規約が食い違う**: ESL §14.5.1は中心化データ行列$X$を$N\times p$(行が観測)としてSVD $X=UDV^\top$を取り、主成分得点を$UD$、負荷量を$V$の列とする。MML ch.10は明示的にこの規約を採らず(§10.4の「Remark (Notation)」)、データ行列$X\in\mathbb R^{D\times N}$を列がデータ点となるよう定義し、$X=U\Sigma V^\top$の$U$の列を直接$S=\frac1NXX^\top$の固有ベクトル(主成分方向)とする。両者は転置の関係にあるだけで数学的内容は同一だが、MMLが「転置や行ベクトルへの読み替えを避けて代数操作を素直にするため」とこの規約を明示的に正当化している点は、ESL側では触れられない実装上の配慮であり、複数ソースを横断してPCAの実装を読むときに転置規約の違いに注意を要することを示す。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1, [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]] §10.2.2 Remark, §10.4)
- **PCAの低ランク近似としての解釈は、[[特異値分解]]のEckart-Young定理と[[固有値分解]]の対角化という2つの数学的道具の応用として統合できる**: MML ch.10は、PCAの射影行列$BB^\top$がランク$M$の恒等行列近似であること(§10.3.3 Remark)と、データ行列$X$自体のランク$M$最良近似がSVDの上位$M$特異値による打ち切り$\tilde X_M=U_M\Sigma_MV_M^\top$(Eckart-Young定理、[[特異値分解]]の定理4.25)で得られることの両方を示す。さらに固有値$\lambda_d$と特異値$\sigma_d$の関係$\lambda_d=\sigma_d^2/N$(式10.49)により、[[固有値分解]]による$S$の直接分解と[[特異値分解]]による$X$の分解は同じ主成分を与える等価な計算経路であることが確認できる。[[固有値分解]]ページの未解決の問い(「第10章は固有値分解とSVDのどちらを計算の主軸に据えるか」)への回答は「どちらでも同じ解が得られ、実務上はSVDの数値安定性が有利」である。(Source: [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]] §10.3.3, §10.4)
- **連続潜在変数(PPCA)と離散潜在変数(GMM)という対比が、次元削減と密度推定という異なる中心問題を同じ枠組みで統一する**: MML ch.10 §10.7は確率的主成分分析(PPCA)を連続潜在変数$z\in\mathbb R^M$を持つ線形ガウス生成モデルとして導入し、これは[[混合ガウスモデル]]ページが既に指摘するとおり[[@2020__Cambridge__Mathematics for Machine Learning - Chapter 11 Density Estimation with Gaussian Mixture Models]]の離散潜在変数($z\in\{0,1\}^K$)モデルであるGMMと明示的に対比される。両者は第8章§8.4.3の潜在変数モデルという共通の親枠組みの具体化であり、「潜在変数が連続か離散か」という1軸の違いだけで、次元削減(PCA)と密度推定/クラスタリング(GMM)という一見別の問題が導出される。(Source: [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]] §10.7, [[混合ガウスモデル]])
- **ディープラーニング入門書(ch.2)は、PCAをESL/MMLが与える技術的詳細から完全に切り離し、「教師なし学習が何をできるか」を示す最小限の例示としてのみ位置づける**: 本ページがこれまで蓄積してきたESL・MMLの知見は、PCAを分散最大化・再構成誤差最小化・確率的潜在変数モデルという3つの数学的定式化として深く掘り下げるが、[[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 2 [入門]機械学習]] §2.4はPCAを「データをその分散が大きい軸に沿って変換する」という1文だけで導入し、独立成分分析・協調フィルタリングによる行列分解と並ぶ「教師なし学習による表現変換の例」として、次元削減を達成する代表例の1つに位置づけるにとどまる。これは同じ主成分分析という対象に対する記述の抽象度が、参照する文脈(統計学の教科書 対 ディープラーニング入門書の教師なし学習概観)によって大きく異なることを示す具体例であり、ch.2の教師あり/教師なし/強化学習という3分類の枠組み([[教師なし学習]]参照)の中でPCAがどこに位置するかを確認する役割を果たす一方、ESL・MMLが与える「なぜPCAが動くか」という技術的内実には立ち入らない。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] §14.5.1, [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 2 [入門]機械学習]] §2.4)
- **ソフトウェア信頼性工学は、ESL/MMLの30年近く前から同じ固有値分解の数学($\Sigma=T\Lambda T'$、共分散行列の対角化、固有値>1のストッピングルール)を「多重共線性の解消」という実務目的に応用していた**: *Handbook of Software Reliability Engineering* 第12章(Munson & Khoshgoftaar, 1996)は、LOC・Halstead ソフトウェアサイエンス・McCabe 循環的複雑度といった相関の強いソフトウェア複雑性メトリクス群を、後続の重回帰・判別分析に投入する前に主成分分析で少数の直交ドメインメトリクスへ縮約する。これは本ページが ch.3(ridge/PCR)で確認した「PCAを教師あり正則化の道具として使う」系譜の具体例であり、$\Sigma=T\Lambda T'$ という同一の固有値分解、固有値>1のストッピングルール、標準化変換行列 $T_*$ による新規データへの適用(バリデーションデータへのベースライン変換行列の再利用)という、ESL/MMLが1996年よりずっと後に整理する数学的枠組みと基本的に同一の技法が、ソフトウェア工学の実務(多重共線性の解消)にすでに使われていたことを示す。(Source: [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]] §3.4.1, §3.5.1, [[@1996__McGrawHill__Handbook of Software Reliability Engineering - Chapter 12 Software Metrics for Reliability Assessment]] §12.2.3)
- **「PCAは削減後の成分が原変数に対応せず解釈しにくい」という[[メトリクス削減]]の批判に対し、Munson & Khoshgoftaarは負荷量パターンの命名という手作業の緩和策を1996年時点ですでに実践していた**: [[メトリクス削減]]は Sieve(2017)と Begnum & Burgess(2005)を根拠に、PCAが「開発者が視覚的に検証できない」「各変数の個別性を犠牲にする」という解釈可能性の弱さを持つと指摘する。これに対し Munson & Khoshgoftaar は、主成分分析で得た各ドメインの負荷量パターン(表12.3・12.7・12.8)を検査し、どのメトリクスが強く負荷するかに基づいて各ドメインへ「サイズ」「制御フロー」「データ構造」「モジュール性」「action/再利用性」という人間可読な名前を与えている。これはPCAの数学的出力そのもの(直交成分)は変えず、成分の**事後解釈**を体系的な手続き(負荷量の閾値による代表メトリクスの特定)にまで高める方法であり、メトリクス削減が示した弱点への「クラスタリングへの代替」とは異なる、「PCAを使い続けながら解釈可能性を後付けする」という第三の対処法を示す。ただし、この命名はあくまで人間の判断(著者の主観的なドメイン解釈)に依存しており、Sieveが求める「開発者が視覚的に検証可能」な客観的基準を満たすかどうかは、両ソースを突き合わせただけでは判定できない。(Source: [[メトリクス削減]], [[@1996__McGrawHill__Handbook of Software Reliability Engineering - Chapter 12 Software Metrics for Reliability Assessment]] §12.2.3, §12.4.3, §12.4.5)
## 未解決の問い
- MML ch.10のPPCAが与える確率的PCAと、ESL ch.14のスパースPCA・教師あり主成分分析(ch.18)は、いずれもPCAの拡張だが目的が異なる(前者は生成モデル化、後者は正則化・特徴選択)。両者を同一のベイズ的枠組みで統一できるかは、両書とも明示的に論じていない。
- ch.14 で紹介される非線形拡張(カーネルPCA・主曲線/主曲面・SOM・スペクトラルクラスタリング)は、ch.3 の主成分回帰やridge回帰のような教師あり正則化文脈へどこまで一般化できるか。カーネル主成分回帰のような手法は本チャプターの範囲外である。
- スパースPCA(SCoTLASSおよびZou et al. 2006の定式化)とPCR(主成分回帰の打ち切り)の性能を、同一の予測タスクで直接比較した実証研究は本書に含まれていない。どちらが実務的に優れるかは未検証。ch.18の教師あり主成分分析を含めた3手法の直接比較も本書の範囲では行われていない。
- カーネルPCAとスペクトラルクラスタリングは数理的に近い(§14.5.4)が、両者の使い分けの指針(どのような非凸構造でどちらを選ぶか)は本章では体系化されていない。
- 教師あり主成分分析のスクリーニング閾値$\theta$は交差検証で選ぶとされるが(ch.18 §18.6)、この閾値選択とch.14のスパースPCAの$L_1$ペナルティ選択は数学的に異なる最適化問題であり、両者が同じデータに対しどの程度似た特徴量部分集合を選ぶかは本書では検証されていない。
- LDAの正準変量($W$でスケーリングした一般化固有値問題)とスパースPCA・カーネルPCAのような非線形/スパース拡張を、$W=I$以外の一般の計量に対して統一的に定式化できるか。ch.4・ch.14いずれも明示的には論じていない。
## 関連
- ソース: [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]] / [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]] / [[@2009__Springer__The Elements of Statistical Learning - Chapter 4 Linear Methods for Classification]](正準変量による縮約次元LDA) / [[@2009__Springer__The Elements of Statistical Learning - Chapter 18 High-Dimensional Problems - p >> N]](教師あり主成分分析・pre-conditioning) / [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]](分散最大化・射影・確率的潜在変数モデルという3つの数学的導出) / [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 2 [入門]機械学習]](教師なし学習の一例としての最小限の言及) / [[@1996__McGrawHill__Handbook of Software Reliability Engineering - Chapter 12 Software Metrics for Reliability Assessment]](多重共線性解消のためのドメインメトリクス構築、負荷量パターンによる事後解釈)
- 概念: [[クラスタリング]](K-meansの初期化に主成分平面を利用)/ [[スペクトラルクラスタリング]](カーネルPCAと数理的に近縁)/ [[独立成分分析]](PCAの白色化を前処理として利用し、無相関でなく独立性を求める点で対比される)/ [[縮小推定]](pre-conditioningでのlasso併用)/ [[線形判別分析]](正準変量による教師あり版の一般化固有値分解)/ [[固有値分解]]・[[特異値分解]](PCAの計算を支える2つの等価な数学的道具)/ [[混合ガウスモデル]](連続潜在変数PPCAと離散潜在変数GMMの対比)/ [[メトリクス削減]](PCAの解釈可能性への批判とその緩和策)/ [[ソフトウェア複雑性]](複雑性メトリクスの直交化という応用領域)/ [[障害予測]](ドメインメトリクスに基づく故障傾向予測)
- 実体: [[Mathematics for Machine Learning]] / [[John Munson]] / [[Taghi Khoshgoftaar]]
## 出典
- [[@2009__Springer__The Elements of Statistical Learning - Chapter 14 Unsupervised Learning]](§14.5.1–14.5.5)
- [[@2009__Springer__The Elements of Statistical Learning - Chapter 3 Linear Methods for Regression]](§3.4.1, §3.5.1)
- [[@2009__Springer__The Elements of Statistical Learning - Chapter 4 Linear Methods for Classification]](§4.3.3)
- [[@2009__Springer__The Elements of Statistical Learning - Chapter 18 High-Dimensional Problems - p >> N]](§18.6, §18.6.1–§18.6.3)
- [[@2020__Cambridge__Mathematics for Machine Learning - Chapter 10 Dimensionality Reduction with Principal Component Analysis]](§10.1–§10.8)
- 岡野原大輔, 『ディープラーニングを支える技術』, 技術評論社, 2022, 第2章, §2.4.
- John C. Munson, Taghi M. Khoshgoftaar, "Software Metrics for Reliability Assessment", in Michael R. Lyu (ed.), *Handbook of Software Reliability Engineering*, IEEE Computer Society Press / McGraw-Hill, 1996, Chapter 12, §12.2.3, §12.4.3, §12.4.5.