維度災難和特徵選擇

2021-10-01 09:12:18 字數 2744 閱讀 5051

4. 怎麼避免維度災難

一句話:維度是乙個數字,表徵每個樣本中特徵的數量

機器學習中,對於資料一般用n∗m

n*mn∗

m矩陣表達,n

nn表示樣本(sample)數量,m

mm表示特徵(attribute/feature/variable)數量。如下圖,即是4∗2

4*24∗

2的矩陣,表示有4條資料,每個資料有2個特徵。

因此,圖中資料的維度是2。

wiki上定義:維數災難(英語:curse of dimensionality,又名維度詛咒)是乙個最早由理查德·貝爾曼(richard e. bellman)在考慮優化問題時首次提出來的術語,用來描述當(數學)空間維度增加時,分析和組織高維空間(通常有成百上千維),因體積指數增加而遇到各種問題場景。可以推廣到組合學,取樣,優化,機器學習,貝葉斯統計等多個領域。

具體到機器學習,維度災難表現為「給定數量的訓練樣本,其**效能隨著維度的增加而減少」。換個說法,「要達到同樣的**效能,高維資料比低維資料所要求的訓練樣本數量要大得多,一般呈幾何級數增長」。

如下圖所示:

訓練樣本數量一定,隨著維度增加在達到乙個最優維度時,**效能最佳;越過這個最優維度值後,效能隨著維度增加而下降。

通過上述描述,維度災難涉及到三方:訓練樣本數量,**效能,維度。在三方中任何一方給定,則其他兩方的變化是相互影響的,需要權衡折中。

當資料量一定,要達到預期效能,為什麼維度增加會導致樣本不足?

從統計學角度理解,機器學習本質上逆概問題,即假定資料符合某個模型,用訓練樣本求解模型最優引數。

在統計學習中,這叫做引數估計,即從總體中抽取的隨機樣本來估計總體分布中未知引數的過程。

引數估計,對於樣本要求是足夠隨機以及數量足夠大

可以想象,隨著維度增加,特徵空間呈幾何式增長,給定的樣本數量必然不能夠滿足隨機和數量足夠大,而且會越來越不足,表現為樣本在特徵空間中越來越稀疏。

當資料量一定,為什麼維度增加,模型會表現為過擬合?

我們從《連續特徵離散化的應用總結》一文中了解到,離散化增加特徵維度同時會引入非線性資訊。

非線性資訊固然好,能夠增加擬合能力,但這並不是完全正相關的。根據奧卡姆剃刀原則,乙個模型在滿足**效能條件下盡量簡單,才能夠有比較好的泛化能力。

所以,增加特徵維度和提高模型本身複雜性的效果是一致的,模型複雜性可以使用正則化來自動控制,而特徵維度只能通過人為方式來權衡調整。

以上描述可以參考文章《the curse of dimensionality in classification》。

我們知道特徵工程是為了彌補特徵不足以表達資料的所有資訊而做的特徵的交叉和組合,其目標是為了得到更多的特徵。而特徵太多,又會造成維度災難,理論上如果訓練樣本時無限多的,那麼維度災難不會發生,我們可以使用無限多的特徵來獲得乙個完美的分類器。但是理論很完美,現實很殘酷。

因此我們必須考慮到如何避免維度災難,很遺憾沒有固定的規則來指定應該使用多少特徵,我們只能有一些經驗方式

對於複雜模型,維度不要太高;簡單模型,維度可以較高。本質上考慮「是否需要增加維度,提供非線性」。

非線性決策邊界的分類器(例如神經網路、knn分類器、決策樹等)分類效果好但是泛化能力差且容易發生過擬合。因此,維度不能太高。

使用泛化能力好的分類器(例如貝葉斯分類器、線性分類器),可以使用更多的特徵,因為分類器模型並不複雜。

因此,過擬合只在高維空間中**相對少的引數和低維空間中**多引數這兩種情況下發生。

參考 sklearn feature selection。

相關性分析

工程上常用的手段有計算皮爾遜係數和互資訊係數,皮爾遜係數只能衡量線性相關性而互資訊係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裡邊都包含了這個工具(如sklearn的mine),得到相關性之後就可以排序選擇特徵了;

l1正則化選擇特徵

l1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,l1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了乙個,如果要確定哪個特徵重要應再通過l2正則方法交叉檢驗;

訓練能夠對特徵打分的預選模型

randomforest和logistic regression等都能對模型的特徵打分,通過打分獲得相關性後再訓練最終模型;

sk-learn中有selectfrommodel,可用於具有coef或者feature重要性屬性的所有不同型別的學習模型。

pca主成分分析

交叉驗證方式

遞迴特徵消除

(1)遞迴要迴圈執行多次來篩選特徵,指定乙個基模型,這個模型可以是 lr 或者 decisiontree 都可以,需要有coef_或者feature_importances_來評估特徵重要性。

(2)用所有特徵訓練一次模型,每一輪訓練過程中消除掉一些權重較小的特徵。

(3)重複以上步驟,直到訓練結束。

sk-learn中

特徵選擇的根本,其實是不斷嘗試,因為沒有規律可循,所以將這個過程管道化,自動化處理,才能夠高效完成模型的優化。

ASR特徵維度

常見特徵 功率譜 fbank mfcc fbank特徵的提取更多的是希望符合聲音頻號的本質,擬合人耳接收的特性。而mfcc特徵多的那一步則是受限於一些機器學習演算法。很早之前mfcc特徵和gmms hmms方法結合是asr的主流。而當一些深度學習方法出來之後,mfcc則不一定是最優選擇,因為神經網路...

特徵選擇和特徵抽取

特徵提取演算法分為特徵選擇和特徵抽取兩大類。特徵選擇 不改變原始的特徵資料,只是選擇一部分出來。其中常用的特徵選擇演算法有 1 df document frequency 文件頻率 df 統計特徵詞出現的文件數量,用來衡量某個特徵詞的重要性 2 mi mutual information 互資訊法 ...

機器學習中的維度災難(一)

作為乙個挖掘小白,好不容易有了資料,第一步就死在高維度上了,本以為直接上來 資料缺失值 資料分布等,但是上千維度腫麼看,在網上搜尋看到了這篇好文章,感謝原文作者的翻譯 一.引言 這裡我們將要討論所謂的 維數災難 同時結合過擬合現象來解釋它在分類器學習中的重要性。舉乙個分類應用的簡單例子,假設我們有一...