主成分分析(Principal components analysis)-最小平方誤差解釋
接上篇
3.2 最小平方誤差理論
假設有這樣的二維樣本點(紅色點),回顧我們前面探討的是求一條直線,使得樣本點投影到直線上的點的方差最大。本質是求直線,那麼度量直線求的好不好,不僅僅只有方差最大化的方法。再回想我們最開始學習的線性迴歸等,目的也是求一個線性函式使得直線能夠最佳擬合樣本點,那麼我們能不能認為最佳的直線就是迴歸後的直線呢?迴歸時我們的最小二乘法度量的是樣本點到直線的座標軸距離。比如這個問題中,特徵是x,類標籤是y。迴歸時最小二乘法度量的是距離d。如果使用迴歸方法來度量最佳直線,那麼就是直接在原始樣本上做迴歸了,跟特徵選擇就沒什麼關係了。
因此,我們打算選用另外一種評價直線好壞的方法,使用點到直線的距離d’來度量。
現在有n個樣本點,每個樣本點為m維(這節內容中使用的符號與上面的不太一致,需要重新理解符號的意義)。將樣本點在直線上的投影記為,那麼我們就是要最小化
這個公式稱作最小平方誤差(Least Squared Error)。
而確定一條直線,一般只需要確定一個點,並且確定方向即可。
第一步確定點:
假設要在空間中找一點來代表這n個樣本點,“代表”這個詞不是量化的,因此要量化的話,我們就是要找一個m維的點,使得
最小。其中是平方錯誤評價函式(squared-error criterion function),假設m為n個樣本點的均值:
那麼平方錯誤可以寫作:
第二步確定方向:
我們從拉出要求的直線(這條直線要過點m),假設直線的方向是單位向量e。那麼直線上任意一點,比如就可以用點m和e來表示
我們重新定義最小平方誤差:
這裡的k只是相當於i。就是最小平方誤差函式,其中的未知引數是和e。
這個結果意思是說,如果知道了e,那麼將與e做內積,就可以知道了在e上的投影離m的長度距離,不過這個結果不用求都知道。
其中 與協方差矩陣類似,只是缺少個分母n-1,我們稱之為雜湊矩陣(scatter matrix)。
然後可以對e求偏導數,但是e需要首先滿足,引入拉格朗日乘子,來使最大(最小),令
求偏導
這裡存在對向量求導數的技巧,方法這裡不多做介紹。可以去看一些關於矩陣微積分的資料,這裡求導時可以將看作是,將看做是。
導數等於0時,得
兩邊除以n-1就變成了,對協方差矩陣求特徵值向量了。
從不同的思路出發,最後得到同一個結果,對協方差矩陣求特徵向量,求得後特徵向量上就成為了新的座標,如下圖:
這時候點都聚集在新的座標軸周圍,因為我們使用的最小平方誤差的意義就在此。
4. PCA理論意義
PCA將n個特徵降維到k個,可以用來進行資料壓縮,如果100維的向量最後可以用10維來表示,那麼壓縮率為90%。同樣影象處理領域的KL變換使用PCA做影象壓縮。但PCA要保證降維後,還要保證資料的特性損失最小。再看回顧一下PCA的效果。經過PCA處理後,二維資料投影到一維上可以有以下幾種情況:
我們認為左圖好,一方面是投影后方差最大,一方面是點到直線的距離平方和最小,而且直線過樣本點的中心點。為什麼右邊的投影效果比較差?直覺是因為座標軸之間相關,以至於去掉一個座標軸,就會使得座標點無法被單獨一個座標軸確定。
PCA得到的k個座標軸實際上是k個特徵向量,由於協方差矩陣對稱,因此k個特徵向量正交。看下面的計算過程。
假設我們還是用來表示樣例,m個樣例,n個特徵。特徵向量為e,表示第i個特徵向量的第1維。那麼原始樣本特徵方程可以用下面式子來表示:
前面兩個矩陣乘積就是協方差矩陣(除以m後),原始的樣本矩陣A是第二個矩陣m*n。
我們最後得到的投影結果是,E是k個特徵向量組成的矩陣,展開如下:
得到的新的樣例矩陣就是m個樣例到k個特徵向量的投影,也是這k個特徵向量的線性組合。e之間是正交的。從矩陣乘法中可以看出,PCA所做的變換是將原始樣本點(n維),投影到k個正交的座標系中去,丟棄其他維度的資訊。舉個例子,假設宇宙是n維的(霍金說是11維的),我們得到銀河系中每個星星的座標(相對於銀河系中心的n維向量),然而我們想用二維座標去逼近這些樣本點,假設算出來的協方差矩陣的特徵向量分別是圖中的水平和豎直方向,那麼我們建議以銀河系中心為原點的x和y座標軸,所有的星星都投影到x和y上,得到下面的圖片。然而我們丟棄了每個星星離我們的遠近距離等資訊。
5. 總結與討論
這一部分來自http://www.cad.zju.edu.cn/home/chenlu/pca.htm
PCA技術的一大好處是對資料進行降維的處理。我們可以對新求出的“主元”向量的重要性進行排序,根據需要取前面最重要的部分,將後面的維數省去,可以達到降維從而簡化模型或是對資料進行壓縮的效果。同時最大程度的保持了原有資料的資訊。
PCA技術的一個很大的優點是,它是完全無引數限制的。在PCA的計算過程中完全不需要人為的設定引數或是根據任何經驗模型對計算進行干預,最後的結果只與資料相關,與使用者是獨立的。
但是,這一點同時也可以看作是缺點。如果使用者對觀測物件有一定的先驗知識,掌握了資料的一些特徵,卻無法通過引數化等方法對處理過程進行干預,可能會得不到預期的效果,效率也不高。
圖表 4:黑色點表示取樣資料,排列成轉盤的形狀。
容易想象,該資料的主元是或是旋轉角。
如圖表 4中的例子,PCA找出的主元將是。但是這顯然不是最優和最簡化的主元。之間存在著非線性的關係。根據先驗的知識可知旋轉角是最優的主元(類比極座標)。則在這種情況下,PCA就會失效。但是,如果加入先驗的知識,對資料進行某種劃歸,就可以將資料轉化為以為線性的空間中。這類根據先驗知識對資料預先進行非線性轉換的方法就成為kernel-PCA,它擴充套件了PCA能夠處理的問題的範圍,又可以結合一些先驗約束,是比較流行的方法。
有時資料的分佈並不是滿足高斯分佈。如圖表 5所示,在非高斯分佈的情況下,PCA方法得出的主元可能並不是最優的。在尋找主元時不能將方差作為衡量重要性的標準。要根據資料的分佈情況選擇合適的描述完全分佈的變數,然後根據概率分散式
來計算兩個向量上資料分佈的相關性。等價的,保持主元間的正交假設,尋找的主元同樣要使。這一類方法被稱為獨立主元分解(ICA)。
圖表 5:資料的分佈並不滿足高斯分佈,呈明顯的十字星狀。
這種情況下,方差最大的方向並不是最優主元方向。
另外PCA還可以用於預測矩陣中缺失的元素。
6. 其他參考文獻
A tutorial on Principal Components Analysis LI Smith – 2002
A Tutorial on Principal Component Analysis J Shlens
http://www.cmlab.csie.ntu.edu.tw/~cyy/learning/tutorials/PCAMissingData.pdf
相關文章
- 主成分分析(Principal components analysis)-最大方差解釋
- OpenCV3.3中主成分分析(Principal Components Analysis, PCA)介面簡介及使用OpenCVPCA
- 機器學習策略篇:詳解進行誤差分析(Carrying out error analysis)機器學習Error
- 主成分分析(PCA)原理詳解PCA
- 通俗易懂解釋什麼是PCIA(主成分分析) - stackexchange
- 主成分分析(PCA)PCA
- PCA主成分分析(上)PCA
- 主成分分析推導
- 主成分與因子分析
- 主成分分析(PCA)簡介PCA
- 主成分分析(PCA)原理總結PCA
- K-Means聚類分析以及誤差平方和SSE(Python實現)聚類Python
- 主成分分析(PCA) C++ 實現PCAC++
- 主成分分析及其matlab實現Matlab
- 用scikit-learn學習主成分分析(PCA)PCA
- 基於PCA(主成分分析)的人臉識別PCA
- 主成分分析(PCA)Python程式碼實現PCAPython
- 演算法金 | 再見,PCA 主成分分析!演算法PCA
- Python數模筆記-Sklearn(3)主成分分析Python筆記
- 聊聊基於Alink庫的主成分分析(PCA)PCA
- 機器學習_用PCA主成分分析給資料降維機器學習PCA
- 材料成分分析
- 生存分析(survival analysis)
- 運用sklearn進行主成分分析(PCA)程式碼實現PCA
- 【機器學習】--主成分分析PCA降維從初識到應用機器學習PCA
- 【機器學習】數值分析01——緒論及誤差分析機器學習
- 數值分析1 - 誤差概念介紹
- 【數學】主成分分析(PCA)的詳細深度推導過程PCA
- Elasticsearch Analysis 分析器Elasticsearch
- 繪製帶誤差分析的柱狀圖
- 手把手 | 用StackOverflow訪問資料實現主成分分析(PCA)PCA
- 機器學習降維之主成分分析機器學習
- 微星釋出VR PC主機 目前為世界最小桌面PCVR
- 特徵向量/特徵值/協方差矩陣/相關/正交/獨立/主成分分析/PCA/特徵矩陣PCA
- R語言-Survival analysis(生存分析)R語言
- 結果分析碼( results analysis key )
- ALGO-201 大等於n的最小完全平方數Go
- 軟體成分分析(SCA)完全指南