主成分分析法(PCA)原理和步驟

2022-02-03 06:32:00 字數 2427 閱讀 4723

主成分分析法(pca)原理和步驟

主成分分析(principal component analysis,pca)是一種多變數統計方法,它是最常用的降維方法之一,通過正交變換將一組可能存在相關性的變數資料,轉換為一組線性不相關的變數,轉換後的變數被稱為主成分。

可以使用兩種方法進行 pca,分別是特徵分解或奇異值分解(svd)。

pca 將 n 維輸入資料縮減為 r 維,其中 r這裡,正交陣 u 的維數是 p×n,正交陣 v 的維數是 n×n(正交陣滿足:uut=vtv=1),σ 是 n×n 的對角陣。接下來,將 σ 分割成 r 列,記作 σr;利用 u 和 v 便能夠得到降維資料點 yr:

匯入所需的模組,除了 tensorflow,還需要 numpy 進行基本的矩陣計算,用 matplotlib、mpl_toolkit 和 seaborn 繪製圖形:

載入資料集,此處使用常用的 mnist 資料集:

定義類 tf_pca,此類初始化如下:

定義 fit 函式,計算輸入資料的 svd。定義計算圖,以此計算奇異值和正交矩陣 u,self._x 以佔位符的形式讀入資料 self.data,tf.svd 以遞減順序返回形狀為 [...,p] 的奇異值 s(singular_values),然後使用 tf.diag 將奇異值轉換為對角矩陣:

現在有了 sigma 矩陣、正交矩陣 u 和奇異值,下面定義 reduce 函式來計算降維資料。該方法需要 n_dimensions 和 keep_info 兩個輸入引數之一,n_dimensions 引數表示在降維資料中保持的維數,keep_info 引數表示保留資訊的百分比(0.8意味著保持 80% 的原始資料)。該方法建立乙個計算圖,對 sigma 矩陣進行分割並計算降維資料集 yrtf_pca 類已經準備就緒,下面會將 mnist 的每個輸入資料從維度為 784(28×28)減小到每個維度為 3。在這裡為了對比效果只保留了 10% 的資訊,但通常情況下需要保留大約 80% 的資訊:tf_pca 類已經準備就緒,下面會將 mnist 的每個輸入資料從維度為 784(28×28)減小到每個維度為 3。在這裡為了對比效果只保留了 10% 的資訊,但通常情況下需要保留大約 80% 的資訊:

tf_pca 類已經準備就緒,下面會將 mnist 的每個輸入資料從維度為 784(28×28)減小到每個維度為 3。在這裡為了對比效果只保留了 10% 的資訊,但通常情況下需要保留大約 80% 的資訊:

**輸出如下:

繪製三維空間中的 55000 個資料點:

前面的**對 mnist 影象進行了降維操作。原圖的大小為 28×28,利用 pca 方法把尺寸壓縮得更小。通常在影象處理中經常用到降維操作,因為太大的影象尺寸包含大量的冗餘資料。

tensorflow 中的 embeddings 技術可以實現從物件到向量的對映,tensorboard 中的 embedding projector 可以互動式地對模型的 embeddings 進行視覺化,並提供了三種降維的方法:pca、t-sne 和自定義方式,可以使用 embeddings projector 來得到與上面類似的結果。

這需要從

tensorflow.contrib.tensorboard.plugins 中匯入 projector,並且通過簡單的三個步驟就可以完成:

載入資料:

新建乙個 metadata 檔案(用製表符分隔的 .tsv 檔案):

將embeddings 儲存在 log_dir 中:

現在就可以使用 tensorboard 檢視 embeddings 了,通過命令列 tensorboard--logdir=log,在 web 瀏覽器中開啟 tensorboard,然後進入 embeddings 選項卡。下圖顯示的就是使用 pca 方法運算的前三個主成分為軸的 tensorboard 投影:

主成分分析法(PCA)

一 數學基礎 1.方差 用來計算每乙個變數 觀察值 與總體均數之間的差異。總體方差計算公式 為總體方差,為變數,為總體均值,為總體例數。2.協方差 在概率論 和統計學中,協方差用於衡量兩個變數的總體誤差。而方差是 協方差的一種特殊情況,即當兩個變數是相同的情況。期望值分別為 e x 與 e y 的兩...

主成分分析法 PCA 答疑

問 為什麼要去均值?1 我認為歸一化的表述並不太準確,按統計的一般說法,叫標準化。資料的標準化過程是減去均值並除以標準差。而歸一化僅包含除以標準差的意思或者類似做法。2 做標準化的原因是 減去均值等同於座標的移動,把原始資料點的重心移到和原點重合,這樣利於很多表達,比如資料的協方差矩陣可以寫成xx ...

主成分分析法(PCA) 降維

主成分分析是一種降維演算法,它能將多個指標轉換為少數幾 個主成分,這些主成分是原始變數的線性組合,且彼此之間 互不相關,其能反映出原始資料的大部分資訊。一般來說,當研究的問題涉及到多變數且變數之間存在很強的相關性時,我們可考慮使用主成分分析的方法來對資料進行簡化。樣本標準化 計算標準化樣本協方差矩陣...