def
pca(datamat, topnfeat=
9999999):
meanvals = mean(datamat, axis=0)
#求每一維特徵的平均值
meanremoved = datamat - meanvals #中心化
covmat = cov(meanremoved, rowvar=0)
#求特徵間的協方差矩陣
ei**als,ei**ects = linalg.eig(mat(covmat)
)#求得協方差矩陣的特徵值,特徵向量
ei**alind = argsort(ei**als)
#從小到大對特徵值排序
ei**alind = ei**alind[:-
(topnfeat+1)
:-1]
#實現特徵值由大到小排序,並取排名前topnfeat的特徵值
redei**ects = ei**ects[
:,ei**alind]
#取排名前topnfeat特徵值對應的特徵向量
lowddatamat = meanremoved * redei**ects#中心化後的資料乘特徵向量即得降維後的特徵矩陣
reconmat =
(lowddatamat * redei**ects.t)
+ meanvals#重構原始資料
return lowddatamat, reconmat
python 實現PCA變換
在機器學習中,指標不全面會無法保證模型的準確性,但指標太多又容易造成指標維度災難。主成分分析的主要思想 1 進行特徵降維變換,不能完全地表示原有的物件,能量總會有損失。2 希望找到一種能量最為集中的變換方法使得損失最小 主成分分析就是試圖在力保資料資訊丟失最小的原則下,對這種多變數的資料進行最佳綜合...
pca演算法實現人臉識別
用matlab實現的pca演算法,用於降維,適用於各種試驗,如人臉識別程式。使用方法 1 選擇訓練和測試的資料庫路徑 2 選擇測試影象的路徑 3 執行createdatabase 函式給訓練影象建立二維矩陣 4 執行 eigenfacecore 函式建立基本的空間 5 執行 recognition ...
三種方法實現PCA演算法 Python
主成分分析,即principal component analysis pca 是多元統計中的重要內容,也廣泛應用於機器學習和其它領域。它的主要作用是對高維資料進行降維。pca把原先的n個特徵用數目更少的k個特徵取代,新特徵是舊特徵的線性組合,這些線性組合最大化樣本方差,盡量使新的k個特徵互不相關。...