共计 3608 个字符,预计需要花费 10 分钟才能阅读完成。
机器学习是未能齐全解决的一个畛域是股票预测,因为它可能是最有利可图的钻研畛域之一所以在这方面的钻研依然在持续。投资者心愿可能释怀地把钱投在体现优异的公司,随着投资的减少,公司的倒退也将会突飞猛进,投资的收益也会增长。
在过来的钻研中,呈现了而很多的形式,但这些形式和办法并不是很胜利,所以本文将这个畛域的钻研扩大到 GANs。看看 GANs 这个畛域是否可能进行预测。
尽管 kaggle 中的预测 JPX 市场预测是一个十分好的数据集,然而他的数据集须要在 kaggle 上进行预测和提交,所以这里应用应用他的子集并且指定针对于本文测试的指标进行测试,这样能够显示出咱们这次钻研的真正体现。
在真正开始之前首先将为所有模型实现雷同的预处理办法和评分指标。而后从一个预期性能较差的线性回归基线模型开始并将此作为最小基线。而后尝试着优化 XGBoost 模型和 CAT boost 模型,将这两个模型叠加在一起(复现较量中排名较高的模型),指标是实现比最佳模型更高的模型。在此之后,将摸索 GANs 解决方案,看看 GANs 能达到什么样的后果。
数据集将被拆分为过来的训练数据和最近的测试数据。其中所有提取和工程特色放弃这个拆分,这将确保不会呈现数据泄露的问题。咱们将应用夏普比率 (Sharpe Ratio),这简直是在人力资源管理和人力投资策略评分中广泛应用的评分指标。夏普比率是由诺贝尔奖得主威廉·f·夏普(William F. Sharpe) 提出的,用于帮忙投资者理解投资回报与危险的比例。该比率是每单位稳定率或总危险的无风险率以外的均匀收益。波动性是对资产或投资组合价格稳定的掂量。夏普比率依据投资者承当的超额危险,调整投资组合的过来体现或将来预期体现。与回报率较低的相似投资组合或基金相比,较高的夏普比率是坏事。然而夏普比率有几个弱点,包含投资回报是正态分布的假如,这里就不进行具体解释了。
数据预处理与特色工程
在金融技术剖析畛域,技术指标是指基于历史价格、交易量或证券或合同未平仓量的数学计算或模式信号,通过谐和指标能够预测金融市场方向。对于数据科学家来说这被称为特色工程,本我的项目采纳某领域专家提出的顶级技术指标作为咱们的特色:7 天和 21 天的挪动平均线、指数挪动平均线、对数动量、Bollinger bands 和 MACD 等等。傅里叶变换是一种工夫序列数据的解决罕用办法,它能够克制数据中的统计异样,并已被证实容许 gru(在咱们的 GANs 模型中应用)学习更强壮的模式。
咱们的指标预测是股票的收盘价,下面的图中咱们很难可能了解过来的数据可能很好的预测将来的数据,但当咱们用自相干进行统计分析时(自相干是指同一变量在两个间断工夫距离之间的相干水平。它掂量一个变量值的滞后版本与它在工夫序列中的原始版本之间的关系),咱们应用滞后参数 100,失去以下强正相干,这意味着咱们的预测模型无望获得良好的后果:
在所有这些预处理之后,咱们就能够训练不同的模型并失去咱们的后果了。
线性回归
线性回归咱们的验证 Sharpe 为 0.44,它靠近 Numerai 文章可能实现的指标 0.49。对于所有这些模型,咱们将数据分为训练和测试集,并在特定日应用股票市场的技术指标,以确定第二天股票市场的收盘价。
超参数调整算法
咱们抉择应用一种定制的二进制搜索算法,它能够疾速搜寻可能的超参数值空间。联合手工模型调优的常识,咱们感觉比使用暴力搜寻所有超参数组合 (比方典型的网格搜寻) 取得更好的后果。这让咱们可能对设计进行改良,并在测试中疾速转向。
XGBoost
对于 XGBoost,咱们发现向模型增加超参数能够获得最佳性能。XGBoost 的 sharp 得分只有 0.71,但优化超参数后 XGBoost 模型的 sharp 得分为 0.78。
CAT Boost
对于 CAT Boost 模型,咱们看到 CAT Boost 的性能比参数化 CAT Boost 模型更好,并且 sharpe 得分最高为 0.90,而 Numerai 文章中的数值为 0.87。
重叠模型
将超参数化的 XGBoost 模型和一般的 CAT boost 叠加在一起能够获得最佳后果,咱们失去了一个分数为 0.946,靠近文章中的 0.934。这个模型的工作原理是取两个模型之间的两个预测的平均值。
GANs
1、什么是 GAN
生成反抗网络,简称 GANs,是一种应用深度学习办法进行生成建模的办法,这是一种将生成新数据的非监督问题转化为监督问题的办法,在监督问题中,模型依据其后果的可信度评分。gan 零碎由鉴别器和生成器两个子模块组成。鉴别器在其学习过程中被输出两类图像,实在的和虚伪的。它的工作是学习辨别两者,而后为生成器提供相干信息,生成更事实的输入。
咱们心愿鉴别器可能很好地实现它的工作但又不能太好,因为如果太好生成器无论学习什么都不能坑骗它,为了实现这一点,咱们必须设计一个具备良好架构的强壮网络。
2、WGAN-GP 的改良
Wasserstein Gan + 梯度惩办或 WGAN-GP 是一种生成的反抗网络,应用 Wasserstein 损失以及梯度惩办来实现 Lipschitz 的连续性[https://arxiv.org/abs/1904.01184]。这两个联合试图解决较以前模型的弱点。
Wasserstein 间隔(Earth Mover 的间隔)是给定度量空间上两个概率分布之间的间隔度量,它能够看作是将一个散布转换为另一个散布所需的最低工作。它到处都是可微的这能够将训练模型到最佳的性能,并且足够稳固以防止训练解体(如果鉴别器饱和并变得太好了,梯度将隐没至零这样将不会再进行收敛,WGAN 在稳固的 GAN 训练方面获得了停顿,但有时依然能够仅产生低质量的样本或无奈收敛),所以减少了梯度惩办,这种损失函数就会将梯度限度在肯定范畴内,防止可能导致的梯度隐没或爆炸梯度。
GP 的引入是对这种剪切办法的代替,这种办法惩办了对于输出的梯度并且能够与所有架构交融,只有进行很少超参数调优就能让训练的后果变得更稳固。
增加 GRU
为了进一步改善的模型,咱们心愿应用相似 LSTM 的形式学习以某种形式捕获学习中的工夫特色。GRU 作为失常卷积的代替能够更简略的设计和实现 LSTM 的大部分收益。GRU 由一个重置门和更新门组成,能够了解为是 LSTM 的简化版本。
WGAN-GP 如何利用在股票预测
咱们应用 WGAN-GP 在下面预处理的数据上进行了训练取得了以下的后果:
1000.00usd =(End Portfolio:5327.83USD,Sharpe:0.819)
1000 迭代后看起来还不错。然而当咱们尝试验证未来的一组齐全看不见的数据时,取得以下后果:
这是否意味着这个模型不可行呢? 不齐全是,起因可能如下。在对通常应用回归或 lstm 的其余相似工作的综述中,有几篇论文将 COVID 期作为数据中的异样因为这是前所未有的,并且应用了一个简略解决方案,即排除认为只是在覆盖问题的异样周期。然而这是一个过于简略的解释,因而我不会采纳这种办法。
其实这里产生的事件是,将来数据对于以后模型来说是无奈预测的,因为它超过了以前见过的任何事物的界线。如果你察看到训练的数据价格从未超过 40USD。也就是说,其实咱们没有对预测的价格进行归一化,所以咱们将数据从 USD 转换为 [-1,1] 之间的缩放。
看看该假如和校对是否产生了更好的后果:
这显然是一个很差的后果,这里将其作为测试失败的报告。
应用 window
我从新查看了外围假如,并意识到训练的形式与测试模型的形式不同。训练下的输出具备肯定的窗口,而进行测试时并没有应用这个历史的 window。所以我批改测试代码增加了这个 window,最终失去以下后果:
能够看到当初的预测趋势时完全正确的,但预测的粒度显著较低。这是因为在确定无效策略时训练有余的后果。从 500 到 5000 次迭代在测试集中产生以下后果:
能够看到在相当长的一段时间内,咱们的模型在齐全看不见的数据上执行得简直完满。模型可能在 2017-07-12 至 2018-02-08(146 天)期间将 1000.00 美元转换为 1181.15 美元,市盈率为 1.52。模型随着工夫的推移会在不同的中央出现分歧,但因为模型能够每个月左右依据新呈现的数据和新趋势进行继续的再训练,甚至时每天晚上都能够收集数据,第二天停业前就能够做好预测。
总结
GANs 网络不仅在图像处理畛域,甚至在金融和股票预测畛域也显示出前景。通过更多的调优和适当格式化预测的工作,这些 GANs 的后果能够与性能良好的回归器进行叠加,从而实现更好、更有弹性的预测。也能够提取整个网络的学习潜在空间,并将其用作回归模型的特色输出。总的来说,这些试验的后果是十分有心愿的,并保障了该应用程序的更简单的改良。
本文没有提供源代码,须要代码的能够问问作者,原文地址:
https://avoid.overfit.cn/post/d746ef7060ce41fb9a822f9768ea42a3
作者:AlphaFitness