ML4T 導讀 · Part III · Ch 11–15

贏不了 Ridge,就是白加複雜度

這五章最珍貴的地方,是作者用同一套九個案例的測試床,誠實記錄了「複雜度到底換到多少」——而答案比多數人想的保守得多。這是一份反行銷的模型開發指南。

Ch 11 ML 管線 Ch 12 梯度提升 Ch 13 時序深度學習 Ch 14 潛在因子 Ch 15 因果 ML
0

一張圖看懂這一部分

每爬一層階梯,都要證明自己值得

Part III 的結構是一道基線階梯:每個更複雜的模型都必須在同一條管線、同一套 walk-forward 下,打敗前一層的基線並回報增益。贏不了,就是白加複雜度。

難得的是,作者沒有只講原則——他用同一套九個案例(ETF、美股、NASDAQ-100 分鐘、加密貨幣、選擇權、外匯、期貨、美股公司特徵…)把每一層都跑過一遍,成績誠實地列出來。結論相當清醒:線性模型能排序報酬,是例外不是通則(九個案例只有三個的信賴區間排除零);GBM 把顯著案例從 3 個擴到 5 個,但從未在線性完全無訊號的地方憑空造出訊號;序列深度學習八戰只有一勝,還有兩場明顯落敗。

複雜度越往上,但增益不保證跟著上 Ch 11 · 正則化線性基線 Ridge / LASSO / Elastic Net 九案例 3 個顯著 ← 每一層都要跟它比 Ch 12 · 梯度提升 GBM 交互作用與門檻效應 九案例 5 個顯著 +2 Ch 13 · 序列深度學習 LSTM / PatchTST / Mamba 八案例 1 勝 2 敗 5 平 Ch 14 · 潛在因子模型 PCA / IPCA / CAE / SDF 五案例 3 平或勝 2 敗 Ch 15 · 因果 ML 不在這道階梯上 預測排名產 alpha 因果分析定信心與部位 九案例只有 4 個過雙閘 關鍵發現 複雜模型從未在線性完全 無訊號處憑空造出訊號

這張圖真正想說的不是「別用複雜模型」,而是「複雜度要拿證據換」——而書把證據誠實地攤開了。

A

Ch 11 · 機器學習管線

先把基線做對,順便把不確定性做對

核心思想:用正則化線性模型建立一條可解釋的預測基線。為什麼是正則化而不是 OLS?因為交易研究的判準是樣本外預測準確度,不是無偏參數回收。總預測誤差 = 偏差² + 變異 + 雜訊;在特徵多、樣本少、訊噪比極低的金融資料上(截面報酬的樣本內 R² 通常只有 1–3%),引入一點偏差換取大幅降低變異非常划算。

選哪一種正則化?書給了一個好記的框架:penalty 就是你對訊號結構下的注。賭訊號分散在很多相關特徵上,押 Ridge;賭訊號集中在少數特徵上,押 LASSO;不確定,押 Elastic Net 讓資料說話。金融資料的特徵通常高度相關,所以 Ridge 是預設。

但這章真正的警告在調參上。書的實測:同一批資料、同一批切分,單層 CV 報 IC +0.028,換成巢狀 CV 變成 −0.032——正負號直接翻轉。訊號越弱,選擇偏誤越致命。

外層 walk-forward 只做一件事:評估 訓練窗 purge 測試窗 內層:只在訓練窗內調參 Optuna 搜尋範圍要涵蓋兩端—— 近乎 OLS 到強正則化都要掃到 測試窗只在 最後量一次 絕不參與調參 ✗ 單層 CV(調參與評估混用) IC = +0.028 看起來有訊號 ✓ 巢狀 CV(外評估、內調參) IC = −0.032 同一批資料、同一批切分 訊號越弱,協定的嚴謹度本身就是結論 在這種訊噪比下,一個看似技術性的驗證選擇,足以把「有訊號」翻轉成「反向訊號」

外層只評估、內層才調參——這不是嚴謹的裝飾,是結論成立的前提。

Ch 11 · 基線選型與洩漏防護決策規則
特徵高度相關(金融常態)→ 預設 Ridge
     # LASSO 會在相關特徵群裡隨機挑一個、其餘歸零
     # 實測:輕微稀疏就砍掉約 1/4 特徵,IC 反而掉到 OLS 之下

