吳恩達機器學習筆記 —— 15 降維

xingoo發表於2018-07-30

本章重點講述了降維方法以及其中最主要的PCA主成分分析的原理、使用

更多內容參考 機器學習&深度學習

降維的作用:資料壓縮與視覺化

降維的第一個作用就是進行資料的壓縮,解決磁碟和計算的問題。比如把二維資料降維到一維:
吳恩達機器學習筆記 —— 15 降維

或者資料從三維降維到2維。
吳恩達機器學習筆記 —— 15 降維

降維的另一個作用就是進行視覺化,比如我們的資料有很多維度,如果想要在圖形上展示各個資料,分析其關係是很難的。那麼就可以把資料降維到二維:
吳恩達機器學習筆記 —— 15 降維

吳恩達機器學習筆記 —— 15 降維

吳恩達機器學習筆記 —— 15 降維

降維的問題規劃

考慮到資料的可分性,應該尋找一條直線(或者一個平面),使得資料投影到這個平面的距離最短,資料分佈最好(各個點比較分散),比如下面的圖中,紅色的線就要比粉色的好很多,因為粉色的線上所有的點幾乎都要重疊到一起了。
吳恩達機器學習筆記 —— 15 降維
PCA總結來說,其實就是尋找k個方向向量,使得所有的點投影到這個k個向量組成的平面。如果是2維,就是尋找一條直線的方向,方向的正負並不影響最後的結果
吳恩達機器學習筆記 —— 15 降維
需要注意的是,PCA與線性迴歸是不同的:第一個不同的點是線性迴歸裡面為了方便計算,誤差取的是y值的差;而PCA裡面計算的投影的距離,因此計算的是點到直線的距離。另一個不同的點就是線性迴歸裡面需要區分x和y,而PCA裡面所有的x都是等價的。
吳恩達機器學習筆記 —— 15 降維

PCA的計算方法

計算PCA首先要做的就是資料預處理,需要先對所有的資料進行均值化,即求出均值做差。其中sj是max-min

吳恩達機器學習筆記 —— 15 降維
在PCA裡面資料降維其實可以換一種思考的角度,如果資料從2維降到1維,其實就是尋找一個函式使得(x1,x2)變成z1。如果是n維,就是尋找一個方法,使得結果變成k維。
吳恩達機器學習筆記 —— 15 降維
其實這個過程就可以通過SVD來做,針對SVD可以在搜尋其他的資料。在協同過濾裡面也是有它的使用場景的。

如何選擇k值

PS:這兩節看的很蒙——因為字母放反了

參考:https://blog.csdn.net/ybdesire/article/details/64546435

PCA用於降維,k是降維後的特徵維度,如何選擇k值呢?一般來說k值如果等於n,那麼方差不變,就說保留了100%的方差變化;如果為0,那麼方差相當於全部都忽略了。因此可以通過下面的計算公式,選擇誤差範圍在0.01以內的k值,這樣可以說保留了99%的主成分。
吳恩達機器學習筆記 —— 15 降維

吳恩達機器學習筆記 —— 15 降維

應用的建議

關於使用

PCA也屬於一種演算法,它只能在訓練集上訓練執行;在測試集或者交叉驗證集上只能使用訓練的結果直接用來做對映。

關於k的選擇

在使用PCA進行資料的壓縮時,一般都要保證方差的保留百分比在99%。而在視覺化的時候由於畫圖的需要,K值可以選擇2或者3。

關於過擬合

PCA可以用來降低維度加快訓練速度,但是不能用來避免過擬合。因為PCA在考慮資料降維的時候,並沒有考慮y的因素,只是通過分析x,通過方差的百分比來保留資訊,此時有可能丟棄的是與y相關的資訊。如果想解決過擬合的問題,還是推薦使用正則化。

關於濫用

不用濫用PCA,很多人(我就這麼幹過!)設計邏輯迴歸的時候,都是直接按照下面的流程來做:1 獲得資料樣本;2 執行PCA降維;3訓練LR;4測試。推薦的方式還是不使用PCA訓練看看效果,再用PCA試一下做一下對比。

相關文章