使用LSTM预测时间序列数据
文章目录
背景
- 复现 @“使用Keras进行LSTM实战” https://blog.youkuaiyun.com/u012735708/article/details/82769711 中的实验
- 熟悉用LSTM模型训练
- 验证将时序数据 转化为分类问题后,预测是否有效果
- 对比SimpleRNN与LSTM模型 哪个效果最好?
- 验证LSTM相比于Dense()模型 是否有提升?
- 对比使用前3天的数据 和使用前1天的数据 哪个效果最好?
结论
- 使用前3天的数据预测当天的空气质量的效果 没有 比只用前一天的数据 好
- 使用LSTM的效果优于SimpleRNN
代码
from pandas import read_csv
from datetime import datetime
import pandas as pd
from pandas import DataFrame
from sklearn.preprocessing import LabelEncoder,MinMaxScaler
from sklearn.metrics import mean_squared_error
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import LSTM
from keras.layers.recurrent import SimpleRNN
from numpy import concatenate
from math import sqrt
# load data
def parse(x):
return datetime.strptime(x, '%Y %m %d %H')
def read_raw():
dataset = pd.read_csv('raw.csv', parse_dates = [['year', 'month', 'day', 'hour']], index_col=0, date_parser=parse)
dataset.drop('No', axis=1, inplace=True)
# manually specify column names
dataset.columns = ['pollution', 'dew', 'temp', 'press', 'wnd_dir', 'wnd_spd', 'snow', 'rain']
datase