技術筆記 / 機器學習與資料科學

【架構解析】AutoML 三部曲:基礎調參、巨量降維與特徵煉金的戰略差異

在建構自動化量化交易系統時,我們面臨的挑戰會隨著「特徵數量」與「資料複雜度」急遽上升。為了應對不同的戰場,我們開發了三支核心的 AutoML 腳本:demo_automl_basic、demo_automl_massive 與 demo_automl_tsfresh。

這三者的核心差異在於:特徵是從哪裡來的?Optuna 在其中扮演什麼角色?


1. 基礎參數與開關控制 (demo_automl_basic.py)

定位:手動實驗室的「代工廠」

2. 巨量特徵的殘酷淘汰賽 (demo_automl_massive.py)

定位:高維度雜訊的「垃圾焚化爐」

3. 時間序列煉金術士 (demo_automl_tsfresh.py)

定位:未知 Alpha 訊號的「發明家」


📊 總結比較矩陣

比較維度 demo_automl_basic (基礎調參) demo_automl_massive (巨量降維) demo_automl_tsfresh (時間序列煉金)
輸入特徵數 極少 (通常 < 20) 海量 (1,000 ~ 10,000+) 基礎時間序列 (由套件擴增至千/萬維)
特徵組合方式 人類手動寫死 if-else 依賴樹狀模型的非線性切分 tsfresh 自動套用數千種進階數學公式
Optuna 主要任務 尋找最佳閾值與組合權重 尋找最佳 L1 正規化強度以砍除雜訊 結合自動發明的特徵,尋找極致勝率參數
輸出價值 (Output) 最佳參數配方字典 (best_params) 倖存特徵排行榜名單 (Feature Selection) 人類意想不到的新指標公式 (Alpha Discovery)
您的系統應用場景 對已經確定的幾個 T3 衍生指標進行權重微調。 將 Java 產出的 MLFrame 16 個 Section 鋪平後,剔除無用區塊。 探索連續 16 個 gapSize 是否存在未知的傅立葉低頻週期賺錢訊號。

💡 實戰架構結論

在頂級的量化研發流程中,這三者是線性結合的:

  1. 先用 tsfresh (腳本 3) 探索原始陣列資料,找到隱藏的數學公式。

  2. 將這些數學公式在 Java 端實作出來,連同原本的領域特徵,產生數千維的大型 Parquet 表格,丟入 massive (腳本 2) 進行降維與清洗。

  3. 最後,拿著清洗後僅存的數十個黃金特徵,放入 basic (腳本 1) 的邏輯中做最後的權重與閥值微調,並將這個輕量級的終極模型部署上線。


這份比較表能幫助團隊更清楚在不同的研發階段該掏出哪一種武器。您接下來會希望我們先將您的 Java MLFrame 轉換成 Parquet,然後用 demo_automl_massive.py 實際跑一次真實資料的「倖存者淘汰賽」嗎?

在 GitHub 看原文