C 线性判别分析(LDA)

<aside> 💡 LDA 简述

给入一组二分类标注的高维空间数据。找到一个此高维空间到一维空间的线性映射 $y = {\boldsymbol w} ^{\rm T} \boldsymbol x$,使得在一维空间中分类结果尽可能分明。

</aside>

上面说的「找到一个高维空间到一维空间的线性映射」也可以说是设法找到一条过原点的直线,映射结果即为投影结果,因而可以得到下图的表达。「尽可能分明值的是」:

Untitled

设降维方法为 $y = {\boldsymbol w} ^{\rm T} \boldsymbol x$,令 $X_c$ 表示两类别的集合,$c\in\{0, 1\}$。设两类样本的均值分别为 $\boldsymbol \mu_0, \boldsymbol \mu_1$(因为是各个维度下的均值,排成的是向量):

$$ \boldsymbol \mu_c = \frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} \boldsymbol x_c $$

那么根据线性变换,变换后均值可以从求和号里提出来,为 ${\boldsymbol w} ^{\rm T} \boldsymbol \mu_0, {\boldsymbol w} ^{\rm T} \boldsymbol \mu_1$(一维量)。

类间方差 $\sigma_B$ 即可描述为变换后均值间的距离的平方 $\sigma_B = | {\boldsymbol w} ^{\rm T} \boldsymbol \mu_0 - {\boldsymbol w} ^{\rm T} \boldsymbol \mu_1 |^2$。

C1a 描述类内方差

求每个类变换后内部的类内方差 $\sigma_{I,c}$。

$$ \begin{align*}

\sigma_{I,c}

&= \frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} ( {\boldsymbol w} ^{\rm T} \boldsymbol x_c - {\boldsymbol w}^{\rm T} \boldsymbol \mu_c )^2

= \frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} ({\boldsymbol w} ^{\rm T} ( \boldsymbol x_c - \boldsymbol \mu_c ))^2 \\

&= \frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} {\boldsymbol w} ^{\rm T} ( \boldsymbol x_c - \boldsymbol \mu_c ) ( \boldsymbol x_c - \boldsymbol \mu_c )^{\rm T} {\boldsymbol w} \\

&= {\boldsymbol w} ^{\rm T} \left( \frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} ( \boldsymbol x_c - \boldsymbol \mu_c ) ( \boldsymbol x_c - \boldsymbol \mu_c )^{\rm T} \right){\boldsymbol w}

\end{align*} $$

$\frac{1}{|X_c|}\sum_{\boldsymbol x_c\in X_c} ( \boldsymbol x_c - \boldsymbol \mu_c ) ( \boldsymbol x_c - \boldsymbol \mu_c )^{\rm T}$ 是一个数据集决定的特征,其实就是这个数据集上的协方差矩阵(记为 $\boldsymbol \Sigma_c$),描述的是高维空间各维度间的关系(如为正,说明正相关;如为负,说明负相关)。

因而类内方差可以用 $\sigma_{I,0} + \sigma_{I,1} = {\boldsymbol w} ^{\rm T} \boldsymbol \Sigma_0 {\boldsymbol w} + {\boldsymbol w} ^{\rm T} \boldsymbol \Sigma_1 {\boldsymbol w}$ 描述。

C1b 目标函数的构造

要一边最大化类间方差,一边最小化类内方差,定义要最大化的目标函数 $J({\boldsymbol w})$:

$$ J({\boldsymbol w}) = \frac{\sigma_B}{\sigma_{I,0} + \sigma_{I,1}} = \frac{| {\boldsymbol w} ^{\rm T} \boldsymbol \mu_0 - {\boldsymbol w} ^{\rm T} \boldsymbol \mu_1 |^2}{{\boldsymbol w} ^{\rm T} \boldsymbol \Sigma_0 {\boldsymbol w} + {\boldsymbol w} ^{\rm T} \boldsymbol \Sigma_1 {\boldsymbol w}} $$

作 $| {\boldsymbol w} ^{\rm T} \boldsymbol \mu_0 - {\boldsymbol w} ^{\rm T} \boldsymbol \mu_1 |^2 = (\boldsymbol w^{\rm T} (\boldsymbol \mu_0 - \boldsymbol \mu_1))^2 = \boldsymbol w^{\rm T} (\boldsymbol \mu_0 - \boldsymbol \mu_1) (\boldsymbol \mu_0 - \boldsymbol \mu_1)^{\rm T} \boldsymbol w$,有:

$$ J({\boldsymbol w}) = \frac{\boldsymbol w^{\rm T} (\boldsymbol \mu_0 - \boldsymbol \mu_1) (\boldsymbol \mu_0 - \boldsymbol \mu_1)^{\rm T} \boldsymbol w}{{\boldsymbol w} ^{\rm T} (\boldsymbol \Sigma_0 + \boldsymbol \Sigma_1) {\boldsymbol w}} $$

类间散度矩阵 $\boldsymbol S_b=(\boldsymbol \mu_0 - \boldsymbol \mu_1) (\boldsymbol \mu_0 - \boldsymbol \mu_1)^{\rm T}$、类内散度矩阵 $\boldsymbol S_w = \boldsymbol \Sigma_0 + \boldsymbol \Sigma_1$,有: