降维算法:线性判别分析LDA

来源:互联网 发布:php网站开发 编辑:程序博客网 时间:2024/05/22 08:08

降维算法:线性判别分析LDA

祺哥让我做的笔记……

  • 降维算法线性判别分析LDA
    • 背景介绍
    • 数学原理
      • 1目标

1.背景介绍

  • 用途:用作数据预处理中的降维。

    (为什么要降维?当样本个数多、特征个数多时,计算、调参和评估时候效率会很低;而且不一定所有的特征都有用,所以仅保留重要的信息进行建模)

  • 历史:Ronald A.Fisher 于1936提出的线性判别分析方法

  • 目标:最大化类间区分度的坐标轴成分,即将特征空间(数据集中的多维样本)投影到一个维度更小的K维子空间中,同时保持区分类别的信息。

  • 原理:投影到维度更低的空间中,使得投影后的点,会形成按类别区分。

  • 难点和核心点:如何找投影?即更合适分类的空间。

  • 与PCA区别LDA更关心分类而不是方差;LDA是有监督问题,PCA是无监督的问题。

2.数学原理:

2.1目标:

  • 找到该投影 y=wTx
  • 使不同类别之间的距离越远越好,同一类别之中的距离越近越好
  • 每类别的均值 μi=1/Nixwix
  • 投影后的均值 μ˜i=1/Niywiy=1/NixwiwTx=wTμi
  • 投影后的两类样本中心点尽量分离
    J(w)=|μ˜1μ˜2|=wT(μ1μ2)

只要J(w)越大就可以了吗?如下图:μ1μ2映射到x1还是x2
不,还要考虑类间样本点的密集程度

投影

  • 散列值
    样本点的密集程度,值越大,越分散;反之,越集中

    S˜2i=ywi(yμ˜i)2=xwi(wTxwTμi)2=xwiwT(xμi)(xμi)Tw

    Si越小越好。

  • 目标函数J(w)=μ˜1μ˜22S21+S22

  • 散列矩阵Si=xwi(xμi)(xμi)T
  • 类内散布矩阵Sw=S1+S2,其中,S˜2i=wTSiwS˜21+S˜22=wTSww
  • 分子展开
    (μ˜1μ˜2)2=(wTμ1wTμ2)2=wT(μ1μ2)(μ1μ2)Tw=wTSBw
  • 类间散布矩阵SB=(μ1μ2)(μ1μ2)T
  • 最终目标函数J(w)=wTSBwwTSww
  • 分母进行归一化wTSww=1
  • 拉格朗日乘子法

    c(w)=wTSBwλ(wTSww1)

    dcdw=2SBw2λ(Sww)=0
    SBw=λSww

  • 两边都乘以的逆:S1wSBw=λw

    w就是矩阵S1wSB的特征向量
    因此,先求SwSB
    再求,S1wSB的特征向量即可
    注:特征向量:表示映射方向
    注:特征值:表示特征向量的重要程度

原创粉丝点击