黄金价格预测:如何将时间序列数据处理成有监督的学习数据,时序

发表时间:2020-09-14

背景概述

今天介绍下如何将时序数据处理成监督学习可用的训练样本。比较典型的场景是黄金的原始数据,一般黄金走势数据是由两个字段组成,分别是时间字段和价格字段。

屏幕快照 2020-09-08 上午10.27.39.png

走势图如下:

屏幕快照 2020-09-08 上午10.25.05.png

顺便安利一个黄金数据的下载网址:

https://fred.stlouisfed.org/series/GOLDAMGBD228NLBM

数据滑动窗口原理

那这种时序数据如何转换成包含特征和目标列的监督学习训练样本呢?今天介绍一个叫“数据滑动窗口”的方法。在数据滑动窗口这个方法中,把当前日期叫做t,前一天是t-1,后一天用t+1表示。也就是说假设要预测t+1天的黄金价格的走势,可以把t、t-1、t-2、t-3...这些日期的数据作为特征,t+1天的数据作为目标列去建模。

举个例子,假设要构建2个特征,1个目标列这样的训练样本,使用如下数据集。

屏幕快照 2020-09-08 上午10.27.39.png

训练集可以构建成如下模式,最后一列是目标列:

1125,1121,120.85

1121,1120.85,1122.3

1120.85,1122.3,1107.75

........

代码示例

基于上述网址下载的数据,我用DataFrame的shift函数实现了一个数据处理的示例,原始数据:

屏幕快照 2020-09-08 上午10.27.39.png

处理后的数据:

屏幕快照 2020-09-08 上午10.40.41.png

from pandas import DataFrame

df = DataFrame()

getTex=open('goldPrice.csv')

rawData=[]

for line in getTex.readlines():

index=line.strip().split(',')

if index[1]=='.':

continue   #filter dirty data

rawData.append(index[1])

df['t-1'] = rawData

df['t'] = df['t-1'].shift(-1)

df['t+1'] = df['t-1'].shift(-2)

print(df)

接下来做预测就很简单了,可以用xgboost这样的回归算法去基于过去两天的数据预测接下来一天的价格,最终价格可以通过MAE这样的回归算法评估方法去评估。

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free