资源技术动态试图用机器学习进行市场预测会发生什么

试图用机器学习进行市场预测会发生什么

2019-12-05 | |  64 |   0

原标题:试图用机器学习进行市场预测会发生什么

来源:AI研习社        链接:https://www.yanxishe.com/TextTranslation/2282


当你顺利运行你的第一个基础回归或者分类模型时,可能会产生一个想法:大量的时间序列数据,就像神秘的宝藏一样,说不定就让你财富自由了呢?心动吗?你能用机器学习来预测市场行情吗?

1575554467268604.png


至少我尝试了,下面我将分享一下这个过程。


网上有很多小教程适合我们学习。他们会展示如何提取股市历史数据,可能是计算一些指标,然后用回归算法试图预测第二天的值。也或者他们使用一个分类器来预测股票是涨还是跌,而不是预测数值。


我从两个想法着手,首先,我想要达到大规模。理论上,在一些股票、货币和金融指标之间可能存在肉眼难以观察到的关系。那就设计出一个可能有找出这些关系的能力的机器学习算法。


第二, 我没有选择哪支股票来预测,而是训练所有的模型来看看哪些股票表现的最好。想法是一些公司的股票可能比其他公司更容易预测,所以我需要找到它们。


我下载了标准普尔指数500中的大多数股票的历史数据,一堆货币价值的历史和几十个金融指标,以此为开始。一个 Python 脚本负责将他们转换成一致的格式,填充缺失值,丢弃一些时间序列数据,至少不要追溯到2000年代初期的数据。总而言之,当清除了杂质之后,我得到了超过一千栏的Pandas 表格,其中包含了18年的数据。


一旦做完这些,我就用 TA-lib 库来计算窗口为5、10和30天的时间序列的一系列指标。我没有金融背景,不知道哪些指标有用,所以我采取的方法是加入所有的指标然后让模型去筛选。这使得数据列数爆炸。当数据集准备好,可以训练模型的时候已经超过 32000 列。


我的算法选择了 XGBoost, 因为它的整体表现好,能够很容易的鉴别出模型用哪些特征来预测。我将其设置为遍历数据集中的所有股票,为每个股票训练两个模型。第一个是分类器,预测第二天股票的涨跌。第二个是回归模型,预测第二天的收盘价。


对于每个模型,我用 95% 的数据训练,用剩余的数据验证测试,模拟未见的股票数据。剩余的 5% 大约相当于 3 个月的交易数据量。任何机器学习模型都能为训练它用的数据给出漂亮的预测,而诀窍是使它更具泛化性,能在未公开的数据上表现良好。


进行验证时, 开始进行 1000美元的模拟投资。如果预测股票会涨,买进,否则卖出。我并没有考虑交易的成本因为我想看除去这个之外的结果会是怎样。


运行Jetson TX2我花了 一个月的时间。

结果呢?


不出所料,对于大多数的股票来说效果很差 :准确度还不如抛硬币。尽管有一意外些表现,在测试集上表现良好。我的模拟资金在 3 到 6 个月增长了 2 倍或者 3 倍,一对股票在这段时间获得 20 倍的利润。吓的我心脏病要犯了。

记住,这是算法未曾见过的数据 — 是训练数据集以外保留的最后 5%。

1575554407732895.png

上图是股票收盘价,下图是现金。接近 0 的地方是买入。


我找到它了吗?是否有一些股票与市场指标有隐含关系,这样就能被预测了吗?如果是这样,我可以通过价格波动赚钱。


在我写下代码并运行它的时候,距离我下载海量数据集已经过去几个月了。我把最新的交易数据更新进来,决定看看模型怎么处理在验证时表现很好的时间段 — 如果我在最近几个月跟他们进行实况交易,他们也能表现得一样好吗?我蛮期待的。 


结果令人迷惑不解。模型在起初训练和验证表现很好,在后面的数据上表现过得去,但是仍可能会失败并输掉底裤。模拟的半数时间是赚钱的,半数时间会破产。有时,它没比掷硬币好几个百分点,其他时候它表现得很糟糕。发生了什么?它曾经看起来那么有希望。


学习到的经验

最后我恍然大悟。


如果股票价格是随机波动的,那么结果围绕 50% 正是所期望的。 通过让我的程序在数百个股票中搜寻,找到表现良好的一个,它偶然会碰到一些股票,刚好在验证时间范围内预测良好。 然而,仅在几周或几个月之后,在随机游走的另一部分中,它失败了。


没啥用,这个模型只是偶然地幸运了几次,我让 cherry 挑了几个实例,发现都是不可复验的。


可以理解,机器学习不是万能的, 它无法预测随机序列,因此在训练模型时必须非常小心偏差,仔细的验证至关重要。  

我不会盲目的相信机器学习,如果你只是想试试,训练用的随机时间序列可以少得多。 只需要模拟,仔细验证,并注意那些偏差。  

-------------------------------------------------------------------------------------------

发起:唐里 校对:鸢尾 审核:唐里

参与翻译(1人):Sarah@2019

英文原文:What Happened When I Tried Market Prediction With Machine Learning

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:知识图谱系列-2-知识图谱发展历程及其分类

下一篇:宇宙的奥妙,我用 AI 模型来探索

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...