学习如何利用时间序列分析来预测未来的货币汇率变化趋势,并利用时间序列来进行预测。
我们希望用一个长短期记忆网络模型LSTM来讨论时间序列预测。但在此之前,我们先给出两种baseline方法,也即传统的SVR和多层神经网络ANN。其中,后者的效果已经非常好了。
数据集是基于1980年1月2日到2017年8月10日之间的汇率数据。数据集显示在印度卢比(INR)兑换1美元的值,总共有13730份记录。
链接:neelabhpant/Deep-Learning-in-Python
1. 读取数据集
读取USD_INR.csv文件,并绘制时序图
#1. 数据准备
df = pd.read_csv('USD_INR.csv')
df['Date'] = pd.to_datetime(df["Date"])
df_idx = df.set_index(["Date"], drop=True) # Data成为索引,而不是列
print(df_idx.head(5))
#顺序重排数据
df_idx = df_idx.sort_index(axis=1, ascending=True)
df_idx = df_idx.iloc[::-1]
#绘制数据的时序图
data = df_idx[['Price']]
data.plot(y='Price')
plt.show()
2. 数据预处理
包括训练、测试集划分,归一化数据。
训练数据是基于1980年1月2日到2009年12月31日之间的数据,大约有11000个训练数据点。测试数据集是在2010年1月1日到2017年8月10日之间,大约有2700个点。
#2. 数据预处理
# 2.1 训练集和测试集划分
split_date = pd.Timestamp('01-01-2010')
trai