美文网首页
PCA主成分分析数学原理

PCA主成分分析数学原理

作者: LittleSasuke | 来源:发表于2018-02-22 17:25 被阅读11次

    Welcome To My Blog
    复习完线性代数再来推导下PCA

    概述

    • 主成分分析(principalcomponent analysis)是一种数据分析方法,
      出发点:从一组特征中计算出一组按重要性从大到小排列的新特征,它们是原有特征的线性组合,并且相互之间是不相关(即不线性相关)的.
      • 重要性:通过方差衡量,方差大说明数据分布很散,含有的信息量大
      • 不相关:推导时用

    具体推导

    参数说明

    记x1,x2...xp是P个原始特征(也就是某个样本的维数), x=(x1,x2...xp)^t,记ξ1,ξ2...ξp是p个新特征, ξ=(ξ1,ξ2...ξp)^t
    新特征是原始特征的线性组合,ξi =Σαij*xj =αi^t*x 或者 ξ =A^t*x
    A=(α1,α2...αp). αi=(αi1,αi2...αip)^t.
    αi是新特征ξi线性组合的系数,不妨使||α||=1,即αi^t*αi=1(由具体推导过程可知,这是结果的共有部分,所以可以设为1),
    ξi=αit*x的结果是一个数,所以对αit*x进行转置不影响结果)

    计算第一个新特征ξ1的方差:

    Var(ξ1)
    = E[ξ1*ξ1^t] -E[ξ1]E[ξ1^t]
    = E[α1t*x*xt*α1]-E[α1^t*x ]E[x^t*α1]
    = α1^t *{E[x^t*x] -E[x]E[x^t]}α1
    = α1^t*Σ*α1
    Σ是x的协方差矩阵,接下来在αi^t*αi=1的约束条件下求Var的极值,使用拉格朗日乘子法:
    f(α1,ν)= α1^t *Σ*α1-ν(α1^t *α1-1)
    关于α1求偏导并使结果等于零,可得:Σ*α1 = ν*α1 (显而易见,ν是Σ的特征值,α1是Σ对应ν的特征向量)
    代回得,Var(ξ1) = ν*α1^t*α1 = ν,说明方差的最大值就是x的协方差矩阵的特征值,取ν为最大的特征值,使新特征ξ1最重要

    计算第二个新特征ξ2的方差:

    Var(ξ2) = α2^t*Σ*α2
    保持ξ1与ξ2不相关,即加入约束Cov(ξ1,ξ2)= 0
    Cov(ξ1,ξ2)
    = E[ξ1*ξ2^t] - E[ξ1]E[ξ2^t]
    = α1^t* {E[x^t*x] -E[x]E[x^t] }*α2^t
    = α1^t*Σ*α2
    为利用第一个新特征的条件,求Cov(ξ2,ξ1)
    Cov(ξ2,ξ1) = Cov(ξ1,ξ2)
    = α2^t*Σ*α1
    = ν*α2^t*α1 (因为Σ*α1 = ν*α1)
    = 0
    得 α2^t *α1 = 0,说明α1与α2正交,也就是说,此处不相关等价于α1与α2正交
    在α2^t *α2=1和α2^t*α1 =0的约束下用拉格朗日乘子法求Var(ξ2)的最大值
    f(α2,α1,m,n) = α2^t*Σ*α2 - m(α2^t*α2-1) - n*α2^t*α1
    分别对α2,α1,m,n求偏导并使结果为0,得n=0, Σ*α2 = m*α2 (显而易见,m是Σ的特征值,α2是Σ对应m的特征向量)
    代回得,Var(ξ2) = m

    计算其余新特征ξ的方差

    同理,求出ξ3,ξ4...ξp

    进一步总结

    • 可以发现,每个新特征ξi的方差都是x协方差矩阵Σ的特征值,所以有了这个理论基础后可以直接求Σ的特征值,并从大到小排序,依次作为ξi方差的最大值
    • Σ是实对称矩阵,所以Σ一定正交相似于对角矩阵,且对角矩阵的对角元素就是Σ的特征值,只需找出正交矩阵O,使O^(-1)ΣO=diag(λ1,λ2...λp)即可
    • Σ是实对称矩阵,所以Σ对应不同特征值的特征向量都是正交的,求出特征向量再对特征向量进行单位化,各个特征向量即可组成一个符合条件的正交矩阵
    • 不仅如此,我们发现,计算过程中各个组合系数αi是正交的,且长度为1,所以直接用通过Σ得到的正交矩阵的各个列向量作为αi即可!所以组合系数来的很方便,但要注意对照特征值进行排序
    • 这样一来,新旧特征之间的具体关系ξ=A^t*x就明确了,实际中通常把主成分进行零均值化,即 ξ = A^t*(x-μ),这样协方差矩阵更容易计算,且不影响主成分的方向
    • 每个ξi都是一个主成分,全部主成分的方差之和等于x协方差矩阵特征值的和,即 ΣVar(ξi) = Σλi,也就是x协方差矩阵的迹(trace)

    如何降维?

    • 通常希望用较少的主成分ξi来表示数据,前k个主成分的方差和Σλi比上所有主成分的方差和可以得到这k个主成分所占的比例,根据实际需求,比如80%,算出k的个数
    • 降维:
      • 把p维的数据减少成k维的数据(k<p),也就是用ξ的前k个维度(ξ1,ξ2...ξk)^t 描述每个样本
      • 换句话说,原来的坐标轴是(x1,x2...xp)^t ,降维后的坐标轴是(ξ1,ξ2...ξk)^t.
      • 给个具体的例子,p*m维矩阵C,由m个样本构成,每个样本是p维,使用A的前k个主成分进行降维,A^t*C,即可得到降维后的数据

    相关文章

      网友评论

          本文标题:PCA主成分分析数学原理

          本文链接:https://www.haomeiwen.com/subject/qneztftx.html