zoukankan      html  css  js  c++  java
  • 主成分分析推导

    主成分分析推导

    前言

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

    主成分分析原理

    可以把一个具有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)
  • 相关阅读:
    创业团队的狼性管理:慈不掌兵 义不聚财
    爱德华·斯诺登
    塞班岛
    大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网
    金字塔底端_百度百科
    左立_百度百科
    志大才疏_百度百科
    JS~json日期格式化
    MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
    JS~重写alter与confirm,让它们变成fancybox风格
  • 原文地址:https://www.cnblogs.com/Merodach/p/9033734.html
Copyright © 2011-2022 走看看