机器学习笔记十一之降维
本節目錄:
1 數據壓縮
2 數據可視化
3 主成分分析
4 選擇主成分的數量
5 重建的壓縮表示
6 主成分分析法的應用建議
1 數據壓縮
第二種監督學習問題為降維。有幾個不同的原因使你可能想要做降維,一是數據壓縮 ,它允許我們使用較少的計算機內存或磁盤空間,加快我們的學習算法。
對直升飛機做一個調查或做這些不同飛行員的測試——你可能有一個特征:𝑥1,這也許是他們的技
能(直升機飛行員),也許𝑥2可能是飛行員的愛好。這是表示他們是否喜歡飛行,也許這兩
個特征將高度相關。你真正關心的可能是這條紅線的方向,不同的特征,決定飛行員的能力。
將數據從三維降至二維: 這個例子中我們要將一個三維的特征向量降至一個二維的特
征向量。過程是與上面類似的,我們將三維向量投射到一個二維的平面上,強迫使得所有的
數據都在同一個平面上,降至二維的特征向量。
這樣的處理過程可以被用于把任何維度的數據降到任何想要的維度,例如將 1000 維的
特征降至 100 維。
2 數據可視化
假使我們有有關于許多不同國家的數據,每一個特征向量都有 50 個特征(如 GDP,人
均 GDP,平均壽命等)。如果要將這個 50 維的數據可視化是不可能的。使用降維的方法將
其降至 2 維,我們便可以將其可視化了。
這樣做的問題在于,降維的算法只負責減少維數,新產生的特征的意義就必須由我們自
己去發現了。
3 主成分分析
主成分分析(PCA)是最常見的降維算法。
在 PCA 中,我們要做的是找到一個方向向量(Vector direction),當我們把所有的數據
都投射到該向量上時,我們希望投射平均均方誤差能盡可能地小。方向向量是一個經過原點
的向量,而投射誤差是從特征向量向該方向向量作垂線的長度。
PCA 將𝑛個特征降維到𝑘個,可以用來進行數據壓縮,如果 100 維的向量最后可以用 10
維來表示,那么壓縮率為 90%。同樣圖像處理領域的 KL 變換使用 PCA 做圖像壓縮。但 PCA
要保證降維后,還要保證數據的特性損失最小。
PCA 技術的一大好處是對數據進行降維的處理。我們可以對新求出的“主元”向量的重要
性進行排序,根據需要取前面最重要的部分,將后面的維數省去,可以達到降維從而簡化模
型或是對數據進行壓縮的效果。同時最大程度的保持了原有數據的信息。
PCA技術的一大優點是 完全無參數限制,最后的結果只與數據有關。但這同時也是限制,如果用戶對觀測對象有一定先驗知識,掌握了數據的一些特征,卻無法通過參數化等方法對處理過程干預,可能會得不到預期效果。
主成分分析算法
對于一個 𝑛 × 𝑛維度的矩陣,上式中的𝑈是一個具有與數據之間最小投射誤差的方向向
量構成的矩陣。如果我們希望將數據從𝑛維降至𝑘維,我們只需要從𝑈中選取前𝑘個向量,獲
得一個𝑛 × 𝑘維度的矩陣,我們用𝑈𝑟𝑒𝑑𝑢𝑐𝑒表示,然后通過如下計算獲得要求的新特征向量𝑧(𝑖)
: 𝑧(𝑖) = 𝑈𝑟𝑒𝑑𝑢𝑐𝑒的轉置? 𝑥(𝑖)
其中𝑥是𝑛 × 1維的,因此結果為𝑘 × 1維度。
4 選擇主成分的數量
主要成分分析是減少投射的平均均方誤差:
訓練集的方差為:
我們希望在平均均方誤差與訓練集方差的比例盡可能小的情況下選擇盡可能小的𝑘值。
如果我們希望這個比例小于 1%,就意味著原本數據的偏差有 99%都保留下來了,如果
我們選擇保留 95%的偏差,便能非常顯著地降低模型中特征的維度了。
我們可以先令𝑘 = 1,然后進行主要成分分析,獲得𝑈𝑟𝑒𝑑𝑢𝑐𝑒和𝑧,然后計算比例是否小于
1%。如果不是的話再令𝑘 = 2,如此類推,直到找到可以使得比例小于 1%的最小𝑘 值(原因
是各個特征之間通常情況存在某種相關性)。
還有更好的方式來選擇K,通過奇異值分解得到【U,S,V】三個參數,
5 重建的壓縮表示
在那里你可能需要把 1000 維的數據壓縮100 維特征,或具有三維數據壓縮到一二維表示。所以,如果這是一個壓縮算法,應該能回到這個壓縮表示,回到你原有的高維數據的一種近似。
所以,給定的𝑧(𝑖),這可能 100 維,怎么回到你原來的表示𝑥(𝑖),這可能是 1000 維的數
組?
如圖:
6 主成分分析法的應用建議
錯誤的主要成分分析情況:一個常見錯誤使用主要成分分析的情況是,將其用于減少過
擬合(減少了特征的數量)。這樣做非常不好,不如嘗試正則化處理。原因在于主要成分分
析只是近似地丟棄掉一些特征,它并不考慮任何與結果變量有關的信息,因此可能會丟失非
常重要的特征。然而當我們進行正則化處理時,會考慮到結果變量,不會丟掉重要的數據。
另一個常見的錯誤是,默認地將主要成分分析作為學習過程中的一部分,這雖然很多時
候有效果,最好還是從所有原始特征開始,只在有必要的時候(算法運行太慢或者占用太多
內存)才考慮采用主要成分分析。
總結
以上是生活随笔為你收集整理的机器学习笔记十一之降维的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淺談 CUDA
- 下一篇: 什么是安斯库姆四重奏?为什么统计分析之前