LSTM 模型的財務數據的縮放(數據準備)和特徵選擇
概述
我正在訓練一個指數,例如 FTSE100,其中我有 8 年的過去數據(每天)。我也有它的成分列表。
對於每隻股票,我有以下特徵:
Date
,Open
,Close
,High
,Low
,Volume Traded
縮放
我決定預測是否買入/賣出該指數。我決定優化百分比變化,而不是使用收盤價,因此我創建了一個
percent_change
不受 1 限制的新變數。這是否使它成為一個糟糕的指標,我應該改用收盤價嗎?為什麼我沒有使用接近值?
我不確定如何擴展它以正確執行它。目前,我的模型輸入是 10 個先前的百分比變化,例如
[t0, t1, ... , t10]
預測day 的百分比變化在[t11]
哪裡。ti``i
如果我要使用縮放,我會不斷遇到新的價值觀。此外,如果明天創下歷史新高,我將需要重新調整數據並重新訓練模型。
此外,我考慮用 表示的實際指數替換百分比變化
pi
。我考慮過只縮放移動視窗周期[p0, p1, ... , p10]
,但是,預測變數[p11]
可能超出 1 的範圍。問題:LSTM 是否容易處理 > 1 的輸入和輸出?
功能選擇
請告訴我要使用哪個自變數:
percent change
或close price
(以及我應該如何縮放它)。我已經在 2500 次觀察(500 個時期)上訓練了模型,在測試集上給了我 53% 的準確率(這很好嗎?)。我還在 600 個測試日內獲得了 30% 的回報。目前我使用的唯一功能是過去 10 天的變化率。我的模型學習了哪些特徵?
我不確定。它是否學習了移動平均線、線性梯度/近似波動等?或者我應該將它們包含在我的模型中
[t0, t1, ... , t10, MA10days, MA3days, Gradient3day, Volatility3day]
嗎?訓練模型
既然我有 100 個成分,那麼在所有這些股票上執行/預訓練相同的模型是否有意義?所有股票都與指數高度相關,我考慮為每個股票計算 MA、Gradients 等,
Close, Open, High, Low
然後執行 PCA 以僅選擇幾個組件。如果你做到了這一點
我知道這是一個很長的問題,我感謝您提供的任何幫助,我將獎勵 100 分給我最好的答案!謝謝
如果我要使用縮放,我會不斷遇到新的價值觀。此外,如果明天創下歷史新高,我將需要重新調整數據並重新訓練模型。
您實際上面臨兩個潛在問題:
- 這與其說是一個縮放問題,不如說是一個**平穩性問題。一個簡單的解決方案是採用收盤價的一階差異,而不是原始收盤價。
- 更微不足道的問題是縮放步驟的穩健性。有多種方法可以應對這種情況。在您使用的最小-最大縮放的情況下,解決此問題的一種可能方法是winsorization,您可以在其中人為地審查所有功能 $ >1 $ 到 1. 如果你不想審查你的數據,你可以使用z-scores。在不知道確切的訓練設置的情況下,您可能正在縮放數據以提高 LSTM 求解器的收斂性,除非您的求解器對 z 評分或審查具有特定的敏感性,否則這兩種方法實際上都是可行的。(這種敏感性可能來自元學習等更高級的技巧,例如學習 LSTM 以優化 LSTM。)
我的模型學習了哪些特徵?
根據您使用的軟體包,它應該有一個結果輸出或結果對象,它應該為您提供特徵分數或特徵重要性。然而,神經網路通常用於組合特徵,因此答案應該不是選擇特徵而是尋找新特徵。
它是否學習了移動平均線、線性梯度/近似波動等?
這些新特徵通常沒有簡單、直覺的解釋,因此試圖將學習到的特徵解釋為諸如移動平均線之類的正常量是毫無意義的。這是神經網路的一個共同弱點。
既然我有 100 個成分,那麼在所有這些股票上執行/預訓練相同的模型是否有意義?
這取決於您要建模的內容。如果有理由相信你試圖預測的任何東西都是從所有成分的相同基本事實分佈中得出的,那麼當然,值得一試。