十分鐘搞定PCA主成分分析

在數據建模當中我們經常會聽到一個詞叫做降維

,首先咱們先來嘮一嘮數據為啥要降維呢?最主要的原因還是在於一方面使得我們需要計算的量更少啦,想象一下一個100維的數據和一個10維數據計算的速度肯定是不一樣的,另一方面如果我們的數據中有很無關特徵,這些對結果看起來沒什麼促進的作用,那我們就乾脆把有價值的拿出來,因為他們才是決定模型的關鍵!

十分鐘搞定PCA主成分分析

第一個強調的關鍵點:PCA是一種無監督算法,也就是我們不需要標籤也能對數據做降維,這就使得其應用範圍更加廣泛了。那麼PCA的核心思想是什麼呢?這裡我們提到了方差,咱們可以想象一下,如果一群人都堆疊在一起,我們想區分他們是不是比較困難,但是如果這群人站在馬路兩側,我們就可以很清晰的判斷出來應該這是兩夥人。所以基於方差我們可以做的就是讓方差來去判斷咱們數據的擁擠程度,在這裡我們認為方差大的應該辨識度更高一些,因為分的比較開(一條馬路給隔開啦)。但是PCA也有一個問題,原來的數據中比如包括了年齡,性別,身高等指標降維後的數據既然維度變小了,那麼每一維都是什麼含義呢?這個就很難解釋了,所以PCA本質來說是無法解釋降維後的數據的物理含義,換句話說就是降維完啦計算機能更好的認識這些數據,但是咱們就很難理解了。

十分鐘搞定PCA主成分分析

在我們深入到PCA原理之前,先來解釋一下什麼叫基,把這個搞清楚之後就好理解了,大家一般所認識的座標系一般都是X,Y軸。

十分鐘搞定PCA主成分分析

就像我們圖上面的,我說有一個向量(3,2),但是為什麼這個向量是這樣的表示呢?因為它在我們的做標系中,如果我把座標系換了,它就不是(3,2)了。作為基,首先的一個前提就是要相互垂直,或者說內積為0,因為X和Y它們表達的分別是兩種指標,我們不希望它們之間內部存在任何聯繫,所以必須讓他們內積為0,這樣就是各自獨立的啦!

十分鐘搞定PCA主成分分析

那麼對我們座標來說能否進行變換呢?肯定是可以的,比如我現在把(3,2)變換到另外一組基中,它的表達方式就不一樣啦!這回咱們應該發現了這樣一個事了吧,所謂的降維就是要把我們的數據投影到最合適的基中,那下面我們的目標就是尋找最好的基!

十分鐘搞定PCA主成分分析

咱這之前,還是得先來了解下另外一個知識點,叫做協方差,剛才我們已經有了目標就是尋找一個基,可以使得我們數據投影過去後方差能夠越大越好!這個是我們的前提,但是隻滿足這一點就夠了嘛?還不可以,因為我們還需要保證基的前提就是相互垂直,這就可以用協方差來進行表示啦,如果兩個變量他們之間是相互獨立的那麼它們的協方差就必定為0,這就是我們的第二點要求啦,數據投影到的新基,其各個維度協方差都必須為0。(上圖中假定數據各個維度均值為0)

十分鐘搞定PCA主成分分析

終於到啦要揭開謎底的時候啦!我們恰好遇到了一個東西叫做協方差矩陣,在公式中只需要對數據X進行變換就可以得到的。觀察一下協方差矩陣,恰好發現了這樣一個事,主對角線不就是我們的方差嘛(假設均值為0),非對角線上的元素又恰好是協方差。按照咱們之前的兩點約定,我們只需要讓方差越大越好,並且協方差等於0不就可以啦嘛!

十分鐘搞定PCA主成分分析

怎麼做上面的那件事呢?這就是我們的目標了。讓非對角線全為0這就需要對矩陣進行對角化啦,按照我們上面的定理,我們可以完成對角化操作,對我們所得的協方差矩陣求解其特徵值與特徵向量不就OK啦嘛。接下來按照特徵值的大小進行排列,如果你想把數據降到3維,那就取前3個特徵值所對應的特徵向量就可以啦!

十分鐘搞定PCA主成分分析

全部的過程就在這裡啦,其實只需要得到協方差矩陣,然後對角化,將得到的特徵向量進行選擇就得到我們要投影到的基啦!數據降維操作就這麼愉快的搞定啦!

十分鐘搞定PCA主成分分析

本文來自CSND學院知名講師唐宇迪,更多詳情,大家可以點擊關注CSDN學院。


分享到:


相關文章: