1. 程式人生 > >幾種降維思想方法總結

幾種降維思想方法總結

資料的形式是多種多樣的,維度也是各不相同的,當實際問題中遇到很高的維度時,如何給他降到較低的維度上?前文提到進行屬性選擇,當然這是一種很好的方法,這裡另外提供一種從高維特徵空間向低緯特徵空間對映的思路。

資料降維的目的

  資料降維,直觀地好處是維度降低了,便於計算和視覺化,其更深層次的意義在於有效資訊的提取綜合及無用資訊的擯棄

資料降維的方法

  主要的方法是線性對映和非線性對映方法兩大類。

線性對映

  線性對映方法的代表方法有:PCA(Principal Component Analysis),LDA(Discriminant Analysis)

PCA方法簡介

  主成分分析的思想,就是線性代數裡面的K-L變換,就是在均方誤差準則下失真最小的一種變換。是將原空間變換到特徵向量空間內,數學表示為Ax=λx。 
  特徵向量和特徵值的意義:分別表示不同頻率及其幅度。 
特徵向量和特徵值的直白理解:想在特徵空間內找到某個向量x,使得其滿足Ax=λx。這個式子可以這樣理解,A是空間內的運動,x經過運動A後,保持方向不變(仍是x的方向),只是大小伸縮了λ倍。這樣我們找到了k個這樣的向量βk。 
A[β1,β2,...,βk]=[λ1β1,λ2β2,...,λkβk]。 
  當然在實際用時,取最大的前幾個足矣。 
PCA計算是用的協方差矩陣U

的分解特徵向量。
1. 樣本矩陣去中心化(每個資料減去對應列的均值),得到Am,nAm,n表示mn維的資料。 
2.U表示樣本矩陣A的協方差矩陣(ATA=U,因為去中心化後的ATA即協方差) 
E(XX0)(YY0)=mi=11m(xix0)(yiy0)。 
  期望的定義:E(x)=xip(xi)
3.U=[β]Λ[β]1
4. 對A[β1,β2,βk]方向上變換(注意選擇λ大的特向對映)。 
U=cov(1,1)cov(2,1)............cov(n,1)cov(1,2)cov(2,2)cov(n,2).........cov(1
,n)
cov(2,n)cov(n,n)

  其中數字表示相應第幾個屬性。 
為什麼要用協方差矩陣來特向分解呢?
協方差矩陣表徵了變數之間的相關程度(維度之間關係)。
對資料相關性矩陣的特向分解,意味著找到最能表徵屬性相關性的特向(最能表徵即誤差平方最小)。PCA一開始就沒打算對資料進行特向分解,而是對資料屬性的相關性進行分析,從而表示出最能代表屬性相關性的特向,然後將原始資料向這些特向上投影。所以,有的地方說PCA去相關。 
PCA的原理推導:
PCA優缺點:
  優點:1)最小誤差。2)提取了主要資訊 
  缺點:1)計算協方差矩陣,計算量大 
  上述PCA中的特向分解,必須為方陣,這個條件是很苛刻的。有沒有直接對任意矩陣的分解呢,答案是有的,他的名字叫SVD分解。 
SVD分解用來找到矩陣的主要部分。可以直接對資料矩陣進行分解。 
BmnUmkkkVTnk
  其中  UmkVnk        是正交矩陣。 
BmnVnkUmkkkVTnkVnk
BmnVnkUmkkkA^mk               實現了降維。 
UTmkBmnUTmkUmkkkVTnkkkVTnkA^kn        實現了壓縮資料。 
SVD怎麼跟這個PCA結合到一起的呢?
  SVD是對ATA或者AAT求解特值和特向,然後對A進行分解,得到A=UΔVT,中間是奇異值對角陣。 
U的列向量是AAT的特向組成。 
  因此,可以用SVD求解特向,然後取前幾個大的特值對應的特向進行降維。 
PCA想對協方差矩陣特徵向量求解,而AAT剛好是協方差的表示形式,而