iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
AI & Data

從零開始的套牢生活 - AI股票預測系統系列 第 19

[Day 19] 訓練集、驗證集、測試集

一、為什麼要拆分成三個資料集?

我們用一個比喻來說明3種資料集之間的關係:

  • 訓練集相當於上課學的知識。
  • 驗證集相當於段考、模擬考,用來對你的學習方法進行驗證、糾正。
  • 測試集相當於學測,用來評估最終的學習效果。

而回測的學習方法,指的就是那些指標會用到的各種參數,
以SMA方法為例:快線是用5日線就好,還是10日線的效果比較好?

二、如何拆分?

如同[Day 11] 來自未來的資料 - 數據泄露(Data leakage)提到的,
最容易犯的錯誤就是把資料打散重組,像股市這種序列資料是不能這樣幹的,
在這部分我們只需要用最基本的方法,照順序拆分就可以了。

train_df = load_stock(stock_index, start_year=2012, end_year=2015)
valid_df = load_stock(stock_index, start_year=2016, end_year=2019)

三、如果訓練集和驗證集資料差太多?

下面的結果為「只買不賣」策略的投資成果,
可以看到訓練報酬率和驗證報酬率差異非常大,
因此我們可以判斷該策略的穩定性並不好。

當我們選擇策略的時候,穩定性也必須在考慮範圍內,
是要選擇高報酬但是穩定性差的策略?
或是選擇低報酬但是每年固定營利的策略?
https://ithelp.ithome.com.tw/upload/images/20210924/201415869tP20SlcOm.png


上一篇
[Day 18] 資料整理
下一篇
[Day 20] 回測與報表
系列文
從零開始的套牢生活 - AI股票預測系統30

尚未有邦友留言

立即登入留言