LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。
LDA的基本思想是:
找到一个最佳的判别矢量空间w,使得投影到该空间的样本的类间离散度与类内离散度比达到最大。
目标:先计算出w,至于计算后如何时候分类在得到结果后再说。
两类线性判别分析
数据:N个样本数据,其中每个数据都是d维。即样本x(i)为d维,d*1的列向量,其中N1个数据是C1类,N2个数据是C2类。
目的:先求出w在对新的样本x进行分类,其中w为d*1的列向量。
类别i投影后的中心点为:
衡量类别i投影后,类别点之间的分散程度(方差)为:
最终我们可以得到一个下面的公式,表示LDA投影到w后的损失函数:
带入Si,将J(w)分母化为:
同样的将J(w)分子化为:
这样损失函数可以化成下面的形式:
将分母限制为长度为1(这是用拉格朗日乘子法一个很重要的技巧,在下面将说的PCA里面也会用到,如果忘记了,请复习一下高数),并作为拉格朗日乘子法的限制条件,带入得到:
这样的式子就是一个求特征值的问题了。
对于N(N>2)分类的问题,我就直接写出下面的结论了:
这同样是一个求特征值的问题,我们求出的第i大的特征向量,就是对应的Wi了。
那降维之后又如何根据y值来判别分类呢?取[y1,y2,...,yk]中最大的那个就是所属的分类。
不清楚计算w后之后的分类。待探究。
常用的方法:1. one-vs-all方法训练K个分类器(这个方法在综合时不知道怎么处理?)
- 任意两个分类配对训练分离器最后得到k(k-1)/2个的二类分类器