机器学习能预测加密货币价格吗?以片断插值法为例解析
发布:中币网 时间:2021-04-02 14:01:00 加入收藏 打赏
预测加密货币价格是一个可以解决的问题,但不是针对所有市场条件。
原文标题:《硬核丨机器学习能否预测加密货币的价格?》
撰文:Michel Kana
翻译:Jeremy
这份实用指南提供了你预测加密货币价格飞速上涨所需的基础知识。
十五年前,我开始探索数字货币的世界,并为一个只使用短信的点对点移动货币平台做了原型。
最近,我的一位合作者问我,人工智能是否可以预测加密货币的价格。她对区块链的炒作很好奇。
经过研究,我发现预测加密货币价格是一个可以解决的问题,但绝对不是针对所有市场条件。
加密资产的典型预测模型将利用时间序列预测(如 ARIMA、Facebook Prophet)、机器学习(如随机森林算法、线性回归)或深度学习方法(如 LSTM)。
在本文中,我研究了在预测给定日期的 Litecoin 平均价格时,片断插值的表现如何。
数据
我们将关注 2013 年 4 月至 2021 年 2 月期间 Litecoin 的历史价格。这些数据取自 coinmarketcap,并且是可以免费使用的。我将数据分为 80% 的训练数据集和 20% 的测试数据集。后者用于评估我们预测收盘价的准确性。
加密货币 Litecoin 的价格历史 (Source: Kaggle)
短暂的探索性数据分析显示,平均收盘价在年初和年末是最高的。10 月份最低。
多项式回归
你可能听说过多项式回归,这可以说是创建一个阶数为 d 的基础来近似一个非线性函数(在我们的例子中,加密货币价格波动)的最简单例子。
我对 Litecoin 的历史价格进行了简单的多项式回归,使用 5、25 和 80 的阶数。在每种情况下,R2 值将提供一些关于模型在测试数据集上的拟合度好坏的信息。
从下面的蓝线与训练数据的拟合度来看,我们可以观察到随着多项式阶数的增加,曲线越来越陡峭。这是由于模型复杂性增加,因为高阶多项式试图追逐训练集中的每一个单一数据点。
第 0 天代表 2013 年 4 月 30 日,第 2800 天代表 2021 年 2 月 28 日。
特别是在有离群值的区域(图的中间部分),高阶多项式往往会向这些离群值的方向发展。因此,80 阶多项式的模型具有最高的方差。
它在训练数据上的偏差也是最低的,这体现在最高的 R2 值上,相比之下,低阶多项式的 R2 更低,意味着更高的偏差但更低的方差。低阶多项式对训练数据的敏感性较低。
分片插值
我发现一个更灵活的方法是使用片断多项式来预测加密货币价格。
分片插值用低阶多项式拟合大量的数据点。由于我们只使用低阶多项式,我们消除了过度的振荡和非收敛性。
给定一组数据点,分片插值的工作原理是在每一部分数据中使用不同的多项式。
特别是,我们使用连接的分片多项式,也称为样条。
样条的一个例子是下面的截断线性函数。它在 4 的左边是平的,称为函数的结。
给定几个结点,我们可以将多个线性基函数组合起来,并将其拟合到非线性数据中。
为了检测加密货币价格中存在的高度曲线关系,我使用了一个截断的三次函数,也叫三次样条。
使用三次样条,我们将数据分割成块,并对每个块拟合一个三次样条。每个样条函数在结点处连接到下一个函数。
三次样条是加密货币价格变化的一个非常好的选择,因为连接是平滑的。三次样条的斜率和它们的第一和第二导数都是匹配的。三次样条是 3 阶的多项式函数,它仍然足够小,以避免差异性。
三次 B-样条是三次样条的一个更容易的变体,用于高效计算,因为最多有 5 个基函数参与贡献插值。下面我们可以看到三次 B-样条在 Litecoin 价格上的表现,将结点放在四分位数上之后。
通过手动选择结点,即在我们有一堆数据点的情况下,与根据四分位数放置结点时的值相比,我们在测试数据集上实现了更好的 R2。
在边界附近的三次样条可能表现得很奇怪,你能够在上面的红色图中注意到。所谓的自然三次样条通过在每个极限处将一个三次多项式改为线性来强制要求函数在极限结点之外是线性的。
自然三次样条需要选择一个自由度。对于 Litecoin 的价格,我通过交叉验证找到了最佳自由度:挑选了合适的 174 个结点的量子作为预测器的日期。结果与三次 B-样条相比,边缘的差异性更小,但测试数据集的 R2 略差。
最后,我实现了平滑样条,在惩罚价格变化的同时,使均方误差最小化。
平滑样条似乎是 Litecoin 价格最合适的分片插值。该模型在测试数据集上实现了迄今为止获得的最佳 R2 值。
三次样条模型令人兴奋的部分是如何超越用于训练模型的数据范围进行推断。
根据以预测和时间序列工作而闻名的著名统计学家 Rob Jhyndman 的说法,三次平滑样条模型在预测方面可以作为与 ARIMA 模型等效的模型,但其参数空间受到限制。Rob 声称,样条模型提供了一个平滑的历史趋势以及线性预测函数。
我邀请你进一步试验这个想法。我的计算机代码可以在网上以 Jupyter Python/R Notebook 形式查看。
本文中使用的 Google Colab Notebook
数字货币和加密货币,如 Litecoin,是现代全球经济中最具争议和最复杂的技术创新。本文旨在使用一种不太流行的方法:三次样条来预测 Litecoin 价格的变化。
来源:
来源:中币网 https://www.zhongbi.net/news/blocknews/282065.html 声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。