日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PCA主成分分析学习总结

發布時間:2024/7/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA主成分分析学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大概主成分分析(Principal components analysis,以下簡稱PCA)是最重要的降維方法之一。在數據壓縮消除冗余和數據噪音消除等領域都有廣泛的應用。一般我們提到降維最容易想到的算法就是PCA,下面我們就對PCA的原理做一個總結。

首先考慮一個問題:對于正交屬性空間中的樣本點,如何用一個超平面(直線的高維推廣)對所有樣本進行恰當的表達?

可以想到,若存在這樣的超平面,那么它大概具有這樣的性質:

  • 最近重構性:樣本點到這個超平面的距離足夠近
  • 最大可分性:樣本點在這個超平面上的投影能盡可能的分開

基于最近重構性和最大可分性能分別得到主成分分析的兩種等價推到,我們這里主要考慮最大可分性,并且一步一步推到出最終PCA。

1.PCA最大可分性的思想

PCA顧名思義,就是找出數據里最主要的方面,用數據里最主要的方面來代替原始數據。具體的,假如我們的數據集是 維的,共有 個數據 。我們希望將這 個數據的維度從 維降到 維,希望這 個 維的數據集盡可能的代表原始數據集。我們知道數據從 維降到 維肯定會有損失,但是我們希望損失盡可能的小。那么如何讓這 維的數據盡可能表示原來的數據呢?

我們先看看最簡單的情況,也就是 , ,也就是將數據從二維降維到一維。數據如下圖。我們希望找到某一個維度方向,它可以代表這兩個維度的數據。圖中列了兩個向量方向, 和 ,那么哪個向量可以更好的代表原始數據集呢?

從直觀上也可以看出, 比 好,這就是我們所說的最大可分性。

2.基變換

一般來說,欲獲得原始數據新的表示空間,最簡單的是對原始數據進行線性變換(基變換):

其中 是樣本在新空間的表達, 是基向量, 是原始樣本。我們可知選擇不同的基可以對一組數據給出不同的表示,同時當基的數量少于原始樣本本身的維數則可達到降維的效果,矩陣表示如下:

其中, 是一個行向量,表示第個基;, 是一個列向量,表示第個原始數據記錄。特別要注意的是,這里 可以小于 ,而 決定了變換后數據的維數。也就是說,我們可以將一個 維數據變換到更低維度的空間中去,變換后的維度取決于基的數量。從原本 降維到 。因此這種矩陣相乘的表示也可以表示降維變換。

最后,上述分析同時給矩陣相乘找到了一種物理解釋:兩個矩陣相乘的意義是將右邊矩陣中的每一列列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去。更抽象的說,一個矩陣可以表示一種線性變換。很多同學在學線性代數時對矩陣相乘的方法感到奇怪,但是如果明白了矩陣相乘的物理意義,其合理性就一目了然了。

3.方差

那么考慮,如何選擇一個方向或 者基才是最優的?觀察下圖

周志華《機器學習》插圖

我們將所有的點分別向兩條直線做投影,基于前面PCA最大可分思想,我們要找的方向是降維后損失最小,可以理解為投影后的數據盡可能的分開,那么這種分散程度可以用數學上的方差來表示,方差越大數據越分散。方差公式如下:

對數據進行了中心化后(可以方便后面的操作):

現在我們已經知道了以下幾點:

  • 對原始樣本進行(線性變換)基變換可以對原始樣本給出不同的表示
  • 基的維度小于數據的維度可以起到降維的效果
  • 對基變換后新的樣本求其方差,選取使其方差最大的基

那么在下面我們來考慮一個新的問題


上面我們導出了優化目標,但是這個目標似乎不能直接作為操作指南(或者說算法),因為它只說要什么,但根本沒有說怎么做。所以我們要繼續在數學上研究計算方案。


4.協方差

從二維降到一維可以使用方差最大來選出能使基變換后數據分散最大的方向(基),但如果遇到高維的變換,當完成第一個方向(基)選擇后,第二個投影方向應該與第一個“幾乎重合在一起”,這顯然是沒有用的,因此要有其它的約束條件。我們希望兩個字段盡可能表示更多的信息,使其不存在相關性。

數學上用協方差表示其相關性:

當 時,表示兩個字段完全獨立,這也是我們的優化目標。

5.協方差矩陣

我們想達到的目標與字段內方差及字段間協方差有密切關系,假如只有 、 兩個字段,那么我們將它們按行組成矩陣 ,表示如下:

然后我們用 乘以 的轉置,并乘上系數 :

可見,協方差矩陣是一個對稱的矩陣,而且對角線是各個維度的方差,而其它元素是 和 的協方差,然后會發現兩者被統一到了一個矩陣的。

6.協方差矩陣對角化

我們的目標是使 ,根據上述推倒,可以看出我們的優化目標 等價于協方差矩陣對角化。即除對角線外的其它元素( 如 )化為0,并且在對角線上將元素按大小從上到下排列,這樣我們就達到了優化目的。這樣說可能還不是很明晰,我們進一步看下原矩陣與基變換后矩陣協方差矩陣的關系:

設原始數據矩陣 對應的協方差矩陣為 ,而 是一組基按行組成的矩陣,設 ,則 為 對 做基變換后的數據。設 的協方差矩陣為 ,我們推導一下 與 的關系:

可見,我們要找的 不是別的,而是能讓原始協方差矩陣對角化的 。換句話說,優化目標變成了尋找一個矩陣 ,滿足是一個對角矩陣,并且對角元素按從大到小依次排列,那么 的前 行就是要尋找的基,用 的前 行組成的矩陣乘以 就使得 從 維降到了 維并滿足上述優化條件。

我們希望的是投影后的方差最大化,于是我們的優化目標可以寫為:

利用拉格朗日函數可以得到:

對 求導有 ,整理下即為:

于是,只需對協方差矩陣 進行特征分解,對求得的特征值進行排序,再對 取前 列組成的矩陣乘以原始數據矩陣X,就得到了我們需要的降維后的數據矩陣Y。

7.PCA算法流程

從上面兩節我們可以看出,求樣本 的 維的主成分其實就是求樣本集的協方差矩陣 的前 個特征值對應特征向量矩陣 ,然后對于每個樣本 ,做如下變換 ,即達到降維的PCA目的。

下面我們看看具體的算法流程:

輸入: 維樣本集 ,要降維到的維數 .

輸出:降維后的樣本集

1.對所有的樣本進行中心化

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

3.求出協方差矩陣的特征值及對應的特征向量

4.將特征向量按對應特征值大小從上到下按行排列成矩陣,取前k行組成矩陣P

5.Y=PX即為降維到k維后的數據

注意:

有時候,我們不指定降維后的 的值,而是換種方式,指定一個降維到的主成分比重閾值 。這個閾值t在 之間。假如我們的 個特征值為 ,則n'可以通過下式得到:


8.PCA算法總結

這里對PCA算法做一個總結。作為一個非監督學習的降維方法,它只需要特征值分解,就可以對數據進行壓縮,去噪。因此在實際場景應用很廣泛。為了克服PCA的一些缺點,出現了很多PCA的變種,比如為解決非線性降維的KPCA,還有解決內存限制的增量PCA方法Incremental PCA,以及解決稀疏數據降維的PCA方法Sparse PCA等。

PCA算法的主要優點有:

  • 僅僅需要以方差衡量信息量,不受數據集以外的因素影響。 
  • 各主成分之間正交,可消除原始數據成分間的相互影響的因素。
  • 計算方法簡單,主要運算是特征值分解,易于實現。

PCA算法的主要缺點有:

  • 主成分各個特征維度的含義具有一定的模糊性,不如原始樣本特征的解釋性強。
  • 方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對后續數據處理有影響。


繼續閱讀

在PCA降維過程中,當進行協方差矩陣上求解特征值時,如果面對維度高達 ,可想而知耗費的計算量程平方級增長。面對這樣一個難點,從而引出奇異值分解(SVD),利用SVD不僅可以解出PCA的解,而且無需大的計算量。

Betten:奇異值分解(SVD)原理?zhuanlan.zhihu.com


PCA(主成分分析)和LDA(線性判別分析)有很多的相似點,其本質是要將初始樣本映射到維度更低的樣本空間中,但是PCA和LDA的映射目標不一樣:PCA是為了讓映射后的樣本具有最大的發散性;而LDA是為了讓映射后的樣本有最好的分類性能。所以說PCA是一種無監督的降維方法,而LDA是一種有監督的降維方法。

Betten:LDA線性判別分析?zhuanlan.zhihu.com


參考資料

Pattern Recognition and Machine Learning

《機器學習》

主成分分析(Principal components analysis)-最大方差解釋


Betten:機器學習面試干貨精講?zhuanlan.zhihu.com

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的PCA主成分分析学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。