今天小编为大家讲解数据预处理中的LDA线性判别分析。
线性判别分析(Linear Discriminate Analysis,LDA)是一种特征抽取的技术,用以提高数据分析过程中的计算效率。
我们在主成分分析(Principal Component Analysis,PCA)中将数据点进行降维时,考虑的是将数据整体向某一方向投影。但数据内部有类别标签时,PCA可能就显得不那么出色了。如下图。
虽然我们也可以看出数据在该投影方向上的密度划分,但数据类别(图中红点、蓝点)已经交织在一起,图像整体感觉很乱。
我们换一种投影方式,如下图,这回图像能表达的信息明显清晰多了,红点、蓝点也有效分开。
该投影方向并不追求所有数据点垂直到向量的欧式距离之和最短,而是提出如下两个参数来确定最终方向:类间散度和类内散度。
投影过后的类间散度和类内散度如下:
有了上述两个重要参数,LDA的好坏程度就可以用J表示(Fisher线性判别):
公式分子为类间散度,越大越好。分母为类内散度,越小越好。
定下来求解目标,数学推导过程如下(可不看):
μi为每类中心。上面带一个~的表示投影过后的点。
上式SB就是类间散度,between-classscatter
SW为类内散度,within-classscatter
结合SB,SW式子转化成相对规整的形式
J(W)对W求导等于0
得到
公式中,J为矩阵
的特征值。
绕了一圈,LDA的求解又转换为求矩阵特征值的问题。
以具有两类标签的数据为例,我们有如下数据:红叉和蓝叉。
计算,并求其特征值,和PCA问题一样,最大特征值对应的特征向量为求解向量方向。经matlab计算我们得到解w=(0.6656,-0.7463)。
投影后图像如图(数据投影后为圈):
我们看到,数据被降维,且被相对完好的分为两类。
如果数据标签数量为3呢?
我们看到,经投影后,数据在保证类内聚合度很高的情况下,类之间的耦合度也被降到最低。
但是投影后数据点之间也难免会存在重叠的情况。这也说明,LDA在进行数据降维时也并不能做到完美,面对有些复杂数据降维效果也不是很优秀。但在很多领域,信息数据仅仅通过线性分析就可以找出其中规律,解决这些实际问题时LDA具有十分重要的意义。