王江波 白 雪 徐 景 李景诗
(南京信息工程大学 数学与统计学院,江苏 南京210044)
气象温度的预测一直以来都是天气预测的重点问题,天气不仅直接影响人们的健康、甚至影响人们的心情[1];此外,天气变化还会影响一个国家的经济状况。据美国气候中心报告,美国每年因为气象灾害的损失要达到1000 亿美元[2]。短临预报是近年来的热点问题,其根据大气科学原理,运用统计学知识对未来变化趋势预测。提高短临预测的准确率和效率,对国民经济有重要指导意义[3]。
在统计学理论范畴下,气温预测技术种类繁多。最新的数值预报有如下几个方面:一是多元统计分析,主要运用数理统计学的相关知识,在多对象多因素的关联下进行相关性分析,进而得到规律;二是运用概率预测的统计方法,以此来预测某类天气现象是否可能发生,并给出其发生可能性大小;三是时间序列分析,通过挖掘历史数据中的规律,进而来预测未来的天气。
随着计算机技术的快速发展,机器学习在气象预测中展现出巨大的潜力,其能够有效避免过拟合过高维数等问题,而且求解速度快,精度也更高。
在国外,Khan M R[4]等人提出简单递归网络对气温进行预测,SinghS[5]等人对气象中的温度属性以及特定数据采用依赖性研究,提出了基于遗传算法和神经网络相结合的综合反向传播温度预测模型。国内针对气温的预测相对滞后,比如黄文杰,曹鸿兴等人[6]在20 世纪以ARIMA 作为季节模型定量分析,这一期间ARIMA 时间序列模型被广泛用于预测研究,南京信息工程大学的智协飞[7]等运用贝叶斯模式平均法将三个模式预报结果进行多模式气温集成。
本文选取了海口地面观测站点的观测数据集作为样本数据集,其中采集了2019 年6 月到2020 年6 月的相关气象观测数据。原始观测数据的部分见表1。
据表1 显示,该气象站的数据更新频率为1 小时/次,即每1 小时更新一次海口站点的相关要素值,其数据要素采集包括区站号、时、本站气压、气温、相对湿度、小时降水量、瞬时风向、瞬时风速、最小能见度,其中后面7 个要素的单位分别为:百帕、摄氏度、百分率、毫米、度、米/秒、米。
2.2.1 清洗数据。数据清洗是数据预测中最为重要的环节。首先处理表中的重复值,其中区站号都是海口站点59757,对气温的预测没有实际作用,所以删除此列;其次要对缺失值进行处理,本文采用中位数代替缺测值。
2.2.2 归一化处理。观察表可知,不同的变量有不同的量纲,这将对最终的预测结果产生不利的影响。本文采用数据归一化以解决气象要素之间的可比性问题。归一化后气象要素的取值范围在[0,1]之间,具体公式如下所示:
其中,max 为最大值,min 为最小值。归一化后,能加快LSTM的处理速度,也能减小输出误差。
2.2.3 将时间序列数据转化为有监督数据。本文采用的输入t 时间步各要素的观测值,输出t+1 时间步气温值。具体就是将时间序列数据向后滑动一个单位,然后进行拼接,这就是有监督的数据集。
长短期记忆网络(Long Short-Term Memory,LSTM)是循环神经网络RNN 的分支,LSTM 有效解决了长期依赖问题,其设计的目的意在更好的存储和访问历史信息。一方面,LSTM 由隐藏层、输出层和输入层组成。另一方面,LSTM 又是一种特殊的RNN,隐藏层由一个或多个记忆单元组成,每个记忆单元拥有3个“门”结构,其中包括遗忘门、输入门和输出门。LSTM 的单元结构如图1 所示。
表1 原始观测数据
图1 LSTM 结构图
由图1 所示,有一条直线横穿了整个单元,并且通过线性计算与输入门、输出门、遗忘门链接,下面列出相关公式:
其中,ft、it、ct、ot分别表示当前时刻的遗忘门、输入门、单元状态和输出门;ht则是LSTM 的输出;b 是偏置项,w 是各类输入循环权重;σ 是sigmoid 函数,用来调节权重;在LSTM 结构中,因为3 种门结构和特殊单元,以至于LSTM 能够学习历史信息,并从中舍弃无效的信息,将有价值的信息保留下来。其次,单元ct在遗忘门舍弃了一些信息,所以需要通过输入门来学习新的信息。最后,通过计算单元状态之后,ct得到了更新,再利用输出门,和tanh 层决定最终的输出值ht。
图2 LSTM 时间序列模型结构
本文采集了海口地区的气象数据,并利用采集数据进行训练的测试。这里随机选取80%作为训练集,20%作为测试集。为了评估模型的性能和精度,本文根据预测的值和实际的值,采用了均方误差MSE 和平均绝对误差MAE 作为模型的评估指标,它们的计算公式如下所示:
其中,y 为气温的预测值,y 为气温的实际值,当MSE 和MAE 越小时,说明模型的预测性能越好,同时表明预测误差较小。不同时间序列长度的模型效果如表2 所示。
表2 模型效果比较基于不同序列长度
序列长度是指我们在预测过程中的数据输入长度,即用多长序列的数据来预测未来三小时的温度。由模型效果的结果,可以发现当序列长度为4 天,即96 小时,模型的预测效果最好,因此我们的模型的序列输入长度为96。接下来对训练好的模型进行未来三小时的预测,为了尽可能直观展示未来三小时的预测结果,我们用96 小时的数据对未来三小时分别进行了预测,预测的效果图如图3 所示。
图3 未来三小时气温预测值
从预测的结果可以看出,在未来一小时内预测结果良好,预测温度与实际温度基本一致,但在第三个小时,出现了轻微的波动。由此可见,LSTM 在气温预测中具有良好的预报能力,另外,在不同的参数组合下对结果影响大。在实际业务中,应进行大量的实验,选取最佳的参数组合,使模型预测效果达到最佳。