柔軟な判別分析 — FDA・PDA・MDA
LDAの「直線しか引けない」制約を超えて。Optimal Scoringという1つのフレームワークから生まれた 3つの拡張——曲線境界のFDA、滑らかさを活かすPDA、クラス内多様性に対応するMDA——を探ろう。
LDAの直感的な復習 — 判別分析とは何か
まず、線形判別分析(LDA)の核心を復習しよう。
2クラスの分類問題を考える。青い点の集まりと、橙の点の集まりがある。LDA は「2つのクラスをできるだけうまく分ける直線(超平面)を引く手法」だ。
どんな直線が「うまく分けている」のか?LDA の答えはシンプルだ:
「クラス間の距離をできるだけ大きく、クラス内のばらつきをできるだけ小さく」

たとえば、青い点群の重心と橙の点群の重心が遠いほど良い。そして、それぞれのクラスの点が自分の重心の近くに集まっているほど良い。この2つの条件を同時に満たす方向が LDA の「判別方向」だ。
数式にすると、「クラス間分散 ÷ クラス内分散」を最大化する。
各記号の意味:
- S_B(Between-class scatter):クラス間共分散行列。2つのクラスの重心がどれだけ離れているかを表す
- S_W(Within-class scatter):クラス内共分散行列。各クラスの点がどれだけ自分の重心の周りにまとまっているかを表す
- w:この比を最大化するベクトルが判別方向
ここで LDA の根本的な制約が見えてくる。「直線(超平面)」しか引けない。これは、データが直線で分けられる場合は完璧に機能するが、クラスの境界が曲線を描くデータには対応できない。
では、「直線しか引けない」制約をどう取り外せばいいか?次のセクションでその答えが見えてくる。
Optimal Scoring — LDAを「回帰問題」として解き直す
ここで発想を転換してみよう。「判別分析(分類問題)を回帰問題として解けないか?」
通常、回帰は連続値(数値)の予測に使う。分類はカテゴリ(クラスラベル)の予測だ。でも、もしクラスラベルに「適切な数値スコア」を割り当てれば、回帰として解けるはずだ。
たとえば3クラスの分類問題を考えよう。クラス1, 2, 3に数値スコア θ₁, θ₂, θ₃ を割り当てる。そして「入力 x から数値スコアを予測する回帰モデル」を作る。

でも「どのスコアが適切か」はどう決める?
Optimal Scoring のアイデアはこうだ:「スコアの割り当て」と「回帰モデルの学習」を交互に繰り返す。
- スコアを仮に決める(例:θ₁=1, θ₂=0, θ₃=-1)
- そのスコアを予測する回帰モデル β を学習する
- 回帰残差が最小になるようにスコアを更新する
- 収束まで繰り返す
驚くべきことに、この方法で得られた解は LDA と全く同じだ!
Optimal Scoring の目的関数:
各記号の意味:
- g_i:サンプル i のクラスラベル
- θ(g_i):そのクラスに割り当てられたスコア(最適化の対象)
- β:回帰係数(最適化の対象)
適切な正規化制約を加えると、この解は LDA と等価になる。なぜこれが重要か? LDA を「最小二乗回帰問題」として表現できたということは、回帰の部分を「線形回帰以外の手法」に差し替えることで、LDA を拡張できるからだ。 これが次の FDA につながる。
FDA — 非線形回帰で曲線の境界を引く
Optimal Scoring のフレームワークを理解したところで、いよいよ FDA(Flexible Discriminant Analysis)だ。
ポイントは驚くほどシンプルだ:Optimal Scoring の「線形回帰」の部分を、非線形回帰に差し替えるだけ。
「非線形回帰」とは何か?たとえばMARS(多変量適応回帰スプライン)という手法では、入力変数を複数の「折れ線関数」の組み合わせで表現できる。複雑な曲線フィットが可能だ(詳しくは Chapter 9.4 で学んだ)。他にも決定木やスプライン関数なども使える。
非線形回帰を使うと何が変わるか?決定境界が曲線になる。

