天天看點

主成分分析PCA學習筆記

主成分分析(principal components analysis,PCA)是一個簡單的機器學習算法,主要思想是對高維資料進行降維處理,去除資料中的備援資訊和噪聲。

算法:

輸入樣本:$D=\left \{ x_{1},x_{2},\cdots ,x_{m}\right \}$

過程:·

1:對所有樣本進行中心化:$x_i\leftarrow x_i-\frac{1}{m}\sum_{i=1}^{m}x_i$;

2:計算所有樣本的協方差矩陣:$XX^T$;

3:對協方差矩陣$XX^T$做特征值分解;

4:取最大的${d}'$個特征值做所對應的特征向量$w_1,w_2,\cdots ,w_{d'}$.

輸出:投影矩陣$W=(w_1,w_2,\cdots ,w_{d'})$

PCA算法主要用在圖像的壓縮,圖像的融合,人臉識别上:

在python的sklearn包中給出了PCA的接口:

以自己造的資料集進行測試并測試

程式提取了一個特征值

用PCA算法對testSet.txt資料集進行降維處理

結果:

藍色三角形為原始資料,紅色圓為資料的主方向,可以看到PCA算法很好地找到了資料的主方向

主成分分析PCA學習筆記

att_faces中含有40張臉,每張臉10張92*112像素灰階照片的資料集

主成分分析PCA學習筆記

這裡以att_faces資料集為例:

主成分分析PCA學習筆記

由于每次選擇訓練的圖檔是随機的,随後的準确率也是會變化的,當提高低維空間的次元時能提高準确率

主成分分析PCA學習筆記