線形判別分析
判別分析の目的は量的なデータを元に質的な結果を予想すること。例えば身長や体重、血圧といった量的なデータを元に、その人が健康か不健康かを判断する。線形判別とはデータを直線で分け、データが直線の左右どちらにあるかを判別する。図1は2次元データの散布図であり、青グループと赤グループは質的に異なると仮定する。青を1群、赤を2群とし、直線を引いてこれらを区別する。

まずデータの平均(図2の黒点)を通る直線を引き、さらにその直線に直交する直線(
)を引く。直線
は青(1群)と赤(2群)の判別のために用いる。

直線に、各データ
から垂線を下ろす。
上で垂線の足が青と赤でよく分かれていれば精度のよい判別ができる、と考える。
の方向ベクトルを
とする。

各データから
に下ろした垂線の足とデータの平均
との距離を
とする。
は正負付きの距離であり、平均より右側が正(+)、左側が負(-)。

ここでの方向ベクトル
を
、平均から各データに向かう方向ベクトルを
とすると、
は
と
の内積によって計算できる。

青(1群)のデータ数を個、赤(2群)のデータ数を
個とする。よって2次元データ
の総数は
。ここで
について3種類の変動を定義できる。
- 全変動(total)
- 郡内変動(within class)
- 群間変動(between class)
全変動は郡内変動と群間変動の和で表される。
図4を使って変動をイメージする。全変動はすべてのと全平均(黒点)との偏差の平方和。郡内変動はすべての
と、青(1群)と赤(2群)それぞれの平均との偏差の平方和。群間変動は全平均(黒点)と各郡の平均との偏差の平方和。
最大化問題の立式
線形判別の目的は直線によってなるべく明確にデータをグループ分けすること。明確ではない分け方とは青(1群)と赤(2群)に重複があるような場合。つまり青(1群)と赤(2群)がよくばらつくような直線を引けばよい。また青(1群)と赤(2群)はそれぞれ同質なデータを集約したものであるため、よくまとまっているようなグループ分けが理想である。すなわち群間変動()を最大にし、郡内変動(
)を最小にするような直線
を引けばよい。目的関数を
とし、これを最大にするような直線
の方向ベクトル
を選ぶ。
判別方法
(6)の最大化問題の解をとする。直線
に直交する直線
の式は、全データの平均
を通り、ベクトル
に直交する直線の式であるため、
と表すことができる。

ここで新しいデータが得られたと仮定し、青(1群)と赤(2群)のどちらに属するかを判別する。まず
の垂線の足と元のデータの中心との距離(判別得点)
を計算する。
判別得点の符号(正負)で青(1群)と赤(2群)のどちらかに属するかを判別する。
線形判別関数
(6)の最大化問題を満たす方向ベクトルをは次のように与えられる。
は青(1群)と赤(2群)のデータだけで計算した平均のベクトル。
すると判別関数は以下のように書き換えられる。
の中点を
だと考えると、
と書くこともできる。(12)のように青(1群)と赤(2群)の平均のベクトルを使い、データの判別関数を表すこともできる。
これをフィッシャーの線形判別関数と呼ぶ。