2.6.3
LDA
まとめ
- LDA はクラス内分散を小さく、クラス間分散を大きくする射影軸を学習する教師あり次元削減である。
- ラベル情報を使うため、分類前処理として有効に働く。
- クラス数とサンプル数の関係、共分散の仮定が性能に影響する。
- 主成分分析(PCA) の概念を先に学ぶと理解がスムーズです
直感 #
LDAは『同じクラスは近く、異なるクラスは遠く』になる方向を探す方法です。分散が大きい軸を探すPCAと異なり、分類しやすさを直接目的にしている点が重要です。
詳細な解説 #
1. 直感:クラスを分けやすい方向を探す #
- PCA:データの「ばらつき」が大きい方向を探す(ラベルなし)。
- LDA:クラス間の距離が大きく、クラス内のばらつきが小さくなる方向を探す(ラベルあり)。
2. 数式でみる LDA #
クラス \(C_1, C_2, \dots, C_k\) があるとき:
クラス内散布行列(within-class scatter):
$$ S_W = \sum_{j=1}^k \sum_{x_i \in C_j} (x_i - \mu_j)(x_i - \mu_j)^\top $$- 各クラス内のばらつき。
クラス間散布行列(between-class scatter):
$$ S_B = \sum_{j=1}^k n_j (\mu_j - \mu)(\mu_j - \mu)^\top $$- クラス平均 \(\mu_j\) と全体平均 \(\mu\) の差。
目的:
$$ J(w) = \frac{w^\top S_B w}{w^\top S_W w} $$
射影ベクトル \(w\) を求め、次を最大化:これは「クラス間の分離を大きくし、クラス内のばらつきを小さくする」基準。
3. 実験用のデータ #
| |
4. LDAで二次元に次元削減 #
| |
5. PCAとLDAの比較 #
同じデータをPCAで2次元化した場合:
| |
PCAは「ばらつき最大化」、LDAは「クラス分離最大化」という違いがある。
6. 実務での応用 #
- 次元削減:分類問題の前処理として。
- 可視化:高次元データを2次元に落としてラベルごとにプロット。
- 顔認識(Fisherfaces):PCAとLDAを組み合わせた手法が有名。
発展:LDAの制約 #
- LDAの最大次元は「クラス数 - 1」。
(例:3クラスなら最大2次元までしか落とせない) - クラス分布が「ガウス分布で共分散が等しい」と仮定。
- 多クラス拡張も可能だが、サンプル数が少ない場合は不安定になりやすい。
- 主成分分析(PCA) — 教師なし次元削減
- 線形判別分析(分類) — 分類としてのLDA
- t-SNE — 可視化向け次元削減
近傍数と埋め込み #
近傍数を変えると 2D 射影の結果がどう変化するか確認できます。