主成分分析推導

Merodach發表於2018-05-13

主成分分析推導

前言

在資料分析中,有些特徵可能是冗餘的,即使不是冗餘的也可以通過特徵的變換,構造更好且更少的一組特徵來描述資料的性質。

主成分分析原理

可以把一個具有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)

相關文章