分解組件中的信號(矩陣分解問題) - 數據降維


英文好的建議之間看這裏
官方:分解組件中的信號(矩陣分解問題)

一,主成分分析(PCA)

傳送門:(無監督數據降維)主成分分析法 - PCA

1.1 精確的PCA和概率解釋

PCA用於分解一組解釋最大方差的連續正交分量中的多元數據集。在scikit-learn中,PCA被實現爲學習的轉換器對象組件使用其fit方法,並且可用於新數據以將其投影到這些組件上。

在應用SVD之前,PCA會居中,但不會縮放每個功能的輸入數據。可選參數whiten=True使得可以將數據投影到奇異空間上,同時將每個分量縮放到單位方差。如果下游模型對信號的各向同性有很強的假設,這通常會很有用:例如,帶有RBF內核和K-Means聚類算法的支持向量機就是這種情況。

以下是虹膜數據集的示例,該虹膜數據集由4個要素組成,投影在2個維度上,這些要素可以解釋大多數差異:
在這裏插入圖片描述
該PCA對象還提供了PCA的概率解釋,該解釋可以根據其解釋的方差量給出數據的可能性。這樣,它實現了一種可用於交叉驗證的 score方法
在這裏插入圖片描述

例子:

1.2 增量主成分分析

PCA對象非常有用,但是對於大型數據集有某些限制。最大的限制是PCA僅支持批處理,這意味着要處理的所有數據都必須位於主存儲器中。而 IncrementalPCA對象使用不同的處理形式,並允許部分計算,這些計算幾乎完全匹配PCA以小批量方式處理數據時的結果。IncrementalPCA通過以下方式可以實現核心外主成分分析:

  • 使用其partial_fit方法處理從本地硬盤驅動器或網絡數據庫順序獲取的數據塊。
  • 在稀疏矩陣或內存映射文件上使用numpy.memmap

IncrementalPCA僅存儲分量和噪聲方差的估計值,以便按順序explained_variance_ratio_遞增。這就是爲什麼內存使用量取決於每批樣品的數量,而不是數據集中要處理的樣品數量的原因。

與中的一樣PCAIncrementalPCA在應用SVD之前,將居中但不縮放每個要素的輸入數據。
在這裏插入圖片描述
在這裏插入圖片描述

例子:

1.3 隨機SVD的主成分分析

通過刪除與較低奇異值關聯的分量的奇異矢量,將數據投影到保留大部分方差的低維空間通常很有趣。

例如,如果我們使用64x64像素的灰度級圖片進行面部識別,則數據的維數爲4096,並且在如此寬的數據上訓練RBF支持向量機很慢。此外,我們知道數據的固有維數比4096低得多,因爲人臉的所有圖片看起來都有些相似。樣本位於一個低維流形上(例如,大約200個)。PCA算法可用於線性變換數據,同時降低維數並同時保留大部分已解釋的方差。

在這種情況下,與可選參數svd_solver=“randogrammed”一起使用的PCA類非常有用:因爲我們將刪除大多數奇異向量,所以將計算限制在對奇異向量的近似估計上會更有效,我們將繼續實際執行轉換。

例如,以下顯示了Olivetti數據集中的16個樣本肖像(以0.0爲中心)。右側是重塑爲肖像的前16個奇異矢量。因爲我們只需要數據集的前16個奇異矢量 nsamples = 400nfeatures=64X64=4096,計算時間少於1s:
在這裏插入圖片描述
如果我們注意 nmax=MAX(nsamples, nfeatures)nmin=MIN(nsamples, nfeatures),隨機化的時間複雜度PCA爲 O(nmax2 * ncomponents) 代替 O(nmax2 * nmin) 在PCA中實現的精確方法。

隨機化的內存佔用PCA也與 2 * nmax2 * ncomponents 代替 nmax2 * nmin 對於確切的方法。

注:用svd_solver='randomized'在PCA中實現逆_變換不是變換的精確逆變換,即使whiten=False(默認值)

例子:

1.4 核的主分量分析

KernelPCA是PCA的擴展,它通過使用內核來實現非線性降維。它具有許多應用,包括降噪,壓縮和結構化預測(內核相關性估計)。KernelPCA同時支持 transforminverse_transform
在這裏插入圖片描述

例子:

1.5 稀疏主成分分析(SparsePCA和MiniBatchSparsePCA)

SparsePCA 是PCA的一種變體,其目的是提取最能重構數據的稀疏分量集。

小批量稀疏PCA(MiniBatchSparsePCA)是一種變體, SparsePCA它速度更快,但準確性較低。對於給定的迭代次數,通過迭代功能部件的小塊可以達到提高的速度。

主成分分析(PCA)的缺點在於,用這種方法提取的成分僅具有密集的表達式,即當表達爲原始變量的線性組合時,它們具有非零係數。這會使解釋變得困難。在許多情況下,可以更自然地將真實的基礎組件想象爲稀疏向量;例如,在人臉識別中,組件自然可以映射到人臉的各個部分。

稀疏的主成分產生了更簡潔,可解釋的表示形式,清楚地強調了哪些原始特徵會造成樣本之間的差異。

以下示例說明了使用稀疏PCA從Olivetti人臉數據集中提取的16個分量。可以看出正則項如何誘發許多零。此外,數據的自然結構導致非零係數垂直相鄰。該模型沒有在數學上強制執行此操作:每個組件都是一個向量h∈R4096,並且沒有垂直鄰接的概念,除非在人類友好的可視化期間顯示爲64x64像素的圖像。下面顯示的組件顯示爲本地的事實是數據固有結構的影響,這使得此類本地模式將重構誤差降至最低。存在一些稀疏性準則,其中考慮到了鄰接關係和不同類型的結構。有關此類方法的概述。有關如何使用稀疏PCA的更多詳細信息,請參見下面的“示例”部分。
在這裏插入圖片描述
請注意,稀疏PCA問題有許多不同的表述。此處實現的是基於[Mrl09]的。解決的優化問題是PCA問題(字典學習),具有 L1 對組件的懲罰:
在這裏插入圖片描述
稀疏性 L1 當很少有訓練樣本可用時,規範還可以防止學習組件受到干擾。可以通過超參數來調整懲罰程度(以及稀疏程度)alpha。較小的值會導致逐漸正規化的因式分解,而較大的值會將許多係數縮小爲零。

例子:

二,Latent Dirichlet Allocation (LDA)

潛在狄利克雷分配是一個生成概率模型,用於收集離散數據集(例如文本語料庫)。它也是一個主題模型,用於從文檔集合中發現抽象主題。

LDA的圖形模型是一個三級生成模型:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

例子:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章