機器學習領域中所謂的降維就是指採用某種對映方法,將原高維空間中的資料點對映到低維度的空間中。降維的本質是學習乙個對映函式 f : x->y,其中x是原始資料點的表達,目前最多使用向量表達形式。 y是資料點對映後的低維向量表達,通常y的維度小於x的維度(當然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。
目前大部分降維演算法處理向量表達的資料,也有一些降維演算法處理高階張量表達的資料。之所以使用降維後的資料表示是因為在原始的高維空間中,包含有冗餘資訊以及噪音資訊,在實際應用例如影象識別中造成了誤差,降低了準確率;而通過降維
,我們希望減少
冗餘資訊
所造成的誤差,提高識別(或其他應用)的精度。又或者希望通過降維演算法來尋找資料內部的本質結構特徵。
在很多演算法中,降維演算法成為了資料預處理的一部分,如pca。事實上,有一些演算法如果沒有降維預處理,其實是很難得到很好的效果的。
注principal component analysis(pca)是最常用的線性降維方法,它的目標是通過某種線性投影,將高維的資料對映到低維的空間中表示,並期望在所投影的維度上資料的方差最大,以此使用較少的資料維度,同時保留住較多的原資料點的特性。
通俗的理解,如果把所有的點都對映到一起,那麼幾乎所有的資訊(如點和點之間的距離關係)都丟失了,而如果對映後方差盡可能的大,那麼資料點則會分散開來,以此來保留更多的資訊。可以證明,pca是丟失原始資料資訊最少的一種線性降維方式。(實際上就是最接近原始資料,但是pca並不試圖去探索資料內在結構)
設n維向量w為目標子空間的乙個座標軸方向(稱為對映向量),最大化資料對映後的方差,有:
其中m是資料例項的個數, xi是資料例項i的向量表達, x拔是所有資料例項的平均向量。定義w為包含所有對映向量為列向量的矩陣,經過線性代數變換,可以得到如下優化目標函式:
其中tr表示矩陣的跡,容易得到最優的w是由資料協方差矩陣前k個最大的特徵值對應的特徵向量作為列向量構成的。這些特徵向量形成一組正交基並且最好地保留了資料中的資訊。
pca的輸出就是y = w『x,由x的原始維度降低到了k維。
pca追求的是在降維之後能夠最大化保持資料的內在資訊,並通過衡量在投影方向上的資料方差的大小來衡量該方向的重要性。但是這樣投影以後對資料的區分作用並不大,反而可能使得資料點揉雜在一起無法區分。這也是pca存在的最大乙個問題,這導致使用pca在很多情況下的分類效果並不好。具體可以看下圖所示,若使用pca將資料點投影至一維空間上時,pca會選擇2軸,這使得原本很容易區分的兩簇點被揉雜在一起變得無法區分;而這時若選擇1軸將會得到很好的區分結果。
discriminant analysis所追求的目標與pca不同,不是希望保持資料最多的資訊,而是希望資料在降維後能夠很容易地被區分開來。後面會介紹lda的方法,是另一種常見的線性降維方法。另外一些非線性的降維方法利用資料點的區域性性質,也可以做到比較好地區分結果,例如lle,laplacian eigenmap等。以後會介紹。
引用請註明:
PCA主成分分析(降維)
opencv中使用 實現降維分類預處理 參考 降維 我的理解是,通過降維得到基本特徵可以加快學習演算法。並且由於降維後的資料本身就是正交的,和聚類一樣可以實現分類 識別問題。在自我學習中也可以採用大量無標註的影象,對這些影象降維分類,並結合部分編碼資料得到特徵。例如 將很2500張人臉資訊,通過25...
降維 PCA 主成分分析
其實早該整理一下pca了,怎奈一直沒有時間,可能是自己對時間沒有把握好吧,下面進入正題。所謂降維,就是降低資料的維數。在機器學習中尤其常見,之前做過對一幅提取小波特徵,對於一幅大小為800 600的,如果每個點提取五個尺度 八個方向的特徵,那麼每乙個畫素點提取40個特徵,那麼一副的話就是40 800...
降維方法 主成分分析(PCA)
推薦一篇絕對好的文章 理解pca的數學原理 pca principle component analysis 主成分分析,主要應用於資料降維,它是一種非監督的降維方法,主要捕獲觀測資料之間的變異程度。當資料集的維度過高之後,運用各種演算法處理起來的時間複雜度可能會很高,所以需要對資料進行降維處理,而...