Ridge 的 α 搜尋範圍
     要涵蓋「近乎 OLS」到「強正則化」兩個 regime
     # ETF 案例 n≈39 萬時掃 10⁻¹ 到 10⁷;ICIR 峰值落在 α≈10⁶

標準化與 winsorize
     μ、σ、分位數 只能來自訓練 fold,每次 refit 重算
     # 用全樣本算不會報錯、不會警告,只會讓成績虛胖

AUC 怎麼讀
     0.55–0.60  金融樣本外已經有意義
     > 0.65      先查洩漏,再慶祝
註解為什麼重要:「統計顯著 ≠ 經濟顯著」在這章有個好例子:NASDAQ-100 案例的 IC 只有 0.005,卻是統計顯著的——因為它有 64,580 期樣本撐著。反過來,模型選擇(統計指標)與策略評估(含成本的報酬)必須嚴格分開:MSE 的改善如果來自擬合截面中段那些永遠不會交易的資產,或者推高了換手率,PnL 反而會更差。

→ 接到台股(以下為外推,非書上內容):「贏不了 Ridge 就是白加複雜度」這條紀律,對台股研究的意義可能比對美股更大——台股可用歷史短、標的數少,訊噪比只會更差,選擇偏誤只會更致命。書上單層 vs 巢狀 CV 翻轉正負號的例子,在樣本更小的台股上發生機率更高。實務建議:任何要上的模型,都先跑一條同管線的 Ridge 基線並把數字記下來。至於 ml.duckdb 裡已有的模型,值得回頭補這條基線對照——這是推論方向,實際差多少要跑了才知道。

B

Ch 12 · 表格資料進階模型

GBM 是可辯護的預設,但不是萬靈丹

核心思想:GBM 是表格型金融預測的「可辯護預設」。它與隨機森林的差別在機制上:隨機森林平均獨立的樹,只能降低變異、無法修正系統性偏誤(如果所有樹都低估極端報酬,平均起來還是低估);boosting 則是每棵新樹去擬合當前模型的殘差,可以逐步消除偏誤。

但選哪一家?書的結論很務實:調參之後,三家的準確度差距(約 0.002)比「超參數調得好不好」的差距還小。所以真正的判準是營運面——要 CPU 快選 LightGBM、要高基數類別特徵安全選 CatBoost、要生態完整選 XGBoost。

要選一家 GBM 準確度差距可忽略 你的瓶頸是什麼? 看營運不看準確度 CPU 訓練速度 → LightGBM 490 萬列約 50 秒,比 XGBoost 快一倍。本書九案例的預設庫 高基數類別特徵 → CatBoost 從機制上杜絕編碼洩漏;對稱樹讓推論快約 12 倍,延遲敏感時首選 生態與部署整合 → XGBoost SHAP、Optuna、部署工具鏈最成熟;CPU 與 GPU 通吃

一個反直覺的細節:資料量小的時候不要開 LightGBM 的 GPU——它的 CUDA 路徑只支援 FP64,在消費級顯卡上反而比 CPU 慢好幾倍。

Ch 12 · GBM 起手式與調參預算決策規則
# 五件套,先照做再談微調
起手 LightGBM + 淺樹 + MAE loss
     + 學習率固定 0.01–0.05 + early stopping
     + 單調約束(把經濟方向寫進模型)

# 為什麼 loss 選 MAE:它拒絕去追厚尾的極端報酬
     # 9 個主要標籤裡 MAE 贏了 8 個
     # 美股月頻案例:MAE +0.080 vs Huber/MSE +0.030–0.035

調參預算 trial 數 50–100 封頂
     重點放正則化參數,不是樹結構參數
     # 500 個 trial 找出來的 +0.02 IC,在真 holdout 上會蒸發
     # 這是回測到實盤衰退最常見的來源

只交易頭尾分位 → 改用排序目標 lambdarank
     # 別讓 MSE 把模型容量花在永遠不交易的中段
註解為什麼重要:這章有個特別值得記住的觀察:特徵重要度不要相信函式庫內建的那個。gain-based 偏袒高基數特徵、split-count 偏袒連續特徵,而且換個隨機種子排名就大變。開發期快篩可以用,但只要進到決策(篩特徵、寫風控報告),一律改用 SHAP。另外 SHAP 還有個被低估的用途——漂移監控:比較基線期與近期的 SHAP 分布,可以在績效垮掉之前,先偵測到模型的「推理方式」變了。

