动图演示
输出层门
作用对象:隐层 h t h_t ht
作用:确定输出什么值。
操作步骤:
步骤一:通过sigmoid 层来确定细胞状态的哪个部分将输出。
步骤二:把细胞状态通过 tanh 进行处理,并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。
其示意图如下所示:
动图演示
=============================================================================
数据来源自位于北京的美国大使馆在2010年至2014年共5年间每小时采集的天气及空气污染指数。
数据集包括日期、PM2.5浓度、露点、温度、风向、风速、累积小时雪量和累积小时雨量。原始数据中完整的特征如下:
1.No 行数
2.year 年
3.month 月
4.day 日
5.hour 小时
6.pm2.5 PM2.5浓度
7.DEWP 露点
8.TEMP 温度
9.PRES 大气压
10.cbwd 风向
11.lws 风速
12.ls 累积雪量
13.lr 累积雨量
我们可以利用此数据集搭建预测模型,利用前一个或几个小时的天气条件和污染数据预测下一个(当前)时刻的污染程度。
首先,我们必须清洗数据。以下是原始数据集的前几行。
No year month day hour pm2.5 DEWP TEMP PRES cbwd Iws Is Ir
0 1 2010 1 1 0 NaN -21 -11.0 1021.0 NW 1.79 0 0
1 2 2010 1 1 1 NaN -21 -12.0 1020.0 NW 4.92 0 0
2 3 2010 1 1 2 NaN -21 -11.0 1019.0 NW 6.71 0 0
3 4 2010 1 1 3 NaN -21 -14.0 1019.0 NW 9.84 0 0
4 5 2010 1 1 4 NaN -20 -12.0 1018.0 NW 12.97 0 0
5 6 2010 1 1 5 NaN -19 -10.0 1017.0 NW 16.10 0 0
6 7 2010 1 1 6 NaN -19 -9.0 1017.0 NW 19.23 0 0
7 8 2010 1 1 7 NaN -19 -9.0 1017.0 NW 21.02 0 0
8 9 2010 1 1 8 NaN -19 -9.0 1017.0 NW 24.15 0 0
9 10 2010 1 1 9 NaN -20 -8.0 1017.0 NW 27.28 0 0
数据理清的步骤:
1、将year, month, day, hour四列整合为一个日期时间。
2、删除No列,这个列对于数据预测没有作用,如果有作用说明见鬼了。
3、将数据集中所有的NaN设置为0,NaN没有办法用来计算。
4、删除前24行,前24行的pm2.5没有记录,留着没有用。
完整的代码如下:
from pandas import read_csv
from datetime import datetime
load data
def parse(x):
return datetime.strptime(x, ‘%Y %m %d %H’)
读取数据,将year, month, day, hour四列合并成一列。
dataset = read_csv(‘raw.csv’, parse_dates = [[‘year’, ‘month’, ‘day’, ‘hour’]], index_col=0, date_parser=parse)
删除No列
dataset.drop(‘No’, axis=1, inplace=True)
修改列名
dataset.columns = [‘pollution’, ‘dew’, ‘temp’, ‘press’, ‘wnd_dir’, ‘wnd_spd’, ‘snow’, ‘rain’]
dataset.index.name = ‘date’
print(dataset)
将所有的NaN设置为0
dataset[‘pollution’].fillna(0, inplace=True)
删除前24行
dataset = dataset[24:]
浏览前5行数据
print(dataset.head(5))
save to file
dataset.to_csv(‘pollution.csv’)
加载了“pollut