? ??本文記錄的目的是方便自己學(xué)習(xí)和復(fù)習(xí),有誤之處請(qǐng)諒解,歡迎指出。
? ? 主成分分析(Principal Component Analysis,PCA)是中最常用的降維算法之一,也可以用于數(shù)據(jù)壓縮、去除冗余信息、消除噪聲等方面。PCA的目的是找出一組低維數(shù)據(jù)來代表原高維數(shù)據(jù),且保留原始數(shù)據(jù)中的主要信息。例如有m個(gè)數(shù)據(jù)集,n維特征,我們希望將n維特征降低到d維,而且讓損失的信息盡可能小,具體怎么做呢?
? ? 首先通過PCA找出第1個(gè)新坐標(biāo)使得原始數(shù)據(jù)中方差最大;然后找出第2個(gè)新坐標(biāo)與第1個(gè)坐標(biāo)正交平面使得方差最大;再找出第3個(gè)坐標(biāo)與1,2坐標(biāo)正交平面使得方差最大...,以此類推,得到d個(gè)新維度特征。
一、算法流程
? ? 直接一點(diǎn):就是求出樣本集的協(xié)方差矩陣的前d個(gè)特征值對(duì)應(yīng)的特征向量,組成矩陣
,然后對(duì)每個(gè)樣本
進(jìn)行變換
。
? ? 1)特征去中心化,即每個(gè)維度特征減去其均值:

? ? 2)計(jì)算協(xié)方差矩陣


? ? 3) 對(duì)協(xié)方差矩陣進(jìn)行特征值分解
? ? 4)取前d個(gè)最大的特征值對(duì)應(yīng)的特征向量組成矩陣。
? ? 5)對(duì)每個(gè)樣本數(shù)據(jù)進(jìn)行變換,
? ? 6)得到降維后的數(shù)據(jù)
二、實(shí)例
? ?假定現(xiàn)有10個(gè)二維數(shù)據(jù)集(2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9),需要用PCA降到1維。
? ??首先樣本去中心化,這里樣本的均值為(1.81, 1.91),所有的樣本減去這個(gè)均值向量后,即中心化后的數(shù)據(jù)集為(0.69, 0.49), (-1.31, -1.21), (0.39, 0.99), (0.09, 0.29), (1.29, 1.09), (0.49, 0.79), (0.19, -0.31), (-0.81, -0.81), (-0.31, -0.31), (-0.71, -1.01)。
? ? 求協(xié)方差矩陣:


? ??求出特征值為(0.0490833989, 1.28402771),對(duì)應(yīng)的特征向量分別為:
由于最大的k=1個(gè)特征值為1.28402771,對(duì)應(yīng)的特征向量為。這也就是特征矩陣
。
? ? 對(duì)每個(gè)數(shù)據(jù)樣本進(jìn)轉(zhuǎn)換得到降維后的數(shù)據(jù)(-0.827970186, 1.77758033, -0.992197494, -0.274210416, -1.67580142, -0.912949103, 0.0991094375, 1.14457216, 0.438046137, 1.22382056)