吳恩達機器學習(十二)主成分分析(降維、PCA)
目錄
學習完吳恩達老師機器學習課程的降維,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。
如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~
0. 前言
資料的特徵數量,又稱作向量的維度。降維(dimensionality reduction)是通過一些方法,減少資料的特徵數量,以降低維度,通常採用主成分分析PCA(Principal Component Analysis)。降維的作用有:
- 資料壓縮,減小佔用的儲存空間
- 加快演算法的計算速度
- 低維平面可以視覺化資料
初始作如下定義:
- --- 第 個數據的第 個向量
- --- 高維向量對映到低維平面後,在高維空間中的位置
- --- 高維向量對映到低維平面後,在低維空間中的位置
1. 主成分分析(PCA)
主成分分析PCA是尋找一個低維平面,使得各個資料點到平面的投影距離最小,換句話說,就是尋找 個向量,作為子空間,將資料對映到這個子空間上,則資料的維度轉換為 。
如下圖所示(圖源:吳恩達機器學習),三維空間的資料幾乎可看作分佈在一個斜面上,則可在這個斜面上建立一個二維的平面,將資料對映上去,轉換為二維空間。
2. 主成分分析PCA的流程
主成分分析PCA的流程主要由兩部分組成:
- 資料預處理(均值歸一化)
- 計算低維空間向量(計算協方差
資料預處理主要是進行均值歸一化,對每個特徵值進行如下變化:
均值歸一化可使得特徵的均值為 ,其中 為特徵縮放(取值範圍的最大值減去最小值,使之取值範圍接近 )。
計算低維空間向量,首先計算資料的協方差,採用如下公式:
進行奇異值分解,在matlab中,可有如下公式:
其中 是一個 的矩陣, ,取前 列,得到 ,為一個 的矩陣,接著:
將每一個向量 轉換為 , 為 的向量,達到了降維的目的。
注:最後一步轉換的 是沒有偏置 的。
3. 低維空間維度的選擇
我們已知主成分分析是要尋找一個低維平面,使得各個資料點到這個平面的距離最小,這個距離可採用平均投影誤差的平方(average squared projection error)
其中, 是在高維空間中對映到低維平面上的近似點(維度仍然是高維,與 不同, 的維度是低維),。
我們需尋找滿足下式的最小的 :
其中,右側的數值可根據實際情況調整, 為保證了 的方差。
此外,還有一種計算方法,在奇異值分解 中, ,滿足下式:
只需求解最小的 ,滿足下式即可:
4. 主成分分析使用方式
- 用主成分分析PCA防止過擬合是不適合的,過擬合應該採用正則化
- 在專案中,應首先試著不採用PCA,若達不到預想的想過,則可採用PCA試試看
如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~