吳恩達機器學習筆記(八) —— 降維與主成分分析法(PCA)


 

 

主要內容:

一.降維與PCA

二.PCA算法過程

三.PCA之恢復

四.如何選取維數K

五.PCA的作用與適用場合

 

 

一.降維與PCA

1.所謂降維,就是將數據由原來的n個特征(feature)縮減為k個特征(可能從n個中直接選取k個,也能根據這n個重新組合成k個)。可起到數據壓縮的作用(因而也就存在數據丟失)。

2.PCA,即主成分分析法,屬於降維的一種方法。其主要思想就是:根據原始的n個特征(也就是n維),重新組合出k個特征,且這k個特征能最大量度地涵蓋原始的數據信息(雖然會導致信息丟失)。有一個結論:當某一維的方差越大時,其所包含的信息量也越大,表明其越重要;反之則反。所以,PCA的主要工作就是:重構出k個特征,使其所包含的信息量最大。

3.以下兩個例子:

第一幅圖:將平面上(二維)的點映射到一直線或向量上(一維),其丟失的信息量就是:每個點到直線上的距離。因為降維之后,就認為所有點都在直線上了。同理第二幅圖將空間上投影到一個平面上。注意:這兩個例子都選取了與原始數據盡可能“靠近”的直線或者平面,使得其保存下來的信息量最大。

 

 

二.PCA算法過程

1.首先,需要對數據特征進行歸一化

2.求出特征的協方差矩陣

3.求出協方差矩陣的特征值及特征向量,這里可直接調用函數庫

其中,S為對角矩陣,其對角線上的數就是協方差矩陣的特征值,而U就是協方差矩陣的特征向量。

而U的前k列就是我們要求的新特征(用於代替原來的n個特征,起到數據壓縮的作用)。

所以,假設原始的數據特征為x(n維),經過用變換后變為z(k維),則有如下公式:

 

綜上,PCA算法可總結為:

 注:至於為什么要用到協方差矩陣,以及為什么要求特征向量等等一系列數學問題,這篇博客:PCA算法原理:為什么用協方差矩陣 可以很好地解釋。

(自己還沒看懂,只有個感性的認識)

 

 

三.PCA之恢復

 1.對人臉圖像進行降維壓縮的效果如下:

            (這里只取了部分)

 

2.那么壓縮后,是否可以再還原了?是可以的,只是在壓縮時丟失的那部分數據找不回來了。恢復方式如下:

即:X(approx) = U(reduce) * Z

由圖像可知:恢復后,所有的點后落在了直線上,所以丟失的數據即為原始點與直線的距離。

 

 

四.如何選取維數K

如果可能,k當然越小越好,k越小表明壓縮的程度越高,但同時又要保證足夠多的數據量。因此,選出最小的k,滿足:

以下為其求解求解過程,並且我們可以直接調用函數庫:

 

五.PCA的作用與適用場合

1.PCA用甚好好處?或者說有哪些應用?

1) 可以減少內存空間

2) 可以對算法進行提速

3) 可以用於數據可視化

 

2.既然PCA這么好用?那是不是可以隨便用呢?答案否:

個人認為,PCA其實是個輔助工具,用不用它,從功能上而言沒有太大區別,其區別就在於性能。也就是說,在用線性回歸或者Logistic回歸做一些事情時,如果直接運行,其效果或者說性能都比價可觀了,那就無謂使用PCA了。當出現占用內存過大,或者運算時間過長等,這時就可以利用PCA來提升一下算法的性能了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM