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

 

 

主要內容:算法

一.降維與PCAapp

二.PCA算法過程函數

三.PCA之恢復工具

四.如何選取維數K性能

五.PCA的做用與適用場合spa

 

 

一.降維與PCA.net

1.所謂降維,就是將數據由原來的n個特徵(feature)縮減爲k個特徵(可能從n箇中直接選取k個,也能根據這n個從新組合成k個)。可起到數據壓縮的做用(於是也就存在數據丟失)。3d

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

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來提高一下算法的性能了。

相關文章
相關標籤/搜索