首頁?學習  »   正文

機器學習技術如何應用于股票價格預測?(下)

上一篇文章中,我們一起了解了用“移動平均”、“線性回歸”預測股價的方法,今天這篇文章中,我們繼續講解XGBoost、LSTM的方法預測股價。

前文回顧:用于股票價格預測的機器學習技術(上)

極端的梯度增加(XGBoost)

梯度增強是以迭代的方式將弱學習者轉化為強學習者的過程。XGBoost這個名稱指的是推動增強樹算法的計算資源極限的工程目標。自2014年推出以來,XGBoost已被證明是一種非常強大的機器學習技術,通常是許多機器學習競賽中的首選算法。

我們將在訓練集上訓練XGBoost模型,使用驗證集調優其超參數,最后將XGBoost模型應用于測試集并報告結果。可以使用的明顯特征是最近N天的調整收盤價,以及最近N天的成交量。除了這些特性,我們還可以進行一些特性工程。我們將構建的附加功能包括:

  • 高與低之間的差異為每一天的最后N天
  • 最近N天每天開盤和收盤的差異

在構建這個模型的過程中,我學到了一個有趣的經驗,那就是特征縮放對于模型的正常工作非常重要。我的第一個模型根本沒有實現任何縮放,下面的圖顯示了對驗證集的預測。這里所發生的是,該模型訓練的調整收盤價在89到125之間,因此該模型只能在這個范圍內輸出預測。當模型試圖預測驗證集并且發現值超出這個范圍時,它不能很好地概括。

機器學習技術如何應用于股票價格預測?(下)

如果特征和目標縮放不正確,預測是非常不準確的。

我試著下一個訓練集規模意味著0和方差1,我應用同樣的變換驗證集。但很明顯,這也不會起作用,因為這里我們計算出的平均值和方差來轉換驗證集。因為從驗證集值遠遠大于從訓練集,后擴展仍將是更大的值。

結果是,預測仍然像上面那樣,只是y軸上的值現在縮放了。

最后,我將火車集合縮放為均值0和方差1,然后用這個來訓練模型。隨后,當我對驗證集進行預測時,對于每個樣本的每個特征組,我將把它們縮放為均值0和方差1。例如,如果我們對第T天進行預測,我將取最近N天(從第T-N天到第T-1天)的調整后收盤價,并將其縮放為均值0和方差1。對我們上面構建的其他特性重復同樣的步驟。然后我們使用這些縮放的特征來進行預測。預測值也將被縮放,我們使用相應的平均值和方差對其進行反向變換。我發現這種擴展方式提供了最好的性能,正如我們將在下面看到的。

下面是我們用來訓練模型和進行預測的代碼。

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

下圖顯示了驗證集上實際值和預測值之間的RMSE,對于不同的N值,我們將使用N=3,因為它給出了最低的RMSE。

機器學習技術如何應用于股票價格預測?(下)

使用RMSE和MAPE調整N。

超參數和調優前后的性能如下所示。

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

使用RMSE和MAPE調優XGBoost超參數。

下圖顯示了使用XGBoost方法進行的預測。

機器學習技術如何應用于股票價格預測?(下)

使用XGBoost方法進行預測。

長期短期記憶(LSTM)

LSTM是一種深度學習技術,它是為了解決長序列中梯度消失問題而發展起來的。LSTM有三個門:更新門、遺忘門和輸出門。update和forget gates確定是否更新了內存單元的每個元素。輸出門決定作為下一層的激活而輸出的信息量。

下面介紹我們將使用的LSTM體系結構。我們將使用兩層LSTM模塊和中間的dropout層來避免過擬合。

機器學習技術如何應用于股票價格預測?(下)

LSTM網絡架構。

下面是我們用來訓練模型和做預測的代碼。

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

機器學習技術如何應用于股票價格預測?(下)

我們將使用與XGBoost中相同的方法來擴展數據集。在對驗證集進行調優之前和之后,LSTM網絡的超參數和性能如下所示。

機器學習技術如何應用于股票價格預測?(下)

使用RMSE和MAPE調優LSTM超參數。

下圖顯示了使用LSTM的預測。

機器學習技術如何應用于股票價格預測?(下)

使用LSTM方法進行預測。

調查結果及未來工作

下面我們將在同一圖表中繪制我們之前探索的所有方法的預測。很明顯,使用線性級數的預測提供了最差的性能。除此之外,從視覺上很難判斷哪種方法提供了最好的預測。

機器學習技術如何應用于股票價格預測?(下)

下面是我們探索的各種方法的RMSE和MAPE的并列比較。我們看到最后一個值方法給出了最低的RMSE和MAPE,其次是XGBoost,然后是LSTM。有趣的是,簡單的last value方法優于所有其他更復雜的方法,但這可能是因為我們的預測范圍只有1。對于較長的預測周期,我相信其他方法可以比上一種方法更好地捕捉趨勢和季節性。

機器學習技術如何應用于股票價格預測?(下)

比較各種方法使用RMSE和MAPE。

作為未來的工作,探索更長期的預測范圍將是有趣的,例如1個月或1年。探索其他預測技術,如自回歸綜合移動平均(ARIMA)和三指數平滑(即霍爾特-溫特斯方法)等其他預測技術,并了解它們與上述機器學習方法的比較,也會很有意思。

歡迎關注ATYUN官方公眾號,商務合作及內容投稿請聯系郵箱:[email protected]

發表評論