主成分分析推导

主成分分析推导

前言

在数据分析中,有些特征可能是冗余的,即使不是冗余的也可以通过特征的变换,构造更好且更少的一组特征来描述数据的性质。

主成分分析原理

可以把一个具有n个特征的记录视为一个高维空间上的向量,它每个特征上的取值视为在该维度下的坐标。众多的点形成点集。同样可以找到另外一个基(n个单位基向量),由它们来表示数据。这样数据在新的基下某些维度值为固定值,或者变化很小。我们就可以把这些维度舍去,把记录在新的基里其他维度的取值,作为他们新的特征。

推导

书上有详细的推导,但有些地方过于简略,稍作补充便于理解

定义和假设

  1. 所有的向量默认均为列向量
  2. 原始数据有N个特征,每个纪录表示为一个向量(x = (x_1,x_2,..,x_N)^T)
  3. 一组基向量为(T_1, T_2, ...,T_N),它们大小为1,互相正交.设(T=(T_1,T_2,...,T_N))
  4. 每个纪录在新的基下表示为 $y = (y_1,y_2,...,y_N) $
  5. 相关矩阵为(R_x=E[x*x^T])

推导过程

  1. (y和x的关系)

    [ecause由基向量定义得T_i*T_j = egin{cases}1,i=j\0,i eq jend{cases} ]

    [ herefore T*T^T = I,T^{-1}=T^T ]

    [ecause y=T^Tx herefore y_i = T_i^Tx = x^TT_i ]

    [ herefore x = Ty = Sigma_{i=1}^N{y_iT_i} ]

  2. 只取y的前M项特征,计算误差

    [egin{aligned} 令hat{x} &= Sigma_{i=1}^my_iT_i\ 均方误差为e &= E[(x- hat{x})^T(x-hat{x})]\ &=E[(Sigma_{i=M+1}^Ny_iT_i)^T*Sigma_{i=M+1}^Ny_iT_i]\ &=E[Sigma_{i=M+1}^Ny_i^2] = Sigma_{i=M+1}^NE[y_i^2] ,& ext{由1式得}\ &=Sigma_{i=M+1}^NE[T_i^Tx*x^TT_i], & ext{由3式得}\ &=Sigma_{i=M+1}^NT_i^TR_xT_i end{aligned} ]

  3. 使得误差最小

    (T_i)为变元,因为他们受1式条件限制是个条件极值。所以不能直接求偏导,而是要用拉格朗日乘数法,(具体请看高数)

    [设L(x)=Sigma_{i=M+1}^NT_i^TR_xT_i+Sigma_{i=M+1}^Nlambda_i(T_i^TT_i-1), (不应该还有N*(N-1)/2个有正交条件吗?)\ herefore 当partial L/partial T_i = 0,且T_I满足1式条件时取极值\ ecause partial L/partial T_i = 2(R_x-lambda_i)T_i = 0,时有极值\ herefore T_i 为R_x特征矢量,lambda_i为特征值\ herefore e = Sigma_{i=M+1}^NT_i^Tlambda_iT_i = Sigma_{i=M+1}^Nlambda_i ]

  4. 特征提取方法

    1. 计算出(R_x)
    2. 找到(R_x)的特征向量和对应的特征值,并按特征值从大到小排序({(T_1,lambda_1),...(T_n,lambda_n)})
    3. 利用前M个向量构造变换矩阵(T=(T_1,T_2,..T_m))
    4. 求得(y=T^Tx)
原文地址:https://www.cnblogs.com/Merodach/p/9033734.html