機器學習 數據量不足問題----1 做好特征工程 2 不要用太多的特征 3 做好交叉驗證 使用線性svm


來自:https://www.zhihu.com/question/35649122


其實這里所說的數據量不足,可以換一種方式去理解:在維度高的情況下,數據相對少。
舉一個特例,比如只有一維,和1萬個數據,那么這種情況下,我們可以認為數據量其實是足夠的,因為數據密度相對來說很高。
如果數據的維度有1000維,數據量仍然有1萬,這種情況下,數據的密度就相當低了。

引用wiki里的兩句話:
- The common theme of these problems is that when the dimensionality increases, the volume of the space increases so fast that the available data become sparse. This sparsity is problematic for any method that requires statistical significance. In order to obtain a statistically sound and reliable result, the amount of data needed to support the result often grows exponentially with the dimensionality.

- With a fixed number of training samples, the predictive power reduces as the dimensionality increases, and this is known as the Hughes effect
[3]

or Hughes phenomenon
具體可以查看鏈接:Curse of dimensionality

簡單的翻譯過來就是,當維度增加的時候,訓練所需要的數據量需要成指數級別的增長才能滿足要求。

維度很高,且數據量不足的情況下,訓練模型僅僅是去“記憶”數據,而不是去“學習”數據。因為對於高維度來說,空間的自由度非常大,在數據量相對不高的情況下,其實每一個數據都可以看成是一個“特例”,這也是造成過擬合現象的原因。

但是,高維度的情況下也有一個好處:既然空間的自由度很高,那么數據就更可能線性可分,在維度高到一定程度的時候,我們就可以認為其線性可分的概率為1 (其實這個觀點是缺少嚴謹的數學驗證的,可以參考:如何證明無窮多維的情況下,數據一定線性可分? - 雷天琪的回答)。

所以得出的結論是,在數據量不足的情況下(相對於高維度下的數據量不足問題),我們可以使用線性分類器來解決問題,因為其“更可能線性可分”,比如,使用SVM來分類數據量少的問題。

最近做的一個項目就遇到了這個問題,從上面的分析的基礎上,可以看出線性分類器可以保證在數據量很少的情況下的性能,但是我的實際項目不能驗證這一點。 :(

我的實際項目中, 效果最好的還是隨機森林(可以應對線性不可分的情況),而SVM和其他的一些模型並無明顯差別,唯一顯著的效果是,False Positive很少,不過這一點在某些情況下很重要。至於原因,現在只能理解為數據中有錯誤。
 

幾千份樣本對於大部分機器學習模型, 已經足夠了(除了深度學習之類的)

根據"No free lunch"原則, 沒有一個模型比另一個模型好的說法, 必須結合具體問題.

建議:

1 做好特征工程

2 不要用太多的特征

3 做好交叉驗證

 

 


免責聲明!

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



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