主成分分析(PCA)原理詳解 - Medium

文章推薦指數: 80 %
投票人數:10人

目錄:. 相關背景; 數據降維; PCA原理詳解 3.1 PCA的概念 3.2 協方差 3.3 特徵值與特徵向量 3.4 SVD分解原理 3.5 PCA算法兩種實現方法 (1) 基於特徵值 ... AI反斗城C/C++LearningModel:UnsupervisedMachineLearning_主成分分析(PCA)原理詳解RyanLuFollowJan22,2019·8minread目錄:相關背景數據降維PCA原理詳解3.1PCA的概念3.2協方差3.3特徵值與特徵向量3.4SVD分解原理3.5PCA算法兩種實現方法(1)基於特徵值分解協方差矩陣實現PCA算法(2)基於SVD分解協方差矩陣實現PCA算法PCA實例PCA的理論推導選擇降維後的維度K(主成分的個數)1.相關背景在許多領域的研究與應用中,通常需要對含有多個變量的數據進行觀測,收集大量數據後進行分析尋找規律。

多變量大數據集無疑會為研究和應用提供豐富的信息,但是也在一定程度上增加了數據採集的工作量。

更重要的是在很多情形下,許多變量之間可能存在相關性,從而增加了問題分析的複雜性。

如果分別對每個指標進行分析,分析往往是孤立的,不能完全利用數據中的信息,因此盲目減少指標會損失很多有用的信息,從而產生錯誤的結論。

因此需要找到一種合理的方法,在減少需要分析的指標同時,盡量減少原指標包含信息的損失,以達到對所收集數據進行全面分析的目的。

由於各變量之間存在一定的相關關係,因此可以考慮將關係緊密的變量變成盡可能少的新變量,使這些新變量是兩兩不相關的,那麼就可以用較少的綜合指標分別代表存在於各個變量中的各類信息。

主成分分析與因子分析就屬於這類降維算法。

2.數據降維降維就是一種對高維度特徵數據預處理方法。

降維是將高維度的數據保留下最重要的一些特徵,去除噪聲和不重要的特徵,從而實現提升數據處理速度的目的。

在實際的生產和應用中,降維在一定的信息損失範圍內,可以為我們節省大量的時間和成本。

降維也成為應用非常廣泛的數據預處理方法。

降維具有如下一些優點:使得數據集更易使用。

降低算法的計算開銷。

去除噪聲。

使得結果容易理解。

降維的算法有很多,比如奇異值分解(SVD)、主成分分析(PCA)、因子分析(FA)、獨立成分分析(ICA)。

3.PCA原理詳解3.1PCA的概念PCA(PrincipalComponentAnalysis),即主成分分析方法,是一種使用最廣泛的數據降維算法。

PCA的主要思想是將n維特徵映射到k維上,這k維是全新的正交特徵也被稱為主成分,是在原有n維特徵的基礎上重新構造出來的k維特徵。

PCA的工作就是從原始的空間中順序地找一組相互正交的坐標軸,新的坐標軸的選擇與數據本身是密切相關的。

其中,第一個新坐標軸選擇是原始數據中方差最大的方向,第二個新坐標軸選取是與第一個坐標軸正交的平面中使得方差最大的,第三個軸是與第1,2個軸正交的平面中方差最大的。

依次類推,可以得到n個這樣的坐標軸。

通過這種方式獲得的新的坐標軸,我們發現,大部分方差都包含在前面k個坐標軸中,後面的坐標軸所含的方差幾乎為0。

於是,我們可以忽略餘下的坐標軸,只保留前面k個含有絕大部分方差的坐標軸。

事實上,這相當於只保留包含絕大部分方差的維度特徵,而忽略包含方差幾乎為0的特徵維度,實現對數據特徵的降維處理。

思考:我們如何得到這些包含最大差異性的主成分方向呢?答案:事實上,通過計算數據矩陣的協方差矩陣,然後得到協方差矩陣的特徵值特徵向量,選擇特徵值最大(即方差最大)的k個特徵所對應的特徵向量組成的矩陣。

這樣就可以將數據矩陣轉換到新的空間當中,實現數據特徵的降維。

