zoukankan      html  css  js  c++  java
  • 关于PCA和SVD的认识

    我想如果线性代数中向量空间的基底、坐标、基变换与坐标变换的内容理解的比较成熟的话,那么对理解PCA和SVD的理解将是水到渠成的事。

    一.数学基础

    基底:

    α1,α2,...,αn为向量空间Rn的一线性无关的向量组,且Rn中任一向量均可由α1,α2,...,αn线性表示,则称α1,α2,...,αn 为向量空间Rn的一个基底。

    补充:

    1.基底的特殊情况是 α1,α2,...,α相互正交而且都是单位向量,最最特殊的情况是单位矩阵E

    2.基底包含的向量个数=R向量空间维数 <=向量维数。

    坐标:

    α1,α2,...,α为向量空间Rn的一组基,对任意α属于Rn,存在唯一一组数,使

    α=x1α1+x2α2+...+xnαn=[α1,α2,...,αn]X 

    则X=(x1,x2,...,xn)是向量α在基α1,α2,...,αn 上的坐标。

    补充:

    1.基底与坐标的线性组合就是坐标表示的向量。

    基变换与坐标变换

    若α1,α2,...,αn β1 β2,...,β为向量空间R中的两组基,

    则:

    [β1 β2,...,βn]=[α1,α2,...,αn ]P

    [α1,α2,...,αn ]=[β1 β2,...,βn]P-1

    称为基变换公式.其中可逆矩阵P称为由基α1,α2,...,α到基 β1 β2,...,βn 的过渡矩阵。若向量α在基α1,α2,...,αn 和基 β1 β2,...,βn  上的坐标分别为X和Y,

    即: 

    α=[α1,α2,...,αn]X =[β1 β2,...,βn]Y=[α1,α2,...,αn ]PY,

    则:

    X=PY

    Y=P-1 X

    称为坐标转换公式。

    补充:

    1.可逆矩阵的特殊情况为正交矩阵,正交转换矩阵的特性是可以保持原向量之间的相对位置。

    2.单就坐标而言,X是Y在P行向量上的投影。

    3.当α1,α2,...,α是单位矩阵E,这时:

     α=[α1,α2,...,αn]X=EX=X

       [β1 β2,...,βn]=[α1,α2,...,αn ]P=E*P=P

     α=[β1 β2,...,βn]Y=PY

     而P是正交矩阵时,这就是PCA和SVD的应用环境。

    二.PCA和SVD的应用

    以PCA为例,

    对以列向量为样本的矩阵A(假设已经中心化),以AA’ 的特征向量矩阵 P 为过渡矩阵,这个P既是转换矩阵、投影矩阵,又是基矩阵,列向量为基向量。P’*A即对A的转换(坐标转换,A就是坐标矩阵),这也是A的列向量向P’的行向量,即P的列向量的投影。结果就得到转换后的坐标。

    (若是以行向量为样本的矩阵A(假设已经中心化),以A’A 的特征向量矩阵 P 为过渡矩阵,这个P既是转换矩阵、投影矩阵,又是基矩阵,列向量为基向量。A*P即对A的转换(坐标转换,A就是坐标矩阵),这也是A的行向量向P的列向量的投影。)

    由于转换后的向量坐标方差降序(而且相邻维度的协方差为零),所以末尾维度上的方差趋近零,所以所有样本向量末尾维度上的坐标趋近均值且波动较小。而中心化的坐标均值为零,所以末尾维度上的坐标趋近于零。

    有一中的知识,样本向量

    α=x1α1+x2α2+...+xnαn=[α1,α2,...,αn]X 

    由于所有αi 都是单位向量,所以模都为1;所以坐标为零的项可以忽略。这样就是去掉了冗余,实现了压缩存储,和近似还原(失真还原)。

  • 相关阅读:
    android 和 java 调色板
    BroadCast简述
    android intent
    android intent隐身启动和Intent过滤器
    坦克大战(TankWar)
    android menu
    WAS5.1上LogFactory的错误
    持续加班的夜晚中
    忙,无心写blog
    曾经,我是那么的有激情
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2557102.html
Copyright © 2011-2022 走看看