• 线性判别分析(LDA)


    阅读本篇之前,可先阅读一下主成分分析

    对于 PCA 寻找的基向量满足:样本在该基向量方向投影后的坐标方差最大。对于 LDA 则换了一个标准,不选择投影坐标方差最大的方向,

    而选择能使样本点分类效果最好的方向,即不同类别的样本点越分开越好,同类的越聚集越好。

    这也就意味着,LDA 算法必须事先就知道样本的类别,所以它是一个有监督的模型。

    对于 PCA,求投影后坐标的方差即可,那对于 LDA 呢?选择何种数字特征来描述分类效果的好坏呢?

        1)类内方差:对于每一类样本,计算它在基向量上的投影坐标,然后求方差,有几个类别就得到几个类内方差,类内方差越小意味着同类样本越聚集

                     所有类样本投影在某一基向量上的类内方差之和定义为类内散度

        2)类间均值:每一类样本投影后都会得到一个各自的投影均值(标量),如果只有两类的话,就可以用均值距离来度量类间差异,距离越大,则两类样本

                     点越分开;如果类别不止两类的话,就比较麻烦了,暂时不叙述。

    设样本点个数为 $m$,每个样本点为 $n$ 维向量,训练集 $T$ 为

    $$T = left {(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m}) ight }   \
    x_{i} = (x^{(1)},x^{(2)},...,x^{(n)})^{T}$$

    1. 二类 LDA

       原来样本点属于 $n$ 维空间,是一个 $n imes m$ 的矩阵,现在先找出一个基向量 $w$,使得分类效果最好,该怎么求解呢?定义如下变量:

           1)$y_{i} in left { 0, 1 ight }, i = 1,2,...,m$;

           2)$N_{j}$ 为第 $j$ 类样本内样本点的个数,$j = 0,1$;

           3)$X_{j}$ 代表第 $j$ 类样本,$j = 0,1$;

           4)$mu_{j}$ 为第 $j$ 类样本的均值向量,$mu_{j} = frac{1}{N_{j}}sum_{x in X_{j}}^{}x$,是个 $n$ 维列向量。

       计算这两类样本在基向量 $w$ 上投影后的类内方差:

    $$D_{0} = sum_{x in X_{0}}^{}left ( w^{T}left ( x - mu_{0} ight ) ight )^{2} = w^{T}left ( sum_{x in X_{0}}^{} left ( x - mu_{0} ight )left ( x - mu_{0} ight )^{T}   ight )w \
    D_{1} = sum_{x in X_{1}}^{}left ( w^{T}left ( x - mu_{1} ight ) ight )^{2} = w^{T}left ( sum_{x in X_{1}}^{} left ( x - mu_{1} ight )left ( x - mu_{1} ight )^{T}   ight )w $$

       求方差,前面应该要除以 $N_{j} - 1$,但对于确定的每类样本,常系数并不影响结果,令

    $$S_{0} = sum_{x in X_{0}}^{} left ( x - mu_{0} ight )left ( x - mu_{0} ight )^{T}  \
    S_{1} = sum_{x in X_{1}}^{} left ( x - mu_{1} ight )left ( x - mu_{1} ight )^{T}$$

       $S_{0},S_{1}$ 其实就是对应类样本的协方差矩阵,是 $n$ 阶方阵,所以

    $$D_{0} =  w^{T}S_{0}w \
    D_{1} =  w^{T}S_{1}w$$

       所以类内散度为

    $$J_{1} = D_{0} + D_{1} = w^{T}left (S_{0} + S_{1}  ight )w$$

       引入类内散度矩阵

    $$S_{w} = S_{0} + S_{1}$$

       所以

    $$J_{1} = w^{T}S_{w}w$$

       得到了衡量同类样本聚集程度的目标函数,还需要有衡量类间分离程度的目标函数。

       因为只有两类,所以将两类均值差的平方作为目标函数,即

    $$J_{2} = left ( w^{T}mu_{1} - w^{T}mu_{0} ight )^{2}$$

       将上面这个式子变换一下:

    $$J_{2} = left ( w^{T}mu_{1} - w^{T}mu_{0} ight )^{2} = left ( w^{T}left ( mu_{1} - mu_{0} ight ) ight )^{2} \
    = w^{T}left ( mu_{1} - mu_{0} ight )left ( mu_{1} - mu_{0} ight )^{T}w$$

       引入类间散度矩阵

    $$S_{b} = left ( mu_{1} - mu_{0} ight )left ( mu_{1} - mu_{0} ight )^{T}$$

       所以

    $$J_{2} = w^{T}S_{b}w$$

       为了得到目标向量 $w$,需要使 $J_{1}$ 最小化,$J_{2}$ 最大化,于是构造代价函数

    $$J = frac{J_{2}}{J_{1}} = frac{w^{T}S_{b}w}{w^{T}S_{w}w}$$

       观察代价函数 $J$,它只与直线 $w$ 的方向有关,而与其长度无关(因为长度变化时,分子分母的变化能够抵消)。当找到最优解的时候,

       总可以通过放缩向量 $w$ 长度使得分母 $w^{T}S_{w}w = 1$,放缩后的向量仍为最优解($J$ 值不变),所以一开始可以直接令 $w^{T}S_{w}w = 1$,不影响最优解。

       建立最优化问题如下:

    $$min ;;; -w^{T}S_{b}w \
    s.t. ;;; w^{T}S_{w}w = 1$$

       对应的拉格朗日函数为

    $$L(w,lambda) = -w^{T}S_{b}w + lambdaleft ( w^{T}S_{w}w - 1 ight )$$

       对 $w$ 求偏导得

    $$L_{w} = -2S_{b}w + 2lambda S_{w}w = 0 \
    Rightarrow ; S_{b}w = lambda S_{w}w \
    Rightarrow S_{w}^{-1}S_{b}w = lambda w$$

       所以 $w$ 就是矩阵 $S_{w}^{-1}S_{b}$ 的特征向量。将 $S_{b}$ 代入得

    $$w = frac{1}{lambda}S_{w}^{-1}S_{b}w = frac{1}{lambda}S_{w}^{-1}left ( mu_{1} - mu_{0} ight )left ( mu_{1} - mu_{0} ight )^{T}w$$

       我们在乎的只是直线 $w$ 的投影方向,而与长度无关,所以可以将标量 $frac{1}{lambda}$ 和标量 $left ( mu_{1} - mu_{0} ight )^{T}w$ 甩掉,即得

    $$w = S_{w}^{-1}left ( mu_{1} - mu_{0} ight )$$

       也就是说,对于二类 LDA,只要求出各类样本协方差矩阵 $S_{w}$ 和均值向量 $mu_{0},mu_{1}$ 就可以确定一个最佳的投影方向 $w$。

    2. 多类 LDA

       这部分暂且不论。

  • 相关阅读:
    javascript学习笔记(一):基础、输出、注释、引用、变量、数据类型
    black-hole《XSS的原理分析与解剖》阅读笔记
    《xss跨站脚本剖析与防御》实验笔记
    XSS和CSRF的区别
    前端常用插件、工具类库汇总(下)
    前端常用插件、工具类库汇总(上)
    前端特效【第03期】|果汁混合效果-上
    玩转 React 【第03期】:邂逅 React 组件
    前端修炼の道 | 如何成为一名合格前端开发工程师?
    前端特效【第02期】|多功能提交按钮
  • 原文地址:https://www.cnblogs.com/yanghh/p/13838160.html
Copyright © 2020-2023  润新知