Machine-Learning

在進行隨機森林或梯度提升時,特徵工程重要嗎?

  • August 29, 2017

對於線性模型(如線性回歸、邏輯回歸等),特徵工程是提高模型性能的重要步驟。我的問題是,如果我們在使用隨機森林或梯度提升的同時進行任何特徵工程,這有關係嗎?

當然,這些模型不是深度學習模型。但是,似乎某些特徵工程方法並沒有真正改善模型。例如:我在做一個二分類問題,它包含大約200個特徵,其中20個是分類特徵。我做了以下事情:

  1. 基準測試:直接在原始數據上運行隨機森林分類器。我得到的AUC在0.93左右,precision,recall & F-score在0.95左右(我說的是左右,因為應用了statifiedKfold驗證,結果變化很小)
  2. 我通過卡方檢驗和 ANOVA f1 檢驗降低了特徵維度,運行模型。結果幾乎相同:AUC 約為 0.93,準確率、召回率和 F 分數約為 0.95
  3. 然後我對所有分類特徵進行熱鍵,然後重新運行模型,結果仍然幾乎相同:AUC 約為 0.93,精度、召回率和 F-score 約為 0.95
  4. 然後應用截斷的 SVD 進一步減少特徵,並重新訓練模型,結果仍然沒有變化……
  5. 最後我添加了多項式項,剩餘特徵的交叉項。結果還是沒變……

請問有什麼建議嗎?謝謝。

人們普遍認為,特徵工程在使用相對先進的算法(如 GBM 或隨機森林)時可以改善結果。有幾個原因,與整體準確性和可用性有關。首先,如果您真的想使用該模型,功能將需要維護和實施,並且通常需要向用戶解釋。也就是說,每個額外的功能都會產生額外的工作。因此,出於實際目的,消除對提高準確性沒有實質性貢獻的特徵很有用。

就整體準確性而言,附加特徵和/或設計不佳的特徵會增加您在噪聲而非信號上訓練模型的可能性。因此,使用領域知識或數據檢查來建議設計特徵的替代方法通常會改善結果。kaggle 博客 - blog.kaggle.com - 包括每場比賽中登上領獎台的人寫的“他們是如何做到的”。這些通常包括對特徵工程的描述——可以說比模型調整的描述更頻繁,強調特徵工程的重要性——其中一些非常有創意,包括利用競賽組織者提供的或在競賽中發現的領域知識。

最近的這篇文章是一個很好的例子,說明在比賽中獲得的領域知識被用來選擇/設計特徵https://medium.com/kaggle-blog/2017-data-science-bowl-predicting-lung-cancer-2nd- place-solution-write-up-daniel-hammack-and-79dc345d4541(標題為“預處理”和“外部數據”的部分提供了很好的示例)。

引用自:https://stats.stackexchange.com/questions/300254

comments powered by Disqus