【高维数据降维】线性判别分析LDA

高维数据降维之线性判别分析 LDA

高维数据降维是指采用某种映射方法,降低随机变量的数量,例如将数据点从高维空间映射到低维空间中,从而实现维度减少。

降维分为:特征选择 和 特征提取
特征选择:是从含有冗余信息以及噪声信息的数据中找出主要变量;
特征提取:是去掉原来的数据,生成新的变量,可以寻找数据内部的本质结构特征。

降维的过程是通过对输入的原始数据特征进行学习,得到一个映射函数,实现将输入样本映射后到低维空间中之后,原始数据特征并没有明显的损失,通常情况下新空间的维度要小于原空间的维度。目前大部分降维算法是处理向量形式的数据。

线性判别分析 LDA

线性判别分析(LDA) 是一种有监督的线性降维算法。与 PCA 不同,LDA 是为了使降维后的数据点尽可能容易地被区分

线性判别分析在训练过程中,通过将训练样本投影到低纬度上,使得同类别地投影点尽可能接近,异类别样本地投影点尽可能远离,即同类点地方差尽可能小,而类之间地方差尽可能大;对新样本,将其投影到低纬空间,根据投影点的位置来确定其类别。

PCA 主要是从特征的协方差角度,去找到比较好的投影方式。

LDA 更多地考虑了标注,即希望投影后不同类别之间地数据点地距离更大,同一类别地数据点更紧凑。

计算每一项观测结果地判别分值,对其所处地目标变量所属类别进行判断。这些分值是通过寻找自变量地线性组合得到的。假设每类中的观测结果来自于一个多变量高斯分布,而观测变量的协方差在响应变量 y 的所有 k 级别都是通用的。

LDA 的降维过程:

(1) 计算数据集中每个类别下所有的样本的均值向量;

(2) 通过均值向量,计算类间散步矩阵 S B S_B SB 和类内散布矩阵 S W S_W SW

(3) 依据公式 S W − 1 S B U = λ U S_{W}^{-1} S_B U = \lambda U SW1SBU=λU进行特征值求解,计算 S W − 1 S B S_{W}^{-1} S_B SW1SB的特征向量和特征值;

(4) 按照特征值排序,选择前 k k k 个特征向量构成投影矩阵 U U U

(5) 通过 Y = X U Y = XU Y=XU 的特征值矩阵将所有样本转换到新的子空间中。

LDA 在求解过程中需要类内散度矩阵 S W S_W SW 和类间散度矩阵 S B S_B SB ,其中 S W S_W SW 由两类扩展得到,而 S B S_B SB 的定义则与两类有所不同,是由每类的均值和总体均值的乘积矩阵求和得到的。目标是求得一个矩阵 U U U 使得投影后类内散度尽量小,而类间散度尽量大。在多类情况下,散度表示为一个矩阵。一般情况下,LDA 之前会做一次 PCA ,保证 S W S_W SW 矩阵的正定性。

PCA 降维是直接与数据维度相关的,例如原始数据是 n n n 维,那么在使用了 PCA 后,可以任意选择最佳的 k ( k < n ) k(kk(k<n) 维。 LDA 降维是与类别个数相关的,与数据本身的维度没有关系,例如原始数据是 n n n 维,一共有 C C C 个类别,那么 LDA 降维之后,可选的一般不超过 C − 1 C-1 C1 维。

例如:假设图像分类,有两个类别为正例和反例,每个图像有 1024 维特征,那么 LDA 降维之后,就只有 1 维特征,而 PCA 可以选择降到 100 维。

你可能感兴趣的:(高维数据降维,算法,python,机器学习)