機器學習 降維(SVD PCA)

2021-09-27 14:03:35 字數 2918 閱讀 7687

降維是機器學習中很重要的一種思想。在機器學習中經常會碰到一些高維的資料集,而在高維資料情形下會出現資料樣本稀疏,距離計算等困難,這類問題是所有機器學習方法共同面臨的嚴重問題,稱之為「

維度災難」。另外在高維特徵中容易出現特徵之間的線性相關,這也就意味著有的特徵是冗餘存在的。基於這些問題,降維思想就出現了。

svd演算法不僅可以用於降維演算法中的特徵分解,還可以用於推薦系統,以及自然語言處理等領域。是很多機器學習演算法的基石。

矩陣的特徵值分解的侷限性比較大,要求矩陣a必須是方陣(即行和列必須相等的矩陣),那麼對於一般的矩陣該如何做分解?奇異值分解就可以處理這些一般性的矩陣,假設現在矩陣a是乙個m×n的矩陣,我們可以將它的奇異值分解寫成下面的形式

在這裡u是m×m的矩陣,σ是m×n的矩陣(除對角線上的值,其餘的值全為0),v是n×n的矩陣。在這裡矩陣u和v都是酉矩陣,也就是說滿足

對於svd的定義如下圖

矩陣是乙個n×n的方陣,我們對該方陣做特徵值分解,可以得到下面的表示式

我們將這裡得到的向量vi稱為右奇異向量。通過該值我們可以得到ui(左奇異向量,方陣u中的向量)和σi(矩陣σ中對角線上的值,也就是我們的奇異值)

對於奇異值,它跟我們特徵分解中的特徵值相似,在奇異值矩陣σ中也是按照從大到小排列的,而且奇異值減小的特別快。在很多情況下,前10%甚至前1%的奇異值的和就佔總和的99%以上的比例。也就是說我們可以用最大的k個奇異值和對應的左右奇異向量來近似的描述矩陣,如下圖所示

具體表示式如下

在並行化計算下,奇異值分解是非常快的。但是奇異值分解出的矩陣解釋性不強,有點黑盒子的感覺,不過還是在很多領域有著使用。

pca演算法是最常用的演算法,在資料壓縮,消除冗餘等領域有著廣泛的使用。

先來回顧下向量的內積,假設存在兩條發自原點的有向線段a和b,如下圖所示確定乙個向量不能只是單單的靠該直線的本身,也和該直線所在的座標系有關,對於二維空間內向量(x,y)事實上可以表示為首先假設在低維空間存在這樣乙個超平面,將資料從高維對映到該超平面上會使得樣本之間的方差最大(樣本之間方差最大,也就意味著樣本在對映到低維之後仍能較好的保留各樣本之間的差異性。若對映後存在大量的樣本重合,則對映後的樣本中會存在大量無用的樣本)假定對樣本做中心化處理,也就是使得樣本的均值為0,則所有樣本的方差和可以表示為

因此我們只要找到一組基,使得樣本投影到每個基上的方差最大,但是這樣存在乙個問題,因為在尋找每個基時都是滿足方差最大,這可能會導致後面的基和前面的基重合,這樣就沒有意義。因此單純的選擇方差最大的方向顯然是不合適的,我們引入乙個約束條件。在尋找這樣一組正交基時,我們不僅要使得對映後的方差最大,還要使得各特徵之間的協方差為0(協方差表示特徵之間的相關性,使得特徵都線性無關)協方差表示如下

那麼對於方差和協方差有沒有乙個可以同時表達這兩個值的東西呢?協方差矩陣就可以,協方差矩陣是對稱矩陣,矩陣的對角線上是方差,其餘的值都是協方差,其具體表示如下

那麼問題就好求解了,我們只要將協方差矩陣進行對角化,對角化後的矩陣除了對角線上的值,其餘的值都為0

設原始資料矩陣x對應的協方差矩陣為c,而p是一組基按行組成的矩陣,設y=px,則y為x對p做基變換後的資料。設y的協方差矩陣為d,我們推導一下d與c的關係

優化目標變成了尋找乙個矩陣p,滿足是正交基矩陣,並且對角元素按從大到小依次排列,那麼p的前k行就是要尋找的基,用p的前k行組成的矩陣乘以x就使得x從n維降到了k維並滿足上述優化條件。

因此現在我們只需要對協方差矩陣c做對角化就好了,而且由於c是實對稱矩陣,因此滿足不同特徵值下的特徵向量兩兩正交。對協方差矩陣c做對角化

然後我們要找的p就是

得到p之後就可以直接求得我們降維後的矩陣y=px(注意:這裡對於矩陣x做左乘是會壓縮行的,也就是矩陣y的行數要少於矩陣x,因此原始矩陣x是n∗m,其中n是特徵數,m是樣本數)。這就是整個pca的簡單理解流程

事實上在資料量很大時,求協方差矩陣,然後在進行特徵分解是乙個很慢的過程,因此在pca背後的實現也是借助奇異值分解來做的,在這裡我們只要求得奇異值分解中的左奇異向量或右奇異向量中的乙個(具體求哪個是要根據你的x向量的書寫方式的,即行數是樣本數還是特徵數,總之左奇異向量是用來壓縮行數,右奇異向量是用來壓縮列數,而我們的目的是要壓縮特徵數)

在我們的pca轉換中是乙個線性轉換,因此也被稱為線性降維。但有時資料不是線性的,無法用線性降維獲得好的結果,那麼這裡就引入了我們的核pca方法來處理這些問題,具體表示式如下

只需要在求協方差矩陣時,將資料先對映到高維(根據低維不可分的資料在高維必定可分的原理),然後再對這高維的資料進行pca降維處理,為了減少計算量,像支援向量機中那樣用核函式來處理求內積的問題。這類方法就是核主成分分析方法(kpca),kpca由於要做核運算,因此計算量比pca大很多。

機器學習 降維

資料降維的主要方法 投影和流形學習 投影 高維空間的所有訓練例項實際上 或近似於 受乙個低得多的低維子空間所影響 投影並不是降維的最佳方法。許多情況下,許多情況下,子空間可能會彎曲或轉動,比如 著名的瑞士卷玩具資料集 簡單地進行平面投影會直接將瑞士卷的不同層壓扁在一起。d維流形就是n維空間的一部分,...

機器學習 降維

資料壓縮 視覺化 pca principal component analysis 即主成分分析方法,是一種使用最廣泛的資料降維演算法。pca的主要思想是將n維特徵對映到k維上,這k維是全新的正交特徵也被稱為主成分,是在原有n維特徵的基礎上重新構造出來的k維特徵。pca的工作就是從原始的空間中順序地...

機器學習 降維

1 什麼是降維?數學知識 特徵值分解 設a是n階方陣,如果有常數 和n維非零列向量 的關係式 a 成立,則稱 為方陣a的特徵值,非零向量 稱為方陣a的對應於特徵值入的特徵向量 降維 將資料的特徵數量從高維轉換到低維 實際中很多資料是高維的,但資料 內在的維度 可能更低 例如 通訊資料原始有7維 入網...