在機器學習實際的開發中,對原始資料的處理可能會佔到主要的工作量,資料處理的好壞也往往直接關係到模型最後結果的好壞。在我們對原始資料進行特徵提取時,有時會得到高維的特徵向量,其中包含很多冗餘和雜訊。此時我們希望在高維的特徵中找到影響整體的最主要的特徵,來提公升特徵的表達能力、降低訓練的複雜度。今天大管就和大家來聊一聊主成分分析(principal components analysis)簡稱pca是如何做到的。
pca的目的是找到資料中的主要成分,並且利用這些主要成分表示原始資料,從而達到降維的目的。在高維資料中,想要精準的找到主成分是非常困難的,現在我們從二維的說起pca是如何工作的。如下圖所示
從圖中可以看到,資料的主要成分坐在pc1這條軸上,這條軸上的資料有什麼特點呢?資料的分布更為分散,即資料的方差更大。如果不好理解可以這樣假設,當資料在某個軸上的投影為乙個點,這樣好嗎?當然不好,因為乙個點的話會丟掉左右資料的特徵。比如在訊號處理領域,訊號具有較大的方差,雜訊則具有較小的方差,訊號與雜訊的比叫做訊雜比,訊雜比越大意味著資料的質量越好。由此,可以得到,pca的目標為最大化投影方差即讓資料在主軸上投影的方差最大。
具體的做法如下
假設我們有一組資料點:
其中所有的向量均為列向量,對這些資料進行中心化:
其中μ是資料的均值。
在數學中,向量投影到另乙個向量上的長度用向量的內積表示,因此向量xi在ω上的投影座標可以表示為:
故pca的目標又可以理解為找到乙個投影方向ω,使得x1,x2,...xn在ω上的投影方差盡可能的大。(ω為方向單位向量,投影之後的均值為0)
投影之後的方差為:
上述的結果其實就是協方差矩陣,我們設為∑。由於ω是單位方向向量,所以ωtω=1。所以我們的最大化問題可以表示為:
使用拉格朗日乘子法,對w求導,令其等於0,得到∑ω=λω。故
到這裡懸著的心終於落下來了,原來,x投影後的方差就是其協方差矩陣的特徵值。最大的方差也就是協方差矩陣最大的特徵值,次佳的投影方向就是第二大特徵值,以此類推。於是我們得到pca的求解步驟
pca求解步驟
(1)對樣本進行中心化處理;
(2)球中心化處理後的協方差矩陣;
(3)對協方差矩陣進行特徵值分解,將特徵向量從大到小排列;
(4)去前d個特徵向量w1,w2,...wd,通過以下對映將n維樣本降維到d維。
參考資料
周志華 《機器學習》
葫蘆娃 《百面機器學習》
PCA降維原理
在之前的介紹中,一幅影象只能表示乙個物件。那麼對於w x h的灰度影象,只能表示為w x h位的向量,那麼乙個有100 100的影象就需要10000維的向量空間。對於一幅人臉而言,是否所有維的資料都是有用的呢?在矩陣論當中我們知道,矩陣可以近似的表示為乙個特徵值與特徵向量的乘積。根據這個原理,如果我...
RocketMQ 術語詳解(通俗易懂)
rocketmq中有很多概念,其中包括一些術語和角色。理清楚基本的概念能有效的幫助理解rocketmq的原理以及排查問題。生產者。傳送訊息的客戶端角色。傳送訊息的時候需要指定topic。消費者。消費訊息的客戶端角色。通常是後台處理非同步消費的系統。rocketmq中consumer有兩種實現 pus...
通俗易懂的KMP演算法詳解
1.bf演算法 首先,簡單介紹bf 簡單的模式匹配法 假設主串為 abcbcglx 長度為m,模式串為 bcgl 長度為n。通常先從主串的下標0開始與子串的下標0開始匹配,如果匹配失敗,則從主串的第二個元素開始與子串的第乙個元素進行匹配。例如 第一次匹配 剛開始先用主串下標0 a 與子串下標0 a ...