由於得到協方差矩陣的特徵值特徵向量有兩種方法:特徵值分解協方差矩陣、奇異值分解協方差矩陣,所以PCA算法有兩種實現方法:基於特徵值分解協方差矩陣實現PCA算法、基於SVD分解協方差矩陣實現PCA算法。

既然提到協方差矩陣,那麼就簡單介紹一下方差和協方差的關係。

然後概括介紹一下特徵值分解矩陣原理、奇異值分解矩陣的原理。

概括介紹是因為在我之前的《機器學習中SVD總結》文章中已經詳細介紹了特徵值分解原理和奇異值分解原理,這裡就不再重複講解了。

可以看我的《機器學習中SVD總結》文章。

地址:機器學習中SVD總結3.2協方差和散度矩陣由上面的公式,我們可以得到以下結論:(1)方差的計算公式是針對一維特徵,即針對同一特徵不同樣本的取值來進行計算得到;而協方差則必須要求至少滿足二維特徵;方差是協方差的特殊情況。

(2)方差和協方差的除數是n-1,這是為了得到方差和協方差的無偏估計。

協方差為正時,說明X和Y是正相關關係;協方差為負時,說明X和Y是負相關關係;協方差為0時,說明X和Y是相互獨立。

Cov(X,X)就是X的方差。

當樣本是n維數據時,它們的協方差實際上是協方差矩陣(對稱方陣)。

例如,對於3維數據(x,y,z),計算它的協方差就是:3.3特徵值分解矩陣原理其中,Q是矩陣A的特徵向量組成的矩陣,則是一個對角陣,對角線上的元素就是特徵值。

具體了解這一部分內容看我的《機器學習中SVD總結》文章。

地址:機器學習中SVD總結3.4SVD分解矩陣原理[補充:為何解AAT矩陣]3.5PCA算法兩種實現方法注意:如果我們通過特徵值分解協方差矩陣,那麼我們只能得到一個方向的PCA降維。

這個方向就是對數據矩陣X從行(或列)方向上壓縮降維。

4.PCA實例5.PCA的理論推導PCA有兩種通俗易懂的解釋:(1)最大方差理論;(2)最小化降維造成的損失。

這兩個思路都能推導出同樣的結果。

我在這裡只介紹最大方差理論:在信號處理中認為信號具有較大的方差,噪聲有較小的方差,信噪比就是信號與噪聲的方差比,越大越好。

樣本在u1上的投影方差較大,在u2上的投影方差較小,那麼可認為u2上的投影是由噪聲引起的。

因此我們認為,最好的k維特徵是將n維樣本點轉換為k維後,每一維上的樣本方差都很大。

比如我們將下圖中的5個點投影到某一維上,這裡用一條過原點的直線表示(數據已經中心化):假設我們選擇兩條不同的直線做投影,那麼左右兩條中哪個好呢?根據我們之前的方差最大化理論,左邊的好,因為投影后的樣本點之間方差最大(也可以說是投影的絕對值之和最大)。

計算投影的方法見下圖:6.選擇降維後的維度K(主成分的個數)如何選擇主成分個數K呢?先來定義兩個概念:[參考](0)https://zhuanlan.zhihu.com/p/37777074(1)http://blog.csdn.net/zhongkelee/article/details/44064401(2)機器學習之PCA主成分分析-steed灬-博客園(3)簡單易學的機器學習算法——主成分分析(PCA)(4)機器學習實戰之PCA-笨鳥多學-博客園(5)機器學習中的數學(5)-強大的矩陣奇異值分解(SVD)及其應用-LeftNotEasy-博客園(6)從PCA和SVD的關係拾遺(7)CodingLabs—PCA的數學原理(8)PCA(主成分分析)python實現(9)主成分分析PCA(PrincipalComponentAnalysis)在sklearn中的應用及部分源碼分析(10)https://zhuanlan.zhihu.com/p/26652435AI反斗城分享AI資訊,紀錄AI學習過程11 clap1AI反斗城分享AI資訊,紀錄AI學習過程WrittenbyRyanLuFollowAI反斗城分享AI資訊,紀錄AI學習過程



請為這篇文章評分?