Andrew Ng-ML-第十五章-降維
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-第十五章-降維