您的位置:首页 > 编程语言 > Python开发

Python时间序列LSTM预测系列教程(7)-多变量

2017-09-07 11:25 2356 查看


多变量LSTM预测模型(1)

教程原文链接

空气污染预测案例

数据格式

Noyearmonthdayhourpm2.5DEWPTEMPPREScbwdIwsIsIr
12010110NA-21-111021NW1.7900
22010111NA-21-121020NW4.9200
32010112NA-21-111019NW6.7100
42010113NA-21-141019NW9.8400
52010114NA-20-121018NW12.9700
62010115NA-19-101017NW16.100
72010116NA-19-91017NW19.2300
82010117NA-19-91017NW21.0200
92010118NA-19-91017NW24.1500
No: 行标

year

month

day

hour

pm2.5: PM2.5 浓度

DEWP: 零点温度

TEMP: 温度

PRES: 压力

cbwd: 结合风向

Iws: 累积风速

Is: 累积雪量

Ir: 累积雨量

数据准备

1、删除“No”列,因为没用
2、删除最开始的24小时数据,因为PM值全是NA
3、将之后的数据中出现的NA全部替换成0

预处理
# coding=utf-8

from pandas import read_csv
from pandas import datetime

def parser(x):
return datetime.strptime(x, '%Y %m %d %H')

dataset = read_csv('data_set/air_pollution.csv', parse_dates=[['year', 'month', 'day', 'hour']], index_col=0, date_parser=parser)
dataset.drop('No', axis=1, inplace=True)#axis=1,删除列;inplace=True,直接在原DataFrame上执行删除

#手动设置每一列的label
dataset.columns = ['pollution', 'dew', 'temp', 'press', 'wnd_dir', 'wnd_spd', 'snow', 'rain']
dataset.index.name = 'date'
#将NA替换为0
dataset['pollution'].fillna(0, inplace=True)
#删除最开始的24条数据
dataset = dataset[24:]
print dataset.head()

#保存处理后数据
dataset.to_csv('data_set/air_pollution_new.csv')


数据输出
# coding=utf-8
#输出数据曲线
#------------
from pandas import read_csv
from matplotlib import pyplot

dataset =  read_csv('data_set/air_pollution_new.csv', header=0, index_col=0)
values = dataset.values

#需要输出的列
groups = [i for i in range(8)]
groups.remove(4)#删除值4,因为是字符串

i=1
#输出列曲线图
pyplot.figure()
for group in groups:
pyplot.subplot(len(groups), 1, i)#创建len(gourps)行,1列的子图,表示在第i个子图画图
pyplot.plot(values[:,group])
pyplot.title(dataset.columns[group], y=0.5, loc='right')
i+=1
pyplot.show()


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息