在模式识别中，**费雪线性判别**（Fisher's linear discriminant）是一种线性判别方法，其意图是在分类类别为c类时，将d维空间（样品点是d维向量）中的数据点投影到c-1维空间上去，使得不同类的样本点在这个空间上的投影尽量分离，同类的尽量紧凑。

两类情况
----

在二类判别时，费雪线性判别将**d**维空间中的数据点投影到一条直线上去，使得不同类的样本点在这条直线上的投影尽量分离，同类的样本点在这条直线上尽量紧凑。假设有两类样本集{\displaystyle {\mathcal {D}}\_{1}}的类别为**ω**1，样本数为**n**1，{\displaystyle {\mathcal {D}}\_{2}}的类别为**ω**2，样本数为**n**2。定义样本均值**m**i和类内散布**S**i。

{\displaystyle \mathbf {m} \_{i}={\frac {1}{n\_{i}}}\sum \_{x\in {\mathcal {D}}\_{i}}\mathbf {x} ,i=1,2}
{\displaystyle \mathbf {S} \_{i}=\sum \_{x\in {\mathcal {D}}\_{i}}\left(\mathbf {x} -\mathbf {m} \_{i}\right)\left(\mathbf {x} -\mathbf {m} \_{i}\right)^{t},i=1,2}
投影直线的方向向量为**w**，样本投影在直线上的值为*y*。则可得两类样本投影后的均值和类内散布为{\displaystyle {\tilde {m}}\_{i}}和{\displaystyle {\tilde {s}}\_{i}^{2}}，**i**=1,2。

{\displaystyle y=\mathbf {w} ^{t}\mathbf {x} \quad {\tilde {m}}\_{i}=\mathbf {w} ^{t}\mathbf {m} \_{i},i=1,2}
{\displaystyle {\begin{aligned}{\tilde {s}}\_{i}^{2}&=\sum \_{y\in {\mathcal {Y}}\_{i}}\left(y-{\tilde {m}}\_{i}\right)^{2}\\&=\sum \_{x\in {\mathcal {D}}\_{i}}\left(\mathbf {w} ^{t}\mathbf {x} -\mathbf {w} ^{t}\mathbf {m} \_{i}\right)^{2}\\&=\sum \_{x\in {\mathcal {D}}\_{i}}\mathbf {w} ^{t}\left(\mathbf {x} -\mathbf {m} \_{i}\right)\left(\mathbf {x} -\mathbf {m} \_{i}\right)^{t}\mathbf {w} \\&=\mathbf {w} ^{t}\mathbf {S} \_{i}\mathbf {w} \end{aligned}}}
要使不同类的样本点的投影尽量分离，同类尽量紧凑，可以使两类的投影的均值的差异尽量大，其方差的和尽量小，也就是要求{\displaystyle {\frac {\left|{\tilde {m}}\_{1}-{\tilde {m}}\_{2}\right|^{2}}{{\tilde {s}}\_{1}^{2}+{\tilde {s}}\_{2}^{2}}}}最大化。

{\displaystyle {\begin{aligned}{\boldsymbol {J}}(\mathbf {w} )&={\frac {\left|{\tilde {m}}\_{1}-{\tilde {m}}\_{2}\right|^{2}}{{\tilde {s}}\_{1}^{2}+{\tilde {s}}\_{2}^{2}}}\\&={\frac {\left(\mathbf {w} ^{t}\mathbf {m} \_{1}-\mathbf {w} ^{t}\mathbf {m} \_{2}\right)^{2}}{\mathbf {w} ^{t}\mathbf {S} \_{1}\mathbf {w} +\mathbf {w} ^{t}\mathbf {S} \_{2}\mathbf {w} }}\\&={\frac {\mathbf {w} ^{t}\left(\mathbf {m} \_{1}-\mathbf {m} \_{2}\right)\left(\mathbf {m} \_{1}-\mathbf {m} \_{2}\right)^{t}\mathbf {w} }{\mathbf {w} ^{t}\left(\mathbf {S} \_{1}+\mathbf {S} \_{2}\right)\mathbf {w} }}\\&={\frac {\mathbf {w} ^{t}\mathbf {S\_{B}} \mathbf {w} }{\mathbf {w} ^{t}\mathbf {S\_{W}} \mathbf {w} }}\\\end{aligned}}}
{\displaystyle \mathbf {S\_{B}} =\left(\mathbf {m} \_{1}-\mathbf {m} \_{2}\right)\left(\mathbf {m} \_{1}-\mathbf {m} \_{2}\right)^{t},\mathbf {S\_{W}} =\left(\mathbf {S} \_{1}+\mathbf {S} \_{2}\right)}
可以证明当**w**满足{\displaystyle \mathbf {S\_{B}w} =\lambda \mathbf {S\_{W}w} }，即**w**的方向与{\displaystyle \mathbf {S\_{W}} ^{-1}\left(\mathbf {m} \_{1}-\mathbf {m} \_{2}\right)}相同时，***J***(**w**)取得最大值。剩下的问题就是如何求解阈值**w**0，也就是在这个一维空间中把两类分开的那个点的位置。当***J***(**w**)超过**w**0就判决为某一类别**ω**，否则就判决为另一类别。然而目前并没有一个通用的选取方法。

在两个类别的分布是多元正态分布，且协方差矩阵相同时，根据贝叶斯决策理论，{\displaystyle \mathbf {w} =\mathbf {\Sigma } ^{-1}\left(\mathbf {u} \_{1}-\mathbf {u} \_{2}\right)}，并且**w**0是一个与**w**和先验概率有关的常数。我们可以用样本均值与样本协方差去估计**u**i和**Σ**。更一般地说，如果我们对投影后的数据进行平滑，或用一维高斯函数进行拟合，**ω**0就位于使两类的后验概率相同的位置上。

多类情况
----

费雪线性判别在面对二类判别时，将两类样本向一条直线投影，也就是将数据从d维空间向1维空间投影。这样在面对c个类的判别时，所要做就是将数据从d维空间向c-1维空间投影。这就需要推广投影方程、类间散布矩阵**S**B和类内散布矩阵**S**W。从d维空间向c-1维空间的投影是通过c-1投影方程进行的：

{\displaystyle y\_{i}=\mathbf {w} \_{i}^{t}\mathbf {x} ,\mathbf {x} \in {\mathcal {D}}\_{i}\quad i=1,\ldots ,c-1}

这里的{\displaystyle {\mathcal {D}}\_{i}}为第i类的样本集。设{\displaystyle \mathbf {y} =[y\_{1},y\_{2},\ldots ,y\_{c-1}]^{t}\quad \mathbf {W} =[w\_{1},w\_{2},\ldots ,w\_{c-1}]}，c-1个方程可以更简练地表达：

{\displaystyle \mathbf {y} =\mathbf {W} ^{t}\mathbf {x} ,\mathbf {y} \in {\mathcal {Y}}\_{i}\quad i=1,\ldots ,c-1}

这里的{\displaystyle {\mathcal {Y}}\_{i}}为第i类的样本的投影向量集。类间散布矩阵**S**B和类内散布矩阵**S**W可以由总体散布矩阵**S**T和总体均值向量**m**推导得到：
{\displaystyle \mathbf {m} ={\frac {1}{n}}\sum \_{\mathbf {x} }\mathbf {x} ={\frac {1}{n}}\sum \_{i=1}^{c}n\_{i}\mathbf {m} \_{i}\qquad \mathbf {S} \_{T}=\sum \_{\mathbf {x} }(\mathbf {x} -\mathbf {m} )(\mathbf {x} -\mathbf {m} )^{t}}

{\displaystyle {\begin{aligned}\mathbf {S} \_{T}&=\sum \_{i=1}^{c}\sum \_{\mathbf {x} \in {\mathcal {D}}\_{i}}(\mathbf {x} -\mathbf {m} \_{i}+\mathbf {m} \_{i}-\mathbf {m} )(\mathbf {x} -\mathbf {m} \_{i}+\mathbf {m} \_{i}-\mathbf {m} )^{t}\\&=\sum \_{i=1}^{c}\sum \_{\mathbf {x} \in {\mathcal {D}}\_{i}}(\mathbf {x} -\mathbf {m} \_{i})(\mathbf {x} -\mathbf {m} \_{i})^{t}+\sum \_{i=1}^{c}\sum \_{\mathbf {x} \in {\mathcal {D}}\_{i}}(\mathbf {m} \_{i}-\mathbf {m} )(\mathbf {m} \_{i}-\mathbf {m} )^{T}\\\end{aligned}}}

由此定义类间散布矩阵**S**B和类内散布矩阵**S**W：

{\displaystyle \mathbf {S} \_{W}=\sum \_{i=1}^{c}\sum \_{\mathbf {x} \in {\mathcal {D}}\_{i}}(\mathbf {x} -\mathbf {m} \_{i})(\mathbf {x} -\mathbf {m} \_{i})^{t}\quad \mathbf {S\_{B}} =\sum \_{i=1}^{c}\sum \_{\mathbf {x} \in {\mathcal {D}}\_{i}}(\mathbf {m} \_{i}-\mathbf {m} )(\mathbf {m} \_{i}-\mathbf {m} )^{T}}

{\displaystyle \mathbf {S} \_{T}=\mathbf {S} \_{W}+\mathbf {S\_{B}} }

那么样本数据的投影向量的类间散布矩阵{\displaystyle {\widetilde {\mathbf {S} }}\_{\mathbf {B} }}和类内散布矩阵{\displaystyle {\widetilde {\mathbf {S} }}\_{\mathbf {W} }}：即为：

{\displaystyle {\widetilde {\mathbf {S} }}\_{\mathbf {B} }=\sum \_{i=1}^{c}\sum \_{\mathbf {y} \in {\mathcal {Y}}\_{i}}({\widetilde {\mathbf {m} }}\_{i}-{\widetilde {\mathbf {m} }})({\widetilde {\mathbf {m} }}\_{i}-{\widetilde {\mathbf {m} }})^{T}=\mathbf {W} ^{t}\mathbf {S\_{B}} \mathbf {W} }

{\displaystyle {\widetilde {\mathbf {S} }}\_{\mathbf {W} }=\sum \_{i=1}^{c}\sum \_{\mathbf {y} \in {\mathcal {Y}}\_{i}}(\mathbf {y} -{\widetilde {\mathbf {m} }}\_{i})(\mathbf {y} -{\widetilde {\mathbf {m} }}\_{i})^{t}=\mathbf {W} ^{t}\mathbf {S\_{W}} \mathbf {W} }

与两类情况类似，要找到某一**W**使得类内散布尽量小，类间散布尽量大。但这里的类内散布和类间散布不再是一个值，而是一个矩阵。矩阵的行列式是矩阵的特征值的乘积，也就是数据在各个主要方向的方差的积，相当于类别散布超椭球体的体积的平方。故使用行列式来度量散布，这样判别函数即为{\displaystyle {\boldsymbol {J}}(\mathbf {w} )={\frac {|{\widetilde {\mathbf {S} }}\_{\mathbf {B} }|}{|{\widetilde {\mathbf {S} }}\_{\mathbf {W} }|}}={\frac {|\mathbf {W} ^{t}\mathbf {S\_{B}} \mathbf {W} |}{|\mathbf {W} ^{t}\mathbf {S\_{W}} \mathbf {W} |}}}

可以证明，当**W**的列向量**w**i是{\displaystyle \mathbf {S\_{B}} \mathbf {w} \_{i}=\mathbf {\lambda } \_{i}\mathbf {S\_{W}} \mathbf {w} \_{i}}的广义特征向量时，可以使得***J***(**w**)最大。因为**S**B中c个秩为1或0的矩阵相加，而且其中只有c-1个矩阵是相互独立的。所以**S**B的秩最多为c-1。所以最多只有c-1个特征向量是非零的。

应用
--

### 人脸识别

在人脸识别中，每一个人脸图像具有大量的像素点。LDA主要用来将特征减少到一个可以处理的数目在进行分类。每一个新的维度都是原先像素值的线性组合，这就构成了一个模板。这样获得的线性组合被称为Fisher faces,而通过主成分分析获得的则称为特征脸。

参考文献
----

* Duda, R. O.; Hart, P. E.; Stork, D. H.  第2版. 机械工业出版社. 2004. ISBN 7-111-13687-X.

* Fisher, R. A.. Annals of Eugenics. 1936, **7** (2): 179–188. doi:10.1111/j.1469-1809.1936.tb02137.x. hdl:2440/15227.