→ 接到台股(以下為外推,非書上內容):兩個地方特別適合台股。第一,CatBoost 的類別特徵處理——台股研究常有高基數的類別欄位(券商分點代號、產業分類、主力名單 ID),書提到的編碼洩漏正是這種欄位最容易出事的地方,CatBoost 的 ordered encoding 是從機制上解決。第二,lambdarank 排序目標——如果你的策略只做多空各前幾名(台股選股常見做法),用排序目標比用 MSE 合理,因為你根本不在乎中間那幾百檔排得準不準。單調約束也值得用:把「融券餘額增加不該預測報酬上升」這類經濟方向寫進模型,這是免費的正則化。以上是套用方向,實際增益要自己驗。

C

Ch 13 · 時序深度學習

架構只有在目標定義正確之後才重要

核心思想:時序深度學習的答案不是「用 Transformer」,而是歸納偏置的競賽——而且架構只有在預測目標定義正確之後才重要。書把「表述」(formulation)擺在架構前面,這是本章最有價值的一課。

有一個很有說服力的診斷實驗值得記住:把輸入序列隨機洗牌之後,D-Linear 的誤差從 0.345 暴增到 1.406(表示它真的在用時間結構),而 Transformer 只從 0.379 變到 0.391——幾乎沒差,代表它根本沒在學時間模式。這就是 LTSF-Linear 那篇批判的核心:單層線性模型在九個長期預測基準上,打敗當時的 Transformer 系列達 20–50%。

① 遞迴一步預測 predict → 餵回去 → 再 predict t1 t2 t3 t4 誤差沿期間複利放大 圓圈越大代表不確定性越大 ② 直接預測整條路徑 一次 forward 出 t1…t_h 免除遞迴誤差,但你逼模型去學所有中間步的聯合結構——而那些中間步你其實並不需要 書中對照:同資料上這種表述只到 +0.029,輸給直接迴歸 ③ 直接預測標籤 跳過路徑,直接對準你要的那個數字 5 天報酬、方向、截面排名——就是投資問題真正需要的東西 ✓ 與評估指標對齊 ✓ 沒有誤差複利 ✓ 截面排名任務幾乎總是選這個 週頻對照實驗:直接迴歸 +0.018 vs 一步預測 −0.013(就算消掉複利,目標錯配還是輸)

選錯表述,再好的架構也救不回來;選對表述,最簡單的線性結構常常就夠了。

Ch 13 · 該不該上深度學習決策規則
# 樣本量門檻(日頻、中等訊噪比的校準值)
< 5,000        → Ridge / LightGBM,別想了
5,000–20,000   → LightGBM 性價比最高
> 20,000       → 可以測試 DL
                 # 注意用詞:大樣本觸發「比較」,不觸發「替換」

# 基線階梯不可跳,全部贏過才有資格談序列 DL
階梯 seasonal naive → D-Linear / N-Linear
     → ARIMA / VAR → LightGBM 帶 lag 特徵

時序基礎模型(Chronos、TimesFM 那類)
     報酬預測 zero-shot 不可用
     # 實測 IC 為負,比隨機還糟
     波動率 / VaR + fine-tune 才可信
     # 另外要查:評估資料有沒有落在它的預訓練語料裡

不確定性 deep ensemble 約 5 個成員是甜蜜點
     但原始區間覆蓋率低一個數量級,必須疊 conformal 校準
註解為什麼重要:八個案例的實測結果:序列深度學習一勝二敗五平——只有加密貨幣那個案例配對顯著勝出(+0.018),而美股日頻與 CME 期貨反被 GBM 壓了 0.025 到 0.033。更有意思的是奪冠架構的分布:最簡單的 NLinear 拿下四個案例、LSTM 兩個、PatchTST 兩個、TCN 零個。在「直接預測標籤」這個表述下,最簡單的時間感知結構最能存活。

