當前位置:編程學習大全網 - 源碼下載 - 2020-07-21

2020-07-21

主成分分析(PCA)是壹種數據降維和去除相關性的方法,它通過線性變換將向量投影到低維空間。對向量進行投影就是對向量左乘壹個矩陣,得到結果向量:

在這裏,結果向量的維數小於原始向量的維數。降維要確保的是在低維空間中的投影能很好地近似表達原始向量,即重構誤差最小化。

核心的問題的如何得到投影矩陣,和其他的機器學習算法壹樣,它通過優化目標函數得到。首先考慮最簡單的情況,將向量投影到壹維空間,然後推廣到壹般情況。

假設有 n 個 d 維向量 X i ,如果要用壹個向量 X 0 來近似代替它們,這個向量取什麽值的時候近似代替的誤差最小?如果用均方誤差作為標準,就是要最小化如下函數:

顯然問題的最優解是這些向量的均值:

證明很簡單。為了求上面這個目標函數的極小值,對它的求梯度(求導)並令梯度等於0,可以得到

解這個方程即可得到上面的結論。只用均值代表整個樣本集過於簡單,誤差太大。作為改進,可以將每個向量表示成均值向量和另外壹個向量的和:

其中, e 為單位向量, a i 是標量。上面這種表示相當於把向量投影到壹維空間,坐標就是 a i 。當e和ai取什麽值的時候,這種近似表達的誤差最小?

這相當於最小化如下誤差函數:

將上面求得的ai帶入目標函數中,得到只有變量e的函數:

上式的後半部分和e無關,由於e是單位向量,因此有 ||e||=1 的約束,這個約束條件可以寫成e T e=1。我們要求解的是壹個帶等式約束的極值問題,可以使用拉格朗日乘數法。構造拉格朗日函數:

因此,這個矩陣半正定。這裏需要最大化 e T Se 的值,由於

因此, 為散度矩陣最大的特征值時, e T Se 有極大值,目標函數取得極小值。將上述結論從壹維推廣到 d' 維。每個向量可以表達成

在這裏 e i 是單位向量。誤差函數變成

可以證明,使得該函數取最小值的 e j 為散度矩陣最大的d'個特征值對應的單位長度特征向量,即求解下面的優化問題:

其中, tr 為矩陣的跡。矩陣W的列 e j 是要求解的跡的基向量。散度矩陣是實對稱矩陣,屬於不同特征值的特征向量相互正交。前面已經證明這個矩陣半正定,特征值非負。這些特征向量構成壹組基向量,可以用它們的線性組合來表達向量 x 。從另外壹個角度來看,這種變換將協方差矩陣對角化,相當於去除了各分量之間的相關性。

從上面的推導過程可以得到計算投影矩陣的流程如下:

(1)計算樣本集的均值向量,將所有向量減去均值,這成為白化;

(2)計算樣本集的協方差矩陣;

(3)對協方差矩陣進行特征值分解,得到所有特征值與特征向量;

(4)將特征值從大到小排序,保留最大的壹部分特征值對應的特征向量,以它們為行,形成投影矩陣。

具體保留多少個特征值由投影後的向量維數決定。使用協方差矩陣和使用散度矩陣是等價的,因為後者是前者的 n 倍,而矩陣 A 和 nA 有相同的特征向量。

得到投影矩陣之後可以進行向量降維,將其投影到低維空間。向量投影的流程如下。

(1)將樣本減掉均值向量。

(2)左乘投影矩陣,得到降維後的向量。

向量重構指根據投影後的向量重構原始向量,與向量投影的作用和過程相反。向量重構的流程如下。

(1)輸入向量左乘投影矩陣的轉置矩陣。

(2)加上均值向量,得到重構後的結果。

從上面的推導過程可以看到,在計算過程中沒有使用樣本標簽值,因此,主成分分析是壹種無監督學習算法。除了標準算法之外它還有多個變種,如稀疏主成分分析、核主成分分析、概率主分量分析等。

源碼講解視頻鏈接

  • 上一篇:8葉源代碼
  • 下一篇:freemarker是如何讓主頁變成純靜態的?
  • copyright 2024編程學習大全網