上累積了幾十個候選因子,但不確定哪些真正有用、哪些只是冗餘。將所有因子全數納入模型,不僅增加計算負擔,更可能因過多的雜訊特徵而導致過度擬合。本文想談談如何用遞迴特徵消除法,以模型自身的重要性評估為依據,反覆剔除最無關的因子,留下最精簡而有效的組合。
遞迴特徵消除法在做什麼
遞迴特徵消除法是一種基於模型的特徵選擇方法,它透過反覆訓練模型和剔除最不重要特徵的方式來選擇最優的特徵子集。具體來說,遞迴特徵消除法的運作包含以下幾個步驟:
- 首先,使用全部特徵訓練一個基礎模型,並計算每個特徵的重要性得分。這個得分可以是線性模型的迴歸係數、樹模型的特徵重要性,或是任何能夠反映特徵對預測貢獻程度的指標。
- 接著,根據重要性得分對特徵進行排序,剔除得分最低的一個或多個特徵。
- 然後,在剩餘的特徵上重新訓練模型,重新計算重要性,再次剔除最不重要的特徵。這個過程反覆進行,直到剩餘的特徵數量達到預設的目標為止。
遞迴特徵消除法在量化因子篩選中的價值
在量化交易中,因子的數量往往遠多於真正有用的數量。技術指標可以衍生出數十種、基本面數據可以拆分出數百種、另類數據更是無窮無盡。將所有因子都塞進模型,不僅計算成本高昂,更可能因為因子之間的共線性而導致模型不穩定。
遞迴特徵消除法在因子篩選中的優勢在於它能夠考慮因子之間的交互作用。過濾式方法對每個因子獨立評分,無法捕捉因子之間的協同效應,兩個單獨看都沒什麼用的因子,組合在一起可能產生很強的預測力。遞迴特徵消除法作為包裹式方法,在每一次迭代中都是在當前因子組合的背景下評估每個因子的重要性,因此能夠保留那些與其他因子搭配起來效果最好的因子。
實務上的注意事項
- 基礎模型的選擇會影響結果。 遞迴特徵消除法的因子重要性評估完全依賴於所選用的基礎模型,用線性迴歸和用隨機森林,對同一個因子的重要性判斷可能完全不同。建議根據你的預測任務特性來選擇合適的基礎模型,或嘗試多種模型後比較結果的穩定性。
- 計算成本較高。 遞迴特徵消除法每一次迭代都需要重新訓練模型,當因子數量龐大時,整個流程可能耗費大量的計算資源。可以透過調整 step 參數來加速,一次剔除多個因子,而非一次只剔除一個。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文