→ 接到台股(以下為外推,非書上內容):那個樣本量門檻對台股是硬約束——台股上市櫃約 1,700 檔、一年約 240 個交易日,如果做的是「單一標的的時序預測」,樣本數很容易落在 5,000 以下,也就是書上直接說「別想了」的區間。要達到可以考慮 DL 的量級,通常得走截面 panel(多檔股票 × 多個時點)而不是單檔時序——而截面排名任務書上建議的正是「直接預測標籤」表述。順帶一提,TradingView 上那類「ML 指標」(如 Lorentzian Classification)本質上是單標的、小樣本的分類器,用書的框架看,它們該比的對手是 LightGBM 而不是 Transformer;這是我的判讀,書沒有評論這些指標。

D

Ch 14 · 潛在因子模型

解釋共變異的因子 ≠ 有定價的因子

核心思想:面對 400 多個「因子動物園」,潛在因子模型改變了選擇的對象——不再逐一檢定具名特徵,而是直接從報酬(可以再加上定價限制或特徵)推出低維結構。

但這章最大的坑,也是最重要的一句話:解釋共變異的因子,不等於有定價的因子。五種方法各自在最佳化不同的目標,混淆它們就會用錯工具。書給了一個很好的例子:某個信用風險因子可能只解釋 2% 的變異,卻有 0.8 的 Sharpe——標準 PCA 會把它排到第 15 名之後,而加了定價懲罰的 RP-PCA 能把它拉到第 3。

同樣叫「因子模型」,但它們在最佳化完全不同的東西 解釋「什麼在一起動」 解釋「什麼有溢酬」 PCA 最大化解釋變異 用途:風險分解 五案例奪冠次數:0 RP-PCA 變異 + 定價誤差懲罰 用途:找有溢酬的因子 IPCA / CAE 特徵決定時變曝險 用途:條件 beta 「特徵即共變異」 SDF / SAE 直接最小化定價誤差/直接預測 五案例奪冠次數:4 目標越直接,排名越好 一個硬性物理限制:BBP 相變門檻 當因子的母體特徵值低於 1 + √(N/T),它就落在純雜訊的分布範圍內——任何方法都救不回來 資產數遠多於期間數時,別再從報酬估 loading,改走「用特徵映射 loading」的路線(IPCA / SAE)

先問「我要回答什麼問題」,再選方法——把 PCA 因子直接拿來當交易訊號,是這章點名的第一個反模式。

Ch 14 · 滾動 PCA 上生產前的三件事決策規則
# 特徵向量在近乎簡併的特徵值下極不穩定——換一天資料就翻號
診斷 算相鄰窗的 cosine similarity
     跌破 0.8 就不可用
     # 第三主成分之後很常見

修正 用 Procrustes 旋轉對齊相鄰窗的 loading
     # 特徵值比 > 2:1(分離良好)時可以免

收縮 N/T 偏大時用特徵值收縮,別靠目測 scree plot

# 為什麼非做不可:翻號的 loading 會產生「幻影換手」
# 你的組合根本沒有變,帳面上卻在瘋狂調倉——付的是真實的交易成本

選模看什麼 潛在因子模型一律看下游預測指標
     永遠不看重建損失
     # 重建損失是體檢報告,不是成績單
註解為什麼重要:因子動物園的平衡讀法值得記住。一方面,複製研究顯示多數已發表因子在統計上是真實的(93 國複製 153 個因子,複製率約 82%);另一方面,用更嚴格的建構方式(NYSE 分界點、市值加權)重測,452 個異象裡有 65% 連 t>1.96 都過不了——等權組合讓微型股綁架了結論。再加上發表後約 58% 的衰減。「因子是真的」與「因子現在還能賺」是兩個問題。

→ 接到台股(以下為外推,非書上內容):BBP 門檻對台股是很實際的約束:如果你用 500 檔台股、一年日資料(約 240 個交易日)做 PCA,N/T 已經大於 2,1+√(N/T) 的門檻很高——除了市場因子與少數產業因子之外,其餘成分基本上落在雜訊區。這解釋了為什麼台股的「統計套利配對」在成分數拉多之後很容易失效。書的建議(高維面板改走特徵映射路線)值得參考。另外「等權組合讓微型股綁架結論」這件事在台股更嚴重——台股小型股的流動性斷崖比美股陡,等權回測看起來漂亮但根本做不到那個量。這是套用書的邏輯到台股的推論,具體門檻要自己算。

E

Ch 15 · 因果機器學習

