1. 程式人生 > >Andrew Ng-ML-第十五章-降維

Andrew Ng-ML-第十五章-降維

第十五章 andrew 順序 分析 概念 p s 關系 ext 兩個

1.數據壓縮

數據壓縮不僅能夠減小存儲空間,並且能夠加速學習算法。那麽什麽是數據壓縮呢?下面給出了一個簡單的例子:

技術分享圖片

圖1.數據壓縮的概念

舉了兩個例子,一個是橫軸x1是厘米,縱軸特征x2是英尺,這明顯是冗余的,但是在真正的實施過程中,這並不常見,這並不是一個好例子。

另一個例子是,橫軸是駕駛員的技術,縱軸是駕駛員的快樂程度,曲線的含義是駕駛員的能力,那麽比較明顯的是,可以舍去駕駛員的快樂程度這個特征。即將數據集從2維轉向1維。

技術分享圖片

圖2.二維數據壓縮

在圖中,將綠線投影到一個軸上,那麽如果點的排列方式能夠一一對應,並且反映原來的順序,那麽就可以用其中一個特征來表示兩個,從x(1)二維轉換到z(1)一維,從而實現了數據壓縮。這種方法能讓算法運行的更快,同時也能夠減少數據存儲空間。

技術分享圖片

圖2.三維數據壓縮

在實際中,有將1000維壓縮到100維的,但是不方便進行畫圖展示。如圖中,三維的可以觀察出數據基本上同一平面內,所以圖2中就新構建了一個二維的平面圖,將數據都投影到二維平面上,將三維降低到二維。

2.可視化

技術分享圖片

圖3.高維數據

比如得到了各個國家的一個高維數據圖,有很多指標,那麽如何來進行可視化呢?如下圖,選取幾個指標來表示國家,比如兩個:

技術分享圖片

圖4.二維數據可視化

比如橫軸表示國家的大小/GDP,縱軸表示,人均GDP的數量,從圖中可對點進行現實意義的分析。

3.主成分分析問題規劃1

技術分享圖片

圖5.主成分問題規劃

將數據從二維到一維,需要找到一個向量的方向,將其他點投影,這個方向是滿足最小化投影誤差

。那麽就可將數據降維。

從三維降到二維,需要兩個投影向量組成一個平面,將其他點投影,作最小化投影誤差。

從n維降到k維,就需要選k個向量進行投影,並且最小化投影誤差。

那麽從左圖中看,PCA似乎和線性回歸很像,那麽二者之間有何關系呢?

實際兩者是完全不同的算法,PCA是找到一個低維的平面進行數據的投影,以便最小化投影誤差。

4.主成分分析問題規劃2

技術分享圖片

圖6.數據預處理

首先求出m個數據的均值每個維度的均值,並且對i個數據,每個對應的維度都變成平均的,圖中下邊給的公式是在有監督學習中,每個數據的i維-均值,並且除以s_j,通常是max-min或者是均方誤差。這樣讓不同含義的數據都能夠進行歸一,又可以比較的值。

技術分享圖片

圖7.主成分分析算法

首先,第一個公式中,左邊的Σ不是求和符號,而是表示矩陣,那麽它是一個n*n的矩陣,也就是協方差矩陣。

然後再計算協方差矩陣Σ的特征向量,可以使用svd函數。令協方差矩陣是正定矩陣。現在就可以用[U,S,V]是用svd命令來計算協方差矩陣。

技術分享圖片

圖8.算法

取U的前k列,得到一個U_reduce是n*k的,那麽用它的T*訓練集中的每個x,最終會得到一個k維的向量,這個就是投影壓縮之後的。

Andrew Ng-ML-第十五章-降維