機器學習模型為什么要將特征離散化


我在刷Kaggle時發現一個問題。很多人在處理數據的時候,經常把連續性特征離散化。對此我感到很好奇,所以上網搜了一些總結,主要內容來自知乎連續特征的離散化:在什么情況下將連續的特征離散化之后可以獲得更好的效果?

這個是嚴林的回答
在工業界,很少直接將連續值作為邏輯回歸模型的特征輸入,而是將連續特征離散化為一系列0、1特征交給邏輯回歸模型,這樣做的優勢有以下幾點:
0. 離散特征的增加和減少都很容易,易於模型的快速迭代;

  1. 稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;
  2. 離散化后的特征對異常數據有很強的魯棒性:比如一個特征是年齡>30是1,否則0。如果特征沒有離散化,一個異常數據“年齡300歲”會給模型造成很大的干擾;
  3. 邏輯回歸屬於廣義線性模型,表達能力受限;單變量離散化為N個后,每個變量有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合;
  4. 離散化后可以進行特征交叉,由M+N個變量變為M*N個變量,進一步引入非線性,提升表達能力;
  5. 特征離散化后,模型會更穩定,比如如果對用戶年齡離散化,20-30作為一個區間,不會因為一個用戶年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎么划分區間是門學問;
  6. 特征離散化以后,起到了簡化了邏輯回歸模型的作用,降低了模型過擬合的風險。

李沐曾經說過:模型是使用離散特征還是連續特征,其實是一個“海量離散特征+簡單模型” 同 “少量連續特征+復雜模型”的權衡。既可以離散化用線性模型,也可以用連續特征加深度學習。就看是喜歡折騰特征還是折騰模型了。通常來說,前者容易,而且可以n個人一起並行做,有成功經驗;后者目前看很贊,能走多遠還須拭目以待。


免責聲明!

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



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