它不產生 alpha,它決定你該多相信這個訊號

核心思想:再精巧的估計器也救不了識別失敗。流程永遠是固定的五步:畫 DAG → 決定調整集 → 推導 estimand → 用 ML 估計 → 跑 refutation 測試。估計器的精巧程度排在最後。書把目標講得很清楚:不是要從觀察資料「證明」因果,而是要分辨「經得起檢驗的主張」與「一戳就垮的主張」。

最重要的定位是這句:因果係數不是交易訊號。預測排名(Ch 11–14)產生 alpha,因果分析決定你該多相信它、該配多少部位。書自己的實測很誠實:ETF 動能的因果分析做得很完整,但到了嚴格 holdout,三個策略全部轉負——因為基礎訊號本身死了。因果分析減緩了樣本外的退化,但它不製造 alpha。

順序不可換——估計器的精巧度排最後 ① 畫 DAG 把機制講出來 ② 調整集 該控制哪些變數 ③ estimand 到底要估什麼量 ④ ML 估計 DML 正交化 ⑤ 反駁 placebo 測試 兩道獨立的閘,要同時過 閘一 與「零」可區分嗎? HAC 校正後 p < 0.05 問的是:這個效應存在嗎 閘二 與「人工品」可區分嗎? block-permutation 反駁測試 p ≥ 0.05 問的是:換成假的處置,會不會也「顯著」 九個案例,只有 4 個雙閘都過 單獨通過任一道都不算數——只過統計顯著的,可能是在對雜訊做假設檢定

兩道閘是互相獨立的體檢項目,一個問「存在嗎」,一個問「跟假的比得出差別嗎」。

Ch 15 · DML 的三條紀律與事件研究防呆決策規則
# DML 用在時序資料上,三件事不能省
紀律一 cross-fitting 一律用 expanding / rolling window
       # 絕不隨機切折——重疊報酬的自相關會直接洩漏
紀律二 HAC 帶寬要對齊 forward return 的重疊期
紀律三 nuisance 模型至少換兩類看穩定性
       # 跨合理模型大幅變動 = 結論不穩

# 事件研究:這兩步要在相信任何發現之前先做
先跑 control-as-target 檢查   # 控制序列自己有沒有被事件污染
再跑 placebo dates           # 挑沒事發生的日子跑同一套管線
才看 事件本身

block-permutation 的 block 長度
       要夠長 # 案例:7 天 block 得 p=0.03(過),縮到 1 天就膨脹成假顯著
註解為什麼重要:書用一個 FOMC 事件研究當設計失敗的示範,非常有教育意義:四次事件的可信區間全部排除零,看起來鐵證如山——但 12 個隨機挑的 placebo 日期裡,有 7 個也「顯著」(58% 的假陽性率),而且三個控制 ETF 在多數事件日都被污染了。結論是:placebo 與污染檢查在任何個別發現被當真之前,就否決了整個研究設計。另一個值得記住的數字:不做正交化直接報因子係數,九案例的中位絕對偏差是 59.7%——大量回測文獻建立在系統性失真的係數上。

→ 接到台股(以下為外推,非書上內容):這章對台股籌碼研究有直接對應。「分點買超導致股價上漲」是一個因果主張,而它最明顯的混淆因子就是——分點買超與股價上漲可能同時被第三個因素驅動(題材發酵、大盤走強、融資追買)。書的框架會要求你先畫 DAG、決定控制什麼,再用 DML 正交化,最後跑 placebo(例如隨機挑一批分點,看看是不是也「顯著」)。這正是 H-018 那類驗證可以再強化的方向:當時做的是樣本外檢定(回答「能不能預測」),因果框架回答的是另一個問題(「是不是它造成的」)。兩者互補,不互相取代。至於事件研究的 placebo dates 檢查,套到台股的除權息、法說會、月營收公布這類事件研究上,是幾乎零成本就能加上的防呆。

F

這一部分的決策速查

模型開發的閾值與規則

