1. 程式人生 > >十分鐘搞定PCA主成分分析

十分鐘搞定PCA主成分分析

PCA主成分分析概述
在資料建模當中我們經常會聽到一個詞叫做降維,首先咱們先來嘮一嘮資料為啥要降維呢?最主要的原因還是在於一方面使得所需要計算的量更少啦,想象一下一個100維的資料和一個10維資料計算的速度肯定是不一樣的,另一方面如果我們的資料中有很無關特徵,這些對結果看起來沒什麼促進的作用,那我們就乾脆把有價值的拿出來,因為他們才是決定模型的關鍵!
在這裡插入圖片描述
第一個強調的關鍵點:PCA是一種無監督演算法,也就是我們不需要標籤也能對資料做降維,這就使得其應用範圍更加廣泛了。那麼PCA的核心思想是什麼呢?這裡我們提到了方差,咱們可以想象一下,如果一群人都堆疊在一起,我們想區分他們是不是比較困難,但是如果這群人站在馬路兩側,我們就可以很清晰的判斷出來應該這是兩夥人。所以基於方差我們可以做的就是讓方差來去判斷咱們資料的擁擠程度,在這裡我們認為方差大的應該辨識度更高一些,因為分的比較開(一條馬路給隔開啦)。但是PCA也有一個問題,原來的資料中比如包括了年齡,性別,身高等指標降維後的資料既然維度變小了,那麼每一維都是什麼含義呢?這個就很難解釋了,所以PCA本質來說是無法解釋降維後的資料的物理含義,換句話說就是降維完啦計算機能更好的認識這些資料,但是咱們就很難理解了。

座標與基

在這裡插入圖片描述
在我們深入到PCA原理之前,先來解釋一下什麼叫基,把這個搞清楚之後就好理解了,大家一般所認識的座標系一般都是X,Y軸。
在這裡插入圖片描述
就像我們圖上面的,我說有一個向量(3,2),但是為什麼這個向量是這樣的表示呢?因為它在我們的做標系中,如果我把座標系換了,它就不是(3,2)了。作為基,首先的一個前提就是要相互垂直,或者說內積為0,因為X和Y它們表達的分別是兩種指標,我們不希望它們之間內部存在任何聯絡,所以必須讓他們內積為0,這樣就是各自獨立的啦!
在這裡插入圖片描述
那麼對我們座標來說能否進行變換呢?肯定是可以的,比如我現在把(3,2)變換到另外一組基中,它的表達方式就不一樣啦!這回咱們應該發現了這樣一個事了吧,所謂的降維就是要把我們的資料投影到最合適的基中,那下面我們的目標就是尋找最好的基!
協方差


在這裡插入圖片描述
咱這之前,還是得先來了解下另外一個知識點,叫做協方差,剛才我們已經有了目標就是尋找一個基,可以使得我們資料投影過去後方差能夠越大越好!這個是我們的前提,但是隻滿足這一點就夠了嘛?還不可以,因為我們還需要保證基的前提就是相互垂直,這就可以用協方差來進行表示啦,如果兩個變數他們之間是相互獨立的那麼它們的協方差就必定為0,這就是我們的第二點要求啦,資料投影到的新基,其各個維度協方差都必須為0。(上圖中假定資料各個維度均值為0)
在這裡插入圖片描述
終於到啦要揭開謎底的時候啦!我們恰好遇到了一個東西叫做協方差矩陣,在公式中只需要對資料X進行變換就可以得到的。觀察一下協方差矩陣,恰好發現了這樣一個事,主對角線不就是我們的方差嘛(假設均值為0),非對角線上的元素又恰好是協方差。按照咱們之前的兩點約定,我們只需要讓方差越大越好,並且協方差等於0不就可以啦嘛!

降維求解

在這裡插入圖片描述
怎麼做上面的那件事呢?這就是我們的目標了。讓非對角線全為0這就需要對矩陣進行對角化啦,按照我們上面的定理,我們可以完成對角化操作,對我們所得的協方差矩陣求解其特徵值與特徵向量不就OK啦嘛。接下來按照特徵值的大小進行排列,如果你想把資料降到3維,那就取前3個特徵值所對應的特徵向量就可以啦!
在這裡插入圖片描述
全部的過程就在這裡啦,其實只需要得到協方差矩陣,然後對角化,將得到的特徵向量進行選擇就得到我們要投影到的基啦!資料降維操作就這麼愉快的搞定啦!

來源:
https://mp.weixin.qq.com/s/d9yTuvPvGpMtrvT4tko1aQ唐宇迪
版權歸原作者所有,轉載僅供學習使用,不用於任何商業用途,如有侵權請留言聯絡刪除,感謝合作。