前言
本文主要是时空卷积神经网络(Temporal convolutional network,TCN)进行时序数据分析,预测
代码
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from tcn.tcn import TCN
"""
pip3 install keras-tcn
"""
filepath = '12.csv'
data = pd.read_csv(filepath)
dataset_train = pd.read_csv('12.csv',usecols=[1])
# 利用Keras创建TCN模型
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
# 初始化顺序模型
regressor = Sequential()
regressor.add(TCN(nb_filters=10, input_shape=(3, 1),kernel_size= 4, dilations=[1, 2, 4, 8])) # ,return_sequences=True
# 定义线性的输出层
regressor.add(Dense(units = 1))
# 模型编译:定义优化算法adam, 目标函数均方根MSE
regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
# 模型训练
history = regressor.fit(X_train, y_train, epochs = 100, batch_size = 100, validation_split=0.001)
regressor.summary()
# 模型预测
predicted_stock_price = regressor.predict(X_test)
from sklearn import metrics
y = real_stock_price
y_hat = predicted_stock_price
MSE = metrics.mean_squared_error(y, y_hat)
RMSE = metrics.mean_squared_error(y, y_hat)**0.5
MAE = metrics.mean_absolute_error(y, y_hat)
MAPE = metrics.mean_absolute_percentage_error(y, y_hat)
print("Test RMSE:",RMSE)
print("Test MSE:",MSE)
print("Test MAE:",MAE)
print("Test MAPE:",MAPE)
损失函数图像
预测数据分析图像
Test RMSE: 1.3329355073539122
Test MSE: 1.7767171
Test MAE: 0.76241606
Test MAPE: 0.0063908156
总结
- 使用tcn对数据进行预测,可以和lstm等模型进行比较分析
- tcn也可以进一步优化参数
备注:
需要源代码和数据集,或者想要沟通交流,请私聊,谢谢.