[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


<<:  [DAY09] 部署用 Designer 做好的 Pipeline 到 Batch

>>:  Day 24 | Service

04

蒙特兰在过去曾经讲过,在别人藐视的事中获得成功,是一件了不起的事,因为它证明不但战胜了自己,也战胜了...

Day4 如何安装Git的环境

大家好我是乌木白,今日要和大家分享如何安装Git的环境! 如何安装Git的环境 安装在 Windo...

18. 订OKRs新手常见错误

前言 这篇跟工程师其实没那麽有关,适合给新手leader定OKRs的时候看看。 演讲总结 今天要讲...

Day 13 Self-attention(七) Positional Encoding、self-attention和其他model的比较

Positional Encoding 如果依照前面讲到的,self-attention只有vect...

JS AJAX基础实作(4) DAY29

昨天我们已经将 gotop按钮实做出来 但有时候我们不想要它一直出现 而是使用者滚轮滑到下面 它才会...