機器學習系列21:降維

  • 2019 年 10 月 7 日
  • 筆記

降維(Dimensionality Reduction)可以保持數據在原有特徵的基礎上對數據進行壓縮,從 3D 降到 2D,使得數據的分布情況不發生改變,如下圖:

降維還有一個作用,就是能更好地可視化數據。比如說,現在有一個數據集,有 50 個特徵,如果想通過影像來分析這個數據集,目前是做不到的,因為只能畫出三維影像,也就是說特徵數為 3。但是如果運用降維,把特徵數從 50 降到 3,你就可以畫出這個數據集,更好地觀察它們之間的聯繫(畢竟觀察影像才有最直觀的感受)。

目前,最常用的降維演算法就是主成分分析演算法(Principal Component Analysis)也稱為 PCA。它的工作原理是將高維數據投影到低維平面,以便最小化投影誤差的平方。例如:現在有一個二維數據,我們使用 PCA,將它投影到一維中,如下圖:

將所有的黑色叉投影到紅色線上,所在的投影就是綠色叉。這麼一看是不是跟我們之前學過的線性回歸有點相似呢?其實他們兩個相差很大,我們先來看線性回歸:

通過這張圖可以看出,線性回歸是盡量減小數據集的 y 與假設函數值之間的誤差,也就是減小圖中藍色的線段的距離。再來看 PCA:

這是盡量減少點到直線的距離,也是圖中藍色線段的長度。通過這兩個圖做對比,你就能更好地理解這兩種演算法的區別了。

應用 PCA 的建議

應用 PCA 可以減少對記憶體的使用、加速學習演算法的速度、可視化高維數據。但是不要用 PCA 防止過擬合,因為應用 PCA 時,可能會拋棄某些重要的特徵。還有一點,不要一上來不管三七二十一就使用 PCA,在使用 PCA 之前,先考慮一下使用 PCA 究竟是為了做什麼,如果不用 PCA 是否能夠完成任務。