首頁>Club>
5
回覆列表
  • 1 # 北航秦曾昌

    主成分分析法(principal component analysis,PCA)和奇異值分析法(singular value decomposition,SVD)都是資料降維常用的方法。一般資料降維用於輸入資料的預處理階段,降低資料的維度、除去資料中包含的噪聲。

    PCA和SVD均應用於資料降維過程,這是兩者最大的聯絡。而兩者最大的區別在於各自應用的理論基礎和實現過程上的不同。PCA是保證對映後的方差最大(丟失的資訊最少),而SVD是透過奇異值分解的數學理論實現降維。兩者的實現過程敘述如下。

    1、PCA的實現過程

    給定樣本資料D={x1,x2,...,xm};低維空間維數d。

    (1)求解待降維資料各個維度上的均值(或稱為中心化);

    (2)計算資料的協方差矩陣;

    (3)計算協方差矩陣的特徵值和特徵向量(稱為特徵值分解);

    (4)取最大的d個特徵值所對應的特徵向量v1,v2,...,vd構成投影矩陣V={v1,v2,...,vd}。

    (5)降維後的資料D’=D*V。

    2、SVD實現過程

    (1)對給定資料D進行奇異值分解,D=u*Σ*V^T(V^T為V的轉置),如圖所示,矩形下方標識的為矩陣的維數。

    矩陣進行奇異值分解的數學基礎較複雜,總的來說就是透過一系列的數學變換對矩陣實現上圖所示的分解,而奇異值分解在程式上實現較為簡便,用U,Sigma,VT=np.linalg.svd(Data)這一個語句(Python實現)就可實現資料的奇異值分解。

    需要說明的是Σ矩陣是一個對角矩陣,,該矩陣的對角元素是從大到小排列的。這些對角元素稱為奇異值。對應的就是原始資料集矩陣的奇異值。

    (2)降維後的資料D’=D*V。

    3、PCA和SVD在數學上的聯絡

    PCA做的事情是對協方差矩陣對角化,即,而SVD是透過奇異值分解實現X=u*Σ*V^T。透過數學變換可以得到:

    SVD中的矩陣u相當於PCA中的矩陣P,不過僅保留了的非零特徵值對應的那些特徵向量,而(也只保留了非零特徵值)。SVD中的u代表了X中資料形成的正態分佈的軸的方向(一組單位正交基),Σ/sqrt(n)代表了這些軸的長度(分佈的標準差)。

  • 中秋節和大豐收的關聯?
  • 古代小說中有沒有不走尋常路的狐仙?