主成成份分析 PCA

2021-10-10 18:13:42 字數 1589 閱讀 6290

在很多應用問題中向量的維度會很高,不僅給演算法帶來挑戰,而且會帶來維度災難。pca就是一種經典的無監督學習的線性降維方法。降維的出發點不是聚類,也不是分類,它只是對原始資料的一種變換,可以用更少的維度保持原始資訊最多的資訊。

1.計算樣本集的均值向量,將所有的向量減去均值向量,稱為白化。

2.計算樣本集的協方差矩陣。

3.對協方差矩陣特徵值分解,得到特徵向量與特徵值。

4.將特徵值從大到小排序,保留大部分的特徵值所對應的特徵向量,形成投影矩陣(旋轉矩陣)。

5.將樣本減掉均值向量。

6.左乘投影矩陣,得到降維後的向量。

尋找乙個空間是的資料在此空間站散度最大,也就是方差最大。樣本點在這個超平面上的投影能盡可能分開,這個分開的程度我們稱之為散度,散度可以採用方差或協方差來衡量

請參考1、減去均值(平均臉),中心化

2、計算協方差矩陣

3、選取特徵值和特徵向量

4得到投影矩陣w(特徵臉);

5.計算訓練集的投影後的矩陣:p=wx;

7.計算testt和p中每個樣本距離,選出最近即可。

8.顯示投影前後的兩張。

from sklearn import datasets

from matplotlib import pyplot as plt

if __name__ ==

'__main__'

: faces = datasets.fetch_olivetti_faces(

) i =

0 plt.figure(figsize=(20

,20))

for img in faces.images:

#總共400張圖,把影象分割成20x20

plt.subplot(20,

20, i+1)

plt.imshow(img, cmap=

"gray"

)#關閉x,y軸顯示

機器學習 Matlab 主成份分析 PCA

作業中的演算法描述 試使用matlab 中的svd 函式實現pca 演算法,即輸入資料矩陣x 和降維後的維數k,對每乙個樣本進行去中心化,然後對進行去中心化後的資料矩陣xc 用svd 函式 u,s,v svd xc 輸出降維的投影矩陣ureduce 即u 的前k 列 降維後的座標表示z ureduc...

PCA 主成成分分析方法

參考 pca的數學原理 matlab求方差,均值,均方差,協方差的函式 主成分分析 pca 原理詳解 pca降維及python實現 coding utf 8 import numpy as np from sklearn.decomposition import pca x np.array 1,2...

pca主成分分析 PCA主成分分析(中)

矩陣 matrix,很容易讓人們想到那部著名的科幻電影 駭客帝國 事實上,我們又何嘗不是真的生活在matrix中。機器學習處理的大多數資料,都是以 矩陣 形式儲存的。矩陣是向量的組合,而乙個向量代表一組資料,資料又是多維度的。比如每個人的都具有身高 體重 長相 性情等多個維度的資訊資料,而這些多維度...