情境怎麼做出處
選正則化方式特徵高度相關(金融常態)預設 Ridge;LASSO 會在相關群裡隨機丟棄Ch 11
設 α 搜尋範圍要涵蓋近乎 OLS 到強正則兩個 regimeCh 11
調參協定巢狀 walk-forward——外層只評估、內層才調參Ch 11
讀 AUC0.55–0.60 在金融已有意義;> 0.65 先查洩漏Ch 11
用 conformal 區間覆蓋率要按 fold、波動 regime、資產群分層監控,不能只看邊際數字Ch 11
GBM 起手式LightGBM + 淺樹 + MAE loss + 學習率 0.01–0.05 + early stopping + 單調約束Ch 12
選 GBM 函式庫CPU 快 → LightGBM;類別安全 → CatBoost;生態 → XGBoost(準確度差距可忽略)Ch 12
調參預算trial 50–100 封頂,重點放正則化參數;更多 trial 是在買驗證集過擬合Ch 12
小資料集用 GPU不要開 LightGBM GPU——FP64-only 路徑在消費卡上反而更慢Ch 12
只交易頭尾分位改用 lambdarank 排序目標,別讓 MSE 把容量花在中段Ch 12
看特徵重要度用 SHAP,不用函式庫內建(換個種子排名就大變)Ch 12
選預測表述截面排名一律用「直接預測標籤」,不要預測路徑再複利Ch 13
該不該上 DL< 5,000 樣本別想;5,000–20,000 用 LightGBM;> 20,000 才觸發比較(不是替換)Ch 13
基線階梯seasonal naive → D-Linear → ARIMA → LightGBM 帶 lag,全贏才談序列 DLCh 13
時序基礎模型報酬預測 zero-shot 不可用;波動率/VaR 加 fine-tune 才可信Ch 13
估不確定性deep ensemble 約 5 個成員;原始區間必須疊 conformal 校準Ch 13
選潛在因子方法先問目標:風險分解→PCA、找溢酬→RP-PCA、條件 beta→IPCA/CAE、直接定價→SDFCh 14
判斷因子救不救得回母體特徵值低於 1+√(N/T) 就是雜訊,任何方法都無效Ch 14
滾動 PCA 上生產相鄰窗 cosine < 0.8 不可用;特徵值比 < 2:1 要上 Procrustes 對齊Ch 14
潛在模型選模看下游預測指標,永遠不看重建損失Ch 14
做因果分析順序固定:DAG → 調整集 → estimand → 估計 → refutationCh 15
DML 三紀律時序 cross-fitting、HAC 帶寬對齊重疊期、nuisance 換兩類模型Ch 15
做事件研究先跑污染檢查與 placebo dates,才看事件本身Ch 15
讀因果證據雙閘制:HAC 顯著 × 反駁測試通過,單過一道都不算Ch 15

注意事項 · 這一部分最容易踩的坑

🔁用單層 CV 調參又評估:訊號越弱越致命。書的實測是同一批資料從 IC +0.028 翻轉成 −0.032——不是變小,是變號。在低訊噪環境裡,驗證協定的嚴謹度本身就是結論的一部分。
🎰無限加超參數搜尋 trial:低訊噪環境下,驗證集過擬合是「回測好、實盤差」的頭號來源。500 個 trial 挖出來的 +0.02 IC,在真正沒碰過的資料上會蒸發。書的建議是 50–100 個 trial 封頂。
📈省略非深度基線:沒有 Ridge 或 LightGBM 對照組,任何深度學習的「增益」都是虛胖。書的八案例實測是深度學習一勝二敗五平——DL 是選項,不是升級。
🎲拿單一切分點的結果排架構名次:在這種訊噪比下,同樣的程式碼、同樣的資料重跑一次,名次就會換(書中某架構從 +0.051 翻到 −0.013)。結論一律出自 walk-forward,單切分只能當 sanity check。
🔮把 SHAP 讀成因果:高 SHAP 值只代表「這個模型對它有反應」,可能是真訊號、可能是遺漏變數的相關、也可能是管線混淆。而且同等準確的兩個模型可以給出完全矛盾的解釋——兩個不同模型家族都認為重要的特徵,才比較可信。
📐本頁的來源邊界:內容取自 skills/ml4t/chapters/ch11–ch15 蒸餾檔。來源 EPUB 抽取時數學公式與圖表無法讀取,本頁數字均取自章節檔中以文字明確寫出的部分。書中九案例成績為作者測試床的實測結果,屬研究等級、非實盤依據;口徑是美股,台股段落已逐段標示為外推。