資料科學中特徵工程如何自動化? - Reddit

banq發表於2022-04-28

我目前是一名資料科學家,我發現我的大部分時間都花在了特徵工程上。

我的一般做法是,我建立資料的聚合(透過sql,因為需要處理的資料量很大),如sum,mean,avg,std,median,q25,q75。我需要在幾十個特徵上做這個工作。另外,我在不同的時間視窗上計算這些聚合:前一週,前一個月,前三個月。

最後我得到了數百個特徵,我需要選擇那些有意義的,包含相關資訊的特徵。目前,我在這個巨大的資料集上應用pandas profiling或sweetviz,並試圖透過目測結果來分析它。

我的主要挑戰是,這個過程是高度重複和手動的。我想知道是否有任何工具可以幫助我實現這一過程的自動化,並使某些部分可以重複使用?我喜歡有一個使用者介面,特別是用於視覺化的資料。
我是不是做錯了什麼,或者有什麼工具是我明顯沒有注意到的?

回答:
這取決於你的目標是什麼,但大多數時候,我認為ML'ers不需要太多的特徵工程。

如果你只是想建立一個最好的、最具預測性的模型,那麼密集的特徵工程和選擇過程已經有點過時了。15-20年前,盲目地把所有的特徵扔給一個模型的想法經常被嘲笑--在我2000年中期的第一份工作中,我們會花75%的時間來建立、測試和刪除特徵;今天,我可能會花10-20%的時間在這上面。現在的趨勢是走向更強大的非線性演算法,更好的正則化,以及大量的計算+儲存。一個GBM或DNN可以接受原始輸入,結合它們,找到有用的模式,並忽略其他的。

如果你想從你的模型中學習,你不想自動化特徵;你想給模型提供你知道對你很重要的輸入。

如果你需要一個在推理/評分方面快速而簡單的模型(例如,每秒數百萬次的預測),那麼特徵自動化就真的很有價值。我的方法通常是自動建立一堆特徵(所有的連續特徵、離散特徵的單次編碼、交叉特徵的比率和乘積等),用所有的特徵建立一個具有積極的L1正則化的線性模型,然後用前N%的特徵反覆重建模型,直到效能降到閾值以下。我不知道有什麼工具可以幫你做這個,但我用不到50行的Python在幾個小時內就完成了。

相關文章