群英会今天开奖结果ǰλã开奖结果 > 群英会今天开奖结果 >

香港正版挂牌严谨解决5种机器学习算法在预测股

ʱ䣺 2019-10-20

  机器学习有很多应用,其中之一就是预测时间序列。一个最有趣(或者可能是最赚钱)的时间序列是股票价格。

  今天,我们用更严谨的学术态度来解决这个问题。例如:移动平均、线性回归、KNN、Auto ARIMA和Prophet的预测范围为1年,而LSTM的预测范围为1天。在一些文章有人说LSTM比我们目前看到的任何算法都要出色。但很明显,我们并不是comparing apples to apples here。

  我们的目标是使用前N天的数据(即预测范围= 1)预测Vanguard Total Stock Market ETF(VTI)的每日调整收盘价 。我们将使用VTI从2015年11月25日至2018年11月23日三年的历史价格。可以从雅虎财经下载(),数据集如下:

  将数据集分为60%训练集、20%验证集和20%测试集。使用训练集对模型进行训练,使用验证集对模型超参数进行调整,最后使用测试集对模型的性能进行测试。

  为了评估我们的方法的有效性,我们将使用均方根误差(RMSE)和平均绝对百分比误差(MAPE)进行度量。对于这两个指标,值越低,预测效果越好。

  在Last Value方法中,我们将简单地将预测设置为最后一个观测值。这意味着我们将当前的复权收盘价设置为前一天的复权收盘价。这是最具成本效益的预测模型,通常用作比较更复杂模型的基准。这里不需要调优超参数。

  下图显示了使用Last Value方法的预测。如果你仔细观察,你会发现每一天的预测(红叉)仅仅是前一天的值(绿叉)。

  在移动平均法中,预测值将是前N个值的平均值。这意味着我们将当前复权收盘价设置为前N天复权收盘价的平均值。需要调整超参数N。

  下图展示了验证集上实际值和预测值之间的RMSE,对于不同的N值,我们将使用N=2,因为它给出了最低的RMSE。

  线性回归是对一个因变量和一个或多个自变量之间的关系进行建模的一种线性方法。我们在这里使用线性回归的方法是将线性回归模型与之前的N个值进行拟合,并用这个模型预测当前的值。下图是N=5的一个例子。实际复权收盘价显示为深蓝色的十字,我们想要预测第6天的值(黄色方块)。我们将通过前5个实际值拟合一条线性回归线(浅蓝色线天的预测(浅蓝色圆)。

  下图显示了验证集的实际值和预测值之间的RMSE,对于N的不同值,我们将使用N=5,因为它给出了最低的RMSE。

  下图显示了线性回归方法的预测结果。可以观察到,该方法不能很好地捕获方向的变化(即下降到上升趋势,反之亦然)。

  XGBoost是以迭代的方式将弱学习者转化为强学习者的过程。自2014年推出以来,XGBoost已被证明是一种非常强大的机器学习算法,通常是许多机器学习竞赛中的首选算法。

  我们将在训练集中训练XGBoost模型,使用验证集优化其超参数,最后在测试集中应用XGBoost模型并报告结果。使用的显著特征是过去N天的复权收盘价,以及过去N天的成交量。除了这些特征,我们还可以做一些特征工程。我们将构建的其他功能包括:

  在构建这个模型的过程中,学到了一个有趣的事情,那就是特征缩放对于模型的正常工作是非常重要的。我们的第一个模型根本没有实现任何伸缩,下面的图显示了对验证集的预测。模型训练的是89到125之间的复权收盘价,因此模型只能输出这个范围内的预测。当模型试图预测验证集并且它看到超出了这个范围时,它不能很好地拓展使用。

  接下来尝试将训练集规模缩放为均值0和方差1,并且在验证集上应用了相同的变换。但显然这不会起作用,因为在这里我们使用从训练集计算的均值和方差来转换验证集。由于来自验证集的值远大于来自列车集的值,因此在缩放后,值仍将更大。结果是预测仍然如上所述,只是缩放了y轴上的值。

  最后,将序列集合的均值缩放为0,方差为1,然后用这个来训练模型。随后,当对验证集进行预测时,对每个样本的每个特征组进行缩放,使其均值为0,方差为1。例如,如果我们对第T天进行预测,我将取最近N天(T-N到T-1)的复权收盘价,并将其缩放为均值为0,方差为1。成交量特征也是一样的,我取前N天的成交量,将其缩放为均值为0,方差为1。使用与其他特征相同的操作。香港正版挂牌!然后我们使用这些缩放的特征来做预测。预测值也会被缩放,我们用它们对应的均值和方差进行逆变换。发现这种扩展方式提供了最好的性能,如下所示。

  下图显示了验证集上实际值和预测值之间的RMSE,对于不同的N值,我们将使用N=3,因为它给出了最低的RMSE。

  LSTM是一种深度学习模型,用于解决长序列中的梯度消失问题。LSTM有三个门:更新门、遗忘门和输出门。更新和忘记门决定是否更新单元的每个元素。输出门决定了作为下一层的激活而输出的信息量。

  下面我们将使用LSTM结构。使用两层LSTM模块并在其间设置一个drop-layer以避免过度拟合。

  我们将使用与XGBoost中相同的方法来缩放数据集。验证集调优前后LSTM网络的超参数和性能如下所示:

  下面,我们在同一张图绘制上面使用的所有方法。很明显,使用线性方法的预测最差。除此之外,从视觉上很难判断哪种方法提供了最好的预测。

  下面是我们所探讨的各种方法的RMSE和MAPE的并列比较。我们看到last value给出了最低的RMSE和MAPE,然后是XGBoost,然后是LSTM。有趣的是,简单的last value方法优于所有其他更复杂的方法,但这很可能是因为我们的预测范围只有1。对于较长的预测范围,我们认为其他方法比last value更能捕捉趋势和季节性。广东中烟 “四个深化”部署五年巡察工作王中王Xh58手机报码宜居太平再添高端人居新作 阳光城