具体例:同心円状に広がった2クラスを分類したい(内側が青、外側が橙)。LDA では直線しか引けないので、どう直線を引いても内側と外側を分けられない。しかし FDA + MARS なら、円形に近い曲線境界を引いて正しく分類できる。
FDA の目的関数(非線形バージョン):
各記号の意味:
- η:任意の回帰関数(スプライン、MARS等)
- J(η):複雑さへの罰則(複雑すぎるモデルを抑制)
- λ=0 で線形回帰(通常の LDA)に戻る
重要な洞察がある。FDA を2段階に分解すると:
- 非線形変換:MARS 等で x から新しい特徴量 η(x) を作る(元空間を別の空間に変換)
- 線形判別:新しい特徴量空間で通常の LDA を適用
つまり FDA は「空間を賢く変換してから、線形な LDA を使う」手法だ。元の空間では曲線の境界も、変換後の空間では直線になる。
この「空間変換」の発想は、SVM の「カーネルトリック」(Chapter 12.1-12.2 で学んだ)と根本的に同じだ。違いは、SVM が変換を暗黙的(カーネル関数)に行うのに対し、FDA は変換を明示的(MARS 等)に行う点だ。
PDA — 「滑らかさ」を判別に活かす
次の拡張は少し違うアプローチだ。問題設定はこうだ:
音声認識システムを作っている。1つの音声サンプルは「周波数スペクトル」として表現され、256個の周波数帯のエネルギー値がある——つまり256次元のベクトルだ。
このデータに LDA を適用しよう。すると256個の判別係数が得られる。しかし問題がある:256次元の判別係数はノイズだらけになりやすい。隣り合う周波数(例:100Hzと102Hz)の係数が全く違う値を取ったりする。これは物理的に意味がない。自然な音声では、隣り合う周波数のエネルギーは滑らかに変化するはずだからだ。

PDA(Penalized Discriminant Analysis)は、この「データ構造の知識(隣り合う変数は滑らかに変化するはず)」を明示的にモデルに組み込む手法だ。
仕組みはシンプル:Optimal Scoring の回帰ステップに罰則項を加える。「隣り合う係数の差が大きければペナルティを与える」罰則だ。これにより、判別係数が滑らかな曲線を描くように制御される。
PDA の目的関数(罰則付き Optimal Scoring):
各記号の意味:
- Ω:罰則行列。例えば差分行列 Ω = DTD(D は隣接差分行列)
- βTΩβ = Σⱼ(βⱼ₊₁ - βⱼ)² :隣り合う係数の差を最小化する
- λが大きいほど「滑らかさ優先」になり、λ=0 で通常の LDA と同じになる
なぜこれが有効か?高次元データでは変数の数がサンプル数より多くなりがち(256次元のデータが50サンプルしかない等)。このとき LDA は過学習(訓練データに過度に適合してしまう)しやすい。滑らかさの罰則がその抑止力になる。
PDA の美しさは「ドメイン知識(隣接変数は滑らか)」をモデルに注入できる点だ。音声なら周波数の滑らかさ、時系列なら時間方向の滑らかさ、画像なら空間的な滑らかさ——それぞれの「自然な構造」をモデルに伝えられる。
MDA — クラスの中に「サブグループ」がある現実
ここで根本的な問いを立てよう。LDA、FDA、PDA はすべて「各クラスは1つのまとまったグループ」と仮定している。でも現実はそうか?
「犬」というクラスを分類したい。しかし「犬」の中には:
- チワワ(小型、丸顔)
- グレートデーン(大型、細長い顔)
- 柴犬(中型、三角耳)
これらは見た目がまったく異なる。「犬クラス」は1つの均質な群れではなく、複数のサブグループ(品種)の集まりだ。
このような状況に LDA を使うと何が起きるか?LDA は「犬クラスの重心」を計算するが、チワワとグレートデーンの中間に位置するような「平均的な犬」は現実に存在しない。重心が実際のデータを代表しない。

MDA(Mixture Discriminant Analysis)はこの問題を解決する。各クラスをガウス混合モデル(Gaussian Mixture Model)で表現する。
ガウス混合モデルとは:「いくつかのガウス分布を混ぜ合わせてデータを表現する確率モデル」だ。「犬クラスは、チワワ分布・グレートデーン分布・柴犬分布の混合で表される」というイメージだ。
パラメータ推定には EM アルゴリズム(Expectation-Maximization)を使う。EMは以下の2ステップを繰り返す:
- E ステップ(Expectation):各データ点が「どのサブグループに属するか」の確率(責任度)を計算する
- M ステップ(Maximization):責任度に基づいて各サブグループの重心・形を更新する
MDA の確率モデル(クラス k の条件付き密度):
各記号の意味:
- R_k:クラス k のサブグループ数(事前に決める)
- π_kr:サブグループ r の混合係数(Σ_r π_kr = 1)
- μ_kr:サブグループ r の重心
- Σ:全サブグループ共通の共分散行列
MDA の分類:最大の事後確率を持つクラスに分類:
3手法の使い分け — どれをいつ使うか
FDA・PDA・MDA を「何がわかれば選べるか」という観点で整理しよう。

FDA を使うべき場面:データを2次元に可視化したとき、クラス境界が明らかに曲線を描いているとき。「直線で分けるのは無理そう」と目で見てわかるとき。MARS や決定木などの非線形回帰手法を組み合わせることで、柔軟な境界が引ける。
PDA を使うべき場面:変数の数(次元数)がサンプル数より多いとき。特に、隣り合う変数が「自然に滑らかに変化するはず」という事前知識があるとき——音声スペクトル、時系列データ、画像の隣接ピクセルなど。PDA は「データの自然な構造」をモデルに教えてやる手法だ。
MDA を使うべき場面:クラス内のデータが複数の塊に分かれているとき。医療データで「糖尿病クラス」の中に「軽症型」と「重症型」があるような状況。各クラスが単一の楕円形の分布ではなく、複数の山を持つ分布に見えるとき。
3手法は組み合わせられる。高次元データ(→PDA)でクラス内に複数のサブグループがある(→MDA)なら、両方の性質を組み合わせた「PDA + MDA」も可能だ。
LDA・FDA・PDA・MDA の全体を俯瞰すると、これらはすべて同じ「Optimal Scoring フレームワーク」の変形だとわかる:
| 手法 | 回帰方法 | 罰則 | クラスモデル |
|---|---|---|---|
| LDA | 線形回帰 | なし | 単一ガウス |
| FDA | 非線形回帰(MARS等) | なし | 単一ガウス |
| PDA | 線形回帰 | 滑らかさ罰則 | 単一ガウス |
| MDA | — | — | ガウス混合 |
同じ土台から生まれた手法だからこそ、「どこを変えるか」で3つの異なる問題に対応できる。
この式は通常の LDA の分類式(1つのガウス)を、混合ガウスに一般化したものだ。R_k = 1 とすると通常の LDA に戻る。
Waveform データの実験 — MDA の実力を測る
ESL の教科書が紹介する「Waveform(波形)データ」で、これらの手法の性能を比べよう。
問題の設定はこうだ:3種類の波形がある。各サンプルは21次元のベクトルで、3種類の波形(クラス1・2・3)のうちの1つにランダムノイズを加えたものだ。クラス1と3は形が似ており、分類が難しい。

理論的に達成できる最低誤分類率(ベイズ誤差)は約9.0%だ。つまり最良の分類器でも9%の誤りは避けられない。
MDA は LDA を改善している。しかも、なぜ MDA が良いかを直感的に理解できる:波形データの各クラスは、位相のずれた「サブタイプ」を含んでいる(同じ波形でも少し前後にずれたバリエーション)。MDA がこの「クラス内の多様性」を混合モデルで正しく捉えているからだ。
ただし LDA と MDA の差は約1.2%と小さい。1000サンプルなら12件の違いだ。「そんなにわずかなの?」と思うかもしれない。しかし2つの重要な点がある:
- 理論限界(9%)まではまだ差がある——この先の改善余地に MDA の方がより近づいている
- Waveform データは比較的シンプルで LDA でもある程度機能するケースだ
より複雑な現実データ——遺伝子発現プロファイル(数千次元)、医用画像(数万ピクセル)、テキスト分類——では、クラス内多様性がより顕著で、適切な拡張(FDA/PDA/MDA)が5〜15%以上の大きな差を生むことも珍しくない。
この章で学んだ3手法の価値は、「LDA を使えないとき(非線形/高次元/多峰性)に対応できるツールを持つ」ことにある。問題の性質を見て、適切な手法を選ぶ判断力——これが統計的機械学習の本質的なスキルだ。