[吳恩達機器學習筆記]14降維5-7重建壓縮表示/主成分數量選取/PCA應用誤區


14.降維

覺得有用的話,歡迎一起討論相互學習~

我的微博我的github我的B站

吳恩達老師課程原地址
參考資料 斯坦福大學 2014 機器學習教程中文筆記 by 黃海廣

14.5重建壓縮表示 Reconstruction from Compressed Representation

  • 使用PCA,可以把 1000 維的數據壓縮到100 維特征,或將三維數據壓縮到一二維表示。所以,如果如果把PCA任務是一個壓縮算法,應該能回到這個壓縮表示之前的形式,回到原有的高維數據的一種近似。下圖是使用PCA將樣本\(x^{(i)}映射到z^{(i)}\)

    即是否能通過某種方法將z上的點重新恢復成使用\(x_{(1)}和x_{(2)}\)二維方式表示的數據。

方法

  • 使用\(X_{appox}\)表示重建樣本的n維向量(n * 1),使用\(U_{reduce}\)表示使用PCA算法時選取的K個特征向量組成的特征矩陣(n * k),使用\(Z\)表示使用PCA降維后數據樣本的新特征(k * 1).有:

\[X_{appox}=U_{reduce} * Z \]



14.6主成分數量的選取 Choosing the number of pricipal components

平均平方映射誤差(Average Squared Projection Error)和總變差(Total Variation)

  • PCA的目的是減少 平均平方映射誤差 ,,即是要減少 原始樣本\(x^{(i)}\)通過重建后的樣本\(x_{appox}^{(i)}\)(低維映射點) 的平方差的平均值

\[\frac{1}{m}\sum^{m}_{i=1}||x^{(i)}-x_{appox}^{(i)}||^{2} \]

  • 數據的總變差(Total Variation):定義為原始數據樣本的長度的均值:

\[\frac{1}{m}\sum^{m}_{i=1}||x^{(i)}||^{2} \]

意為:平均來看原始數據距離零向量的距離。

K值選擇的經驗法則

  • 平均平方映射誤差總變差 的比值盡可能小的情況下 (一般選擇0.01) 選擇盡可能小的K值, 對於此比例小於0.01,專業來說:保留了數據99%的差異性(99% of variance is retained)

選擇了參數K,並且99%的差異性得以保留

  • 常用的其他數值也有 0.05和0.10,則95%和90%的差異性得以保留。

主成分數量選擇算法

效率較低的方法

先令 K=1,然后進行主要成分分析,獲得 \(U_reduce\)\(z^{(1)},z^(2),...z^{(m)}\),然后計算其低維映射點\(x_{appox}^{(i)}\),然后計算 平均平方映射誤差總變差 的比值是否小於1%。如果不是的話再令 K=2,如此類推,直到找到可以使得比例小於 1%的 最小K值

更好的方法

  • 還有一些更好的方式來選擇 K,當計算協方差矩陣sigma,調用“svd”函數的時候,我們獲得三個參數:$$[U, S, V] = svd(sigma)$$ ,其中U是特征向量,而S是一個對角矩陣,對角線的元素為 \(S_{11},S_{22},S_{33}...S_{nn}\) 而矩陣的其余元素都是0。
  • 可以證明的是(在此只說明公式不給出證明過程),以下兩個式子相等,即:

    所以,原有的條件可以轉化為:
    根據上式找出滿足條件的最小的K值即可。

14.7 主成分分析法的應用建議

測試集和驗證集應使用和訓練集一樣的特征向量\(U_{reduce}\)

  • 假使我們正在針對一張 100×100 像素的圖片進行某個計算機視覺的機器學習,即總共有 10000 個特征。
  1. 第一步是運用主要成分分析將數據壓縮至 1000 個特征
  2. 然后對訓練集運行學習算法
  3. 在預測時,采用訓練集上學習而來的 \(U_{reduce}\) 將輸入的特征 x 轉換成特征向量 z,然后再進行預測
  • Note 如果我們有交叉驗證集合測試集,也采用對訓練集學習而來的 \(U_{reduce}\)

PCA不是用於解決過擬合的方法

  • 一個常見錯誤使用主要成分分析的情況是,將PCA用於減少過擬合(通過減少特征的數量)。這樣做 非常不好,應該使用正則化化處理。原因在於主要成分分析只是近似地丟棄掉一些特征,它並不考慮任何與 結果變量y(即預測的標簽) 有關的信息,因此可能會丟失非常重要的特征。PCA畢竟無監督學習的方法,任何的特征,無論是輸入屬性還是標簽屬性,其都一樣對待,沒有考慮到輸入信息的減少對標簽y的影響,通過PCA舍棄掉一部分輸入屬性卻沒有對標簽做任何補償。 然而當我們進行正則化化處理時,由於邏輯回歸或者神經網絡或者SVM會考慮到正則化及輸入屬性的改變對結果變量(預測標簽)的影響,並對其作出反饋,所以正則化不會丟掉重要的數據特征。

PCA不是必要的方法

  • PCA是當數據量大,所以要 壓縮數據維度,減少數據占用內存,加快訓練速度 時使用的,或者是需要通過 數據可視化 理解數據時使用的, 而 不是一種必需的方法。默認把PCA加入到機器學習系統中而不考慮不加入PCA時系統的表現是不對的。由於PCA會損失掉一部分數據,也許正是數據中十分關鍵的維度 ,所以機器學習系統應當首先 不考慮PCA的使用 ,而使用常規的訓練方法, 只在有必要的時候(算法運行太慢或者占用太多內存) 才考慮采用主要成分分析。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM