2クラス分類の場合
問題設定
2つのクラス$C_1$と$C_2$に帰属するデータ$\rm{\boldsymbol{x}_i}$があるとき、うまく境界線を引いてデータをクラスごとに分割したい。
言い換えると、D次元のベクトル$\rm{\boldsymbol{w}}$で
\rm{\boldsymbol{y}_i} = \rm{\boldsymbol{w}}^T\rm{\boldsymbol{x}_i}
のようにデータ$\rm{\boldsymbol{x}_i}$を$\rm{\boldsymbol{y}_i}$に投影した(線形変換に相当)とき、それぞれのデータの投影先がクラスごとにまとまりかつ別のクラスのデータどうしが混ざらないようにしたい。
線形変換wが満たすべき条件
上で述べたような、投影した後のデータがクラスごとにまとまっているための条件は、以下の2つとする。
①投影先で、各クラスの平均どうしが離れている
各クラスの平均ベクトルをそれぞれ$\mathrm{\boldsymbol{m}_1}$, $\mathrm{\boldsymbol{m}_2}$とすると、平均間の偏差は、
\mathrm{\boldsymbol{w}^T\boldsymbol{m}_1-\boldsymbol{w}^T\boldsymbol{m}_2 =\boldsymbol{w}^T(\boldsymbol{m}_1-\boldsymbol{m}_2)}
とあらわされる。後の計算のため二次形式であらわすと
\begin{align*}
&
\mathrm{\boldsymbol{w}^T(\boldsymbol{m}_1-\boldsymbol{m}_2)(\boldsymbol{m}_1-\boldsymbol{m}_2)^T\boldsymbol{w}}\\
&=\mathrm{\boldsymbol{w}}^TS_B\mathrm{\boldsymbol{w}}
\end{align*}
となり、特にクラス間分散共分散行列$S_B$を
S_B = \mathrm{(\boldsymbol{m}_1-\boldsymbol{m}_2)(\boldsymbol{m}_1-\boldsymbol{m}_2)^T}
と定義した。
②投影先で、各クラスのばらつきが少ない
投影先での、クラス$C_k$内での分散は
\begin{align*}
&
\sum_{x_i\in C_1}(\mathrm{\boldsymbol{w}^T\boldsymbol{x}_i-\boldsymbol{w}^T\boldsymbol{m}_1})^2+\sum_{x_i\in C_2}(\mathrm{\boldsymbol{w}^T\boldsymbol{x}_i-\boldsymbol{w}^T\boldsymbol{m}_2)^2} \\
&= \sum_{k=1,\ 2}\sum_{x_i\in C_k}\mathrm{\boldsymbol{w}^T(\boldsymbol{x}_i-\boldsymbol{m}_k)(\boldsymbol{x}_i-\boldsymbol{m}_k)^T\boldsymbol{w}}\\
&=\mathrm{\boldsymbol{w}^T}S_W\mathrm{\boldsymbol{w}}
\end{align*}
とあらわされる。特にクラス内分散共分散行列$S_W$を
\begin{align*}
S_W &= \sum_{x_i\in C_1}\mathrm{(\boldsymbol{x}_i-\boldsymbol{m}_1)(\boldsymbol{x}_i-\boldsymbol{m}_1)^T} +\sum_{x_i\in C_2}\mathrm{(\boldsymbol{x}_i-\boldsymbol{m}_2)(\boldsymbol{x}_i-\boldsymbol{m}_2)^T}\\
&=\sum_{k=1,\ 2}\sum_{x_i\in C_k}\mathrm{(\boldsymbol{x}_i-\boldsymbol{m}_k)(\boldsymbol{x}_i-\boldsymbol{m}_k)^T}
\end{align*}
と定義した。
評価関数
以上の①と②をまとめて評価したい。具体的には
\begin{align*}
J(\boldsymbol{w}) &= \frac{\text{クラス間平均の偏差の二乗}}{\text{各クラス内の偏差二乗和}} \\
&= \frac{\mathrm{\boldsymbol{w}}^TS_B\mathrm{\boldsymbol{w}}}{\mathrm{\boldsymbol{w}}^TS_W\mathrm{\boldsymbol{w}}}
\end{align*}
を最大にする$\mathrm{\boldsymbol{w}}$をもとめることになる(以後、$\mathrm{\boldsymbol{w}}$の大きさを1として考える)。$J(\mathrm{\boldsymbol{w}})$が最大となるとき、
\frac{\partial J(\mathrm{\boldsymbol{w}})}{\partial \mathrm{\boldsymbol{w}}} =0
が成り立ち、変形すると(省略)
\mathrm{\boldsymbol{w}} \propto S_W^{-1}(\mathrm{\boldsymbol{m}_1-\boldsymbol{m}_2})
と計算される。
固有値問題の解としてのw
$\mathrm{\boldsymbol{w}}$は、行列$S_W^{-1}S_B$の固有ベクトルである。証明はとんちみたいなものなので省略。