机器学习笔记之线性判别分析(LDA)

写在前面:本文主要内容是LDA在机器学习领域的公式推导,仅当作笔记使用。

1. 简介

  • LDA(Linear Discriminant Analysis)是一种经典的线性学习方法,该算法属于监督算法。

  • 给定训练集,设法将训练集投影到低维空间上,从而达到了降维的效果。
  • 投影的结果要使同类样例的投影点尽可能接近、异类的投影点尽可能远离(同类相近、异类远离原则)。
  • 下图给出了二维训练集投影到一维直线的效果图(图片来自《机器学习》周志华)机器学习笔记之线性判别分析(LDA)

2. 算法内容(二分类)

  • 给定数据集机器学习笔记之线性判别分析(LDA),其中机器学习笔记之线性判别分析(LDA)。并定义:
    • 第i类(1或0)示例的集合为机器学习笔记之线性判别分析(LDA)
    • 第i类示例集合的均值向量为机器学习笔记之线性判别分析(LDA)
    • 第i类示例集合的协方差矩阵机器学习笔记之线性判别分析(LDA)机器学习笔记之线性判别分析(LDA)
    • 投影目标直线为机器学习笔记之线性判别分析(LDA)
    • 综上可以得到
      • 两类样本中心在机器学习笔记之线性判别分析(LDA)上的投影分别为机器学习笔记之线性判别分析(LDA)机器学习笔记之线性判别分析(LDA)
      • 两类样本协方差分别为机器学习笔记之线性判别分析(LDA)机器学习笔记之线性判别分析(LDA)
      • 直线为一维空间,则上述4项皆为实数
  • 考虑同类相近、异类远离的原则,则只尽量同时需要满足1.同类样本协方差尽可能小;2.异类样本中心点尽可能远离。
    • 协方差尽可能小即
      • 机器学习笔记之线性判别分析(LDA)
    • 中心店尽可能远离即
      • 机器学习笔记之线性判别分析(LDA)
    • 二者结合起来考虑,令
      • 机器学习笔记之线性判别分析(LDA) (此处分子为欧几里德范式)
    • 定义两个矩阵:
      • 类内散度矩阵  
        • ​​​​​​​机器学习笔记之线性判别分析(LDA)
      • 类间散度矩阵
        • ​​​​​​​机器学习笔记之线性判别分析(LDA)
      • 则J可以重写为
        • ​​​​​​​机器学习笔记之线性判别分析(LDA)
      • 此时J为LDA最大化的目标,亦被称为“广义瑞利熵”。
  • 接下来针对J需要确定机器学习笔记之线性判别分析(LDA)
    • 观察J的分子分母能够发现,最终的解与机器学习笔记之线性判别分析(LDA)长度无关,只和其方向有关系,即仅与机器学习笔记之线性判别分析(LDA)有关。令机器学习笔记之线性判别分析(LDA),可将J式可以转换为:                          
      •  机器学习笔记之线性判别分析(LDA)  其中c为常数
    • 利用拉格朗日乘子法,则上式可以进行推导:
      • 机器学习笔记之线性判别分析(LDA) 其中机器学习笔记之线性判别分析(LDA)为拉格朗日乘子。
      • 机器学习笔记之线性判别分析(LDA) 对机器学习笔记之线性判别分析(LDA)求偏导,并令该式为0可得
      • 机器学习笔记之线性判别分析(LDA)  其中机器学习笔记之线性判别分析(LDA)就是J的极值解。由于机器学习笔记之线性判别分析(LDA)非奇异,可将该式两边同乘机器学习笔记之线性判别分析(LDA)得到
      •  机器学习笔记之线性判别分析(LDA), 此时问题转化为求矩阵机器学习笔记之线性判别分析(LDA)的特征值问题。利用机器学习笔记之线性判别分析(LDA)的定义,可以化为
      • 机器学习笔记之线性判别分析(LDA),其中机器学习笔记之线性判别分析(LDA)为一标量,因此机器学习笔记之线性判别分析(LDA)总是在向量机器学习笔记之线性判别分析(LDA)方向。因此上式可以写做
      • 机器学习笔记之线性判别分析(LDA),从而可得
      • 机器学习笔记之线性判别分析(LDA),在寻找最佳投影方向的同时可以忽略机器学习笔记之线性判别分析(LDA)的比例因子机器学习笔记之线性判别分析(LDA) 。可得
      • 机器学习笔记之线性判别分析(LDA)

3. 多类情况

  • 多分类情况与二分类情况类似,其中机器学习笔记之线性判别分析(LDA)与上节中的意义相同,重新定义了所有样本的均值机器学习笔记之线性判别分析(LDA)由于存在多个类别,类间散度矩阵和类内散度矩阵的计算存在一定差异。假设有t类,t为实数。
  • 类内散度矩阵(投影前):
    • 机器学习笔记之线性判别分析(LDA),其中的机器学习笔记之线性判别分析(LDA)表示第i类里的样本点相对于该类中心点机器学习笔记之线性判别分析(LDA)的散列程度。并有机器学习笔记之线性判别分析(LDA)
  • 类间散度矩阵(投影后:
    • 机器学习笔记之线性判别分析(LDA),其中机器学习笔记之线性判别分析(LDA)本身是值为机器学习笔记之线性判别分析(LDA)的权重,但由于J式本身对倍数不敏感,因此取机器学习笔记之线性判别分析(LDA)
  • 考虑到二类情况时投影目标是一条直线,而上升到多类情况后投影目标是多维的(可以认为是若干条直线)。J式的推导结论与上节中一样,此处求得的特征值越大,代表其对分类的判别能力越强,因此可以取特征值最大的前若干个特征向量构成矩阵机器学习笔记之线性判别分析(LDA)

 

多分类python代码实现:https://github.com/olddaddy/Linear-Discriminant-Analysis.git

 

如有错误望指正,谢谢。