机器学习之LDA线性判别分析

思想总结

线性判别分析( Linear Discriminant Analysis , LDA )是一种经典的降维方法。和主成分分析 PCA 不
考虑样本类别输出的无监督降维技术不同, LDA 是一种监督学习的降维技术,数据集的每个样本有类别输出。

LDA 分类思想简单总结如下:

  • 多维空间中,数据处理分类问题较为复杂, LDA 算法将多维空间中的数据投影到一条直线上,将 d
    维数据转化成 1 维数据进行处理。
  • 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽
    可能远离。
  • 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别
    如果用一句话概括 LDA 思想,即 “ 投影后类内方差最小,类间方差最大 ” 。

图解 LDA 核心思想

假设有红、蓝两类数据,这些数据特征均为二维,如下图所示。我们的目标是将这些数据投影到一维,让每一类相近的数据的投影点尽可能接近,不同类别数据尽可能远,即图中红色和蓝色数据中心之间的距离尽可能大。
机器学习之LDA线性判别分析_第1张图片
左图和右图是两种不同的投影方式。

  • 左图思路:让不同类别的平均点距离最远的投影方式。
  • 右图思路:让同类别的数据挨得最近的投影方式。

从上图直观看出,右图红色数据和蓝色数据在各自的区域来说相对集中,根据数据分布直方图也可看出,所以右图的投影效果好于左图,左图中间直方图部分有明显交集。
以上例子是基于数据是二维的,分类后的投影是一条直线。如果原始数据是多维的,则投影后的分类面是一低维的超平面。

二类LDA算法原理

输入:数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) D={(\boldsymbol x_1,\boldsymbol y_1),(\boldsymbol x_2,\boldsymbol y_2),...,(\boldsymbol x_m, \boldsymbol y_m)} D=(x1,y1),(x2,y2),...,(xm,ym),其中样本 x i \boldsymbol x_i xi 是 n 维向量, y i ϵ 0 , 1 \boldsymbol y_i \epsilon{0, 1} yiϵ0,1 ,降维后的目标维度 d d d 。定义
N j ( j = 0 , 1 ) N_j(j=0,1) Nj(j=0,1) 为第 j j j 类样本个数;
X j ( j = 0 , 1 ) X_j(j=0,1) Xj(j=0,1) 为第 j j j 类样本的集合;
u j ( j = 0 , 1 ) u_j(j=0,1) uj(j=0,1) 为第 j j j 类样本的均值向量;
∑ j ( j = 0 , 1 ) \sum_j(j=0,1) j(j=0,1) 为第 j j j 类样本的协方差矩阵。
其中
在这里插入图片描述
假设投影直线是向量 w \boldsymbol w w ,对任意样本 x i \boldsymbol x_i xi ,它在直线 w w w 上的投影为 w T x i \boldsymbol w^Tx_i wTxi ,两个类别的中心点 u 0 u_0 u0, u 1 u_1 u1 在直线 w w w 的投影分别为 w T u 0 \boldsymbol w^Tu_0 wTu0 w T u 1 \boldsymbol w^Tu_1 wTu1

LDA 的目标是让两类别的数据中心间的距离 ∣ w T u 0 − w T u 1 ∣ 2 2 | \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1|^2_2 wTu0wTu122 尽量大,与此同时,希望同类样本投影点的协方差 w T ∑ 0 w \boldsymbol w^T \sum_0\boldsymbol w wT0w w T ∑ 1 w \boldsymbol w^T \sum_1 \boldsymbol w wT1w 尽量小,最小化 w T ∑ 0 w + w T ∑ 1 w \boldsymbol w^T \sum_0\boldsymbol w + \boldsymbol w^T \sum_1 \boldsymbol w wT0w+wT1w

定义类内散度矩阵
在这里插入图片描述
类间散度矩阵 S b = ( u 0 − u 1 ) ( u 0 − u 1 ) T S_b = (u_0 - u_1)(u_0 - u_1)^T Sb=(u0u1)(u0u1)T

据上分析,优化目标为
在这里插入图片描述
根据广义瑞利商的性质,矩阵 S − 1 w S b S^{-1}{w} S_b S1wSb 的最大特征值为 J ( w ) J(\boldsymbol w) J(w) 的最大值,矩阵 S − 1 w S b S^{-1}{w} S_b S1wSb 的最大特征值对应的特征向量即为 w \boldsymbol w w

LDA算法流程总结

算法降维流程如下:
输入:数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) D = { (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) } D=(x1,y1),(x2,y2),...,(xm,ym) ,其中样本 x i x_i xi 是 n 维向量, y i ϵ C 1 , C 2 , . . . , C k y_i \epsilon {C_1, C_2, ..., C_k} yiϵC1,C2,...,Ck ,降维后的目标维度 d d d
输出:降维后的数据集 D ‾ \overline{D} D
步骤:

  • 计算类内散度矩阵 S w S_w Sw
  • 计算类间散度矩阵 S b S_b Sb
  • 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw1Sb
  • 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw1Sb 的最大的 d 个特征值。
  • 计算 d 个特征值对应的 d 个特征向量,记投影矩阵为 W 。
  • 转化样本集的每个样本,得到新样本 P i = W T x i P_i = W^Tx_i Pi=WTxi
  • 输出新样本集 D ‾ = ( p 1 , y 1 ) , ( p 2 , y 2 ) , . . . , ( p m , y m ) \overline{D} = { (p_1,y_1),(p_2,y_2),...,(p_m,y_m) } D=(p1,y1),(p2,y2),...,(pm,ym)

LDA优缺点

优点

  • 可以使用类别的先验知识
  • 以标签,类别衡量差异性的有监督降维方式,相对于PCA的模糊性,其目的更明确,更能反映样本间的差异

缺点

  • LDA不适合对非高斯分布样本进行降维
  • LDA降维最多降到分类数k-1维
  • LDA在样本分类信息依赖方差而不是均值时,降维效果不好
  • LDA可能过度拟合数据

LDA和PCA的区别

相同点

  • 两者俊可以对数据进行降维
  • 两者在降维时均使用了矩阵特征分解的思想
  • 两者都假设数据符合高斯分布

不同点

LDA PCA
有监督 无监督
降维最多降到k-1维 降维多少没有限制
可以用于降维,还可以用于分类 只用于降维
选择分类性能最好的投影方向 选择样本点投影具有最大方差的方向
更明确,更能反应样本间的差异 目的较为模糊

你可能感兴趣的:(机器学习,机器学习)