[Day 30] Bug修好了 & 30天感想

经过了一天的奋斗,总算是把昨天做爆的LSTM修好了,
失败的可能原因可能为

  • 资料未经过Normalization
  • 训练周期过短
  • 预测时间过长
  • 2020年由於疫情股价过於异常

前两项算是程序上的Bug,
「2020股价」处理也很简单,要嘛整段拿掉,要嘛把整个训练段拉长即可,
「预测时间过长」的原因比较有趣,让我们来看看原作者做出来的结果
https://ithelp.ithome.com.tw/upload/images/20211005/20141586GilgV61uUU.png

而这是我用台积电(2330)套用作者程序码做出来的结果
https://ithelp.ithome.com.tw/upload/images/20211005/20141586WiPiP0RWtW.png

可以看出来预测的结果都不错,起码该有的转折都有学到,然而当我继续做下去後的结果变成这样
https://ithelp.ithome.com.tw/upload/images/20211005/20141586dud5d7iCPl.png

看起来很棒对吧,别着急,这是Train的部分,让我们来用它来预测未来
https://ithelp.ithome.com.tw/upload/images/20211005/20141586Bl5vRWv8nf.png

马上就变成不知道在预测甚麽鬼东西的情况

经过了长时间的排查我终於发现问题了,这是作者的Train-Test分法

number_train = round(0.9 * result.shape[0]) # 取 result 的前90% instance做为训练资料

而这部分是我的

train_df = df[(df.index > "2014-01-01") & (df.index < "2018-12-31")]
test_df = df[(df.index > "2019-01-01") & (df.index < "2020-12-31")]

没错,两者的差距只是预测未来的区间大小,
通常3个月後的股票价格就会很飘了,之後的部分就和瞎猜差不多了。

结尾

经过了说长不长说短不短的一个月,我也勉强算是脱离股票小白了吧?
原本以为区区股票预测应该很简单吧,毕竟求学路上也听过很多人靠程序预测股票发财的,
但现在看来应该大部分都是在唬烂(笑
股价预测对现今ML和DL发展来说还是太早了,
如果是选股可能会好点,毕竟基本面和股价的关系应该会比较明显
但现在30天也结束了,也许明年的铁人可以试看看?

前面30天我也做爆了不少天数,现在我知道为什麽那麽多人喜欢写基础教学文了,
毕竟没有程序跑不出来的风险(笑
然而我的观念是要做就要学到东西,无关对错,只是我想试新东西罢了
之後还有10天的时间我应该会把之前做爆的部分改成其他东西,
太乱的部分也会做整理,当然以上是建立在IT邦不会把编辑锁起来的状况,
毕竟我是第一次参赛,如果真的锁起来的话就...再说吧(笑


<<:  Swift纯Code之旅 Day25. 「各个TableViewHeader下的Cell显示(2)」

>>:  Day 20 - React.memo

CNN
杂谈    

Python - 在 Windows 10 上使用 PySpark 连接 Mysql 资料库参考笔记

Python - 在 Windows 10 上使用 PySpark 连接 Mysql 资料库参考笔记...

JS ES6 let 与 const DAY72

这里先附上之前所介绍的 JS ES6 let 与 const 的基本介绍 https://ithel...

Vue.js 从零开始:v-for

v-for 列表渲染 透过v-for指令,将资料里的阵列或是物件重复渲染在画面上。 遍历物件资料: ...

【Day6】Props和States之间到底是什麽关系!? 怎麽传怎麽用咧..? o_O ||

这篇要来谈React的states跟Props States跟Props可以看作是React里面的A...

Day29-影像侵蚀

上章我们在进行图像轮廓增强的处理时,有用到影像膨胀函数cv2.dilate,但那时候只是稍微带过,读...