1.降维原理的概述
由于特征数据过于庞大,需要对数据进行降维处理,即通过某种映射方法将原始高维空间中的数据点映射到低维度的空间中(减少特征的个数),比较经典的是LDA线性判别分析(Linear Discriminant Analysis)和PCA主成分分析。
LDA线性判别分析也叫作Fisher 线性判别(FLD)(有监督问题),最初用于机器学习的分类任务,更多用于降维。降维不仅要压缩数据的特征,还需找到合适的投影方向,使得压缩后的数据更有利用价值。
降维的两个目标:
(1)不同类别的数据点,投影后离得越远越好
(2)同类别的数据点,投影后越集中越好,离组织的中心越近越好
2.优化的目标
投影就是通过矩阵变换把数据映射到最适合做分类的方向
x表示原始数据所在空间,y表示降维后数据所在空间,求最合适的变换方向就是求解出参数w。
(1)不同类别的数据(不同的特征数据)
不同类别的数据点,投影后离得越远越好
数据点的均值表示数据的中心位置,中心点位置的计算方法如下:
对于多分类的问题,要得到各自类别的中心点,在降维算法中,我们比较关心的是投影后数据的中心点位置:
i表示第i类数据。对于二分类问题,我们希望这两类数据的中心点里的越远越好,
即我们希望越大越好
(2)同类别的数据
同类别的数据点,投影后越集中越好,离组织的中心越近越好
散列值:表示同类数据样本点的离散程度,定义如下:
y表示投影后的数据,表示投影后数据的中心点位置,散列值表示样本的密集程度,值越大,越分散;值越小,则越集中。
我们的目标希望越大也挺好,
越小越好
3.线性判别分析求解
对于二分类任务,要最大化不同类别之间的距离,将其作为分子,最小化同类样本之间的离散程度,作为分母,即最终整体的求其极大值,对于两类数据,
而
记
为散布(离散)矩阵
定义类内总的散布矩阵为:
可得:
而
记为类间散布矩阵。
目标函数最终可以表示成:
对于和
,只要有数据和标签就可以求解.对于J(w),通常先固定分母,经过放缩变换之后,将其值限定为1,则令:
,在此条件下求解
的极大值点,利用拉格朗日乘子法:
,
对其关于w求导令其为0:
即:
在线性判别法中,只要得到和
,然后求其特征值,可以得到投影方向,然后对数据做相应的矩阵变换,就完成全部的降维操作。
参考文档:《跟着迪哥学Python数据分析与机器学习实战》