LDA 线性判别分析公式推导

学习 LDA 其实我也没觉得它有什么很重要的应用,甚至我还听到了一种说法,觉得 LDA 是一个比较鸡肋的算法(这一点恐怕要打一个大大的问号),但是在学习 LDA 的过程中,可以巩固我们对常见数学工具的应用,因为其中用到的拉格朗日乘子法,定义的协方差矩阵、投影到向量的思想是常见而且基础的。

LDA 的思想

与 PCA 不同,LDA 需要利用类标信息进行降维,是一种监督学习降维技术。

训练时:给定训练样例集,设法将样例投影到一条直线上,使得:

1、同类样本的投影点尽可能地接近;
2、异类样本的投影点尽可能地远离。

要学习的就是这样一条直线:投影到一条直线上,直线是一维的,所以待求的参数是一个向量(特指列向量);那么降维体现在哪里呢?我们求出了这个直线向量 w 以后,可以归一化,得到一个单位向量,然后去掉这个单位向量中分量比较小的量,只保留比较大的分量,这样就达到了降维的目的

预测时:将待预测的样本投影到学习到的直线上,根据它的投影点的位置来判断它的类别。

LDA 的核心思想

LDA 的核心思想:投影变换后

1、类间距离最大;
2、类内方差最小。

定量描述 LDA 的核心思想

类标在 LDA 算法执行过程中就发挥了重要作用:

\frac{均值向量投影以后的距离尽可能大(不同的类投影以后更加分散)}{投影以后的两个类标的点的方差之和尽可能小(同类的点投影以后更加集中)}

LDA 公式推导

1、我们将原始的数据矩阵记为 X,对应的类标向量记为 y
2、根据类标 01 将矩阵 X 和分为两个部分。X_0 对应的均值向量为 \mu_0X_1 对应的均值向量为 \mu_1(这里均值向量是每个行向量加起来以后除以向量的个数);
3、投影以后类间距离最大:即不同类标的均值向量投影以后落在直线上的点间的距离最大。

类标为 0 的点的均值向量投影到直线上得到的实数:w^T\mu_0w^T1 \times n 维, \mu_0n \times 1 维,因此 w^T\mu_0 是一个实数);类标为 1 的点的均值向量投影到直线上得到的实数: w^T\mu_1。它们之间的距离,即为“投影到直线以后的类内间距”:(w^T\mu_0-w^T\mu_1)^2。整理一下:

\begin{aligned} (w^T\mu_0-w^T\mu_1)^2 &= (w^T(\mu_0-\mu_1))^2 \\ &=(w^T(\mu_0-\mu_1))((\mu_0-\mu_1)^Tw)\\ &=w^T((\mu_0-\mu_1)(\mu_0-\mu_1)^T)w \end{aligned}

4、“投影以后组内的方差之和尽量小”(这里的方差没有除以倍数)用数学表达出来就是:
类标为 0​ 的点投影到直线上的方差是:
\sum_{x \in X_0}(w^Tx-w^T\mu_0)^2
类标为 1 的点投影到直线上的方差是:
\sum_{x \in X_1}(w^Tx-w^T\mu_1)^2
它们的和是:

\sum_{x \in X_0}(w^Tx-w^T\mu_0)^2 + \sum_{x \in X_1}(w^Tx-w^T\mu_1)^2=\sum_{x \in X_0}w^T(x-\mu_0)(x-\mu_0)^Tw + \sum_{x \in X_1}w^T(x-\mu_1)(x-\mu_1)^Tw
写成这样以后,才能够很清晰地看到书上定义的协方差矩阵

参考资料

1、周志华《机器学习》
2、刘建平:线性判别分析 LDA 原理总结
http://www.cnblogs.com/pinard/p/6244265.html
3、LDA线性判别分析
https://zhuanlan.zhihu.com/p/32658341

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容