LDA也称Fisher线性判别法,它是一种非迭代的分类算法。算法的主要思想将特征空间中的样本投影到该空间的一条直线上以实现从高维到一维的数据压缩。显然这样的投影有很多方向,而LDA算法就是寻找一个最佳投影方向来使样本的类内距离最小而类间距离最大。

       投影方向:1、投影后不同类别的样本均值的差别应尽可能大,即类间距离尽可能大;2、投影后相同类别的样本方差应尽可能小,即类内距离应尽可能小。

       定义一个Fisher准则函数(关于准则函数是如何确定的可以参看相关课本),线性判别分析(LDA)算法总结_第1张图片

       其中向量W是投影的方向向量,Sb和Sw是投影前两类别的类间和类内离散度矩阵。这样求投影方向的问题就转化为求该准则函数最大值的问题。我们可以采用Lagrange乘子法求解该函数的极值,令函数的分母为常数C作为求解的一个约束条件(因为对任意的实数a,均有J(aw)=J(w))。wKioL1YJOw_Rlzn0AABHDmqb5Wo808.jpg

        然后就是Lagrange对求导,最后得到最佳的投影方向为:

wKioL1YJQTnQcoJjAAAmduXtyck635.jpg

        如果对Lagrange乘子法不是很了解参见:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html

        算法步骤:

  1. 输入训练样本集;

  2. 计算两个类别的均值向量;

  3. 计算类内总的离散度矩阵;

  4. 计算类内总离散度矩阵的逆阵;

  5. 获得投影方向,公式如上。