计算机系统应用  2019, Vol. 28 Issue (9): 140-146 PDF

Application of GA-BP Algorithm Based on Hadoop in Precipitation Forecast
GOU Zhi-Jing, REN Jian-Ling, XU Mei, WANG Min
Tianjin Meteorological Information Center, Tianjin Meteorological Bureau, Tianjin 300074, China
Abstract: Aiming at how to dig out useful knowledge from the massive meteorological data and improve the accuracy of meteorological forecast, this paper proposed a weather forecast method based on the genetic neural network algorithm on Hadoop platform. The method combined genetic algorithm with neural network algorithm, which could avoid the problem of local optimization in traditional algorithm. Then, the genetic neural network forecasting model is established, and the daily data of the ground climate from 1951 to 2006 of 13 stations in Tianjin is used as experimental data. Finally, the experiment is performed taking the rainfall level as decision attribute, and the results show that the method proposed in this paper can get better prediction accuracy for all rainfall level than traditional neural network algorithm. It has the highest prediction precision for the rainfall level R0 and reaches 87%, which can not only effectively deal with mass meteorological data, but also has high prediction precision and good scalability, it proposes a new way of thinking and method for weather forecast.
Key words: Hadoop     genetic neural network     meteorological data     weather forecast

1 遗传神经网络算法设计

BP神经网络算法是大气科学领域的气候分析和气候预测中应用比较广泛的算法, 能够提供更好的预报能力[68]. 但BP神经网络算法收敛速度慢, 容易陷入局部最小值, 而遗传算法(Genetic Algorithm, GA)是一种全局优化的搜索迭代算法, 将其与BP神经网络结合, 可以克服BP神经网络的缺点, 加速网络的训练[910]. 本文首先利用GA算法优化BP神经网络的连接权和网络结构, 并得到一群全局性较好的个体, 在进一步利用BP神经网络得到最优解, 然后解码得到对应的BP神经网络连接权和网络结构, 最后输入检测样本进行降水等级的预测.

1.1 编码方式

 图 1 编码示意图

1.2 初始种群的生成

1.3 适应度函数的建立

 ${{E}}\left( {{{w}},{{b}}} \right) = \frac{1}{2}\mathop \sum \limits_{j = 0}^{n - 1} {\left( {{y_j} - {d_j}} \right)^2}$ (1)

 $f = \frac{1}{{{{E}}({{w}},{{b}})}}*{10^{ - 3}}$ (2)
1.4 选择算子(selection operator)

1.5 交叉算子(crossover operator)

 $\left\{ {\begin{array}{*{20}{l}} {{P_{c1}} - \dfrac{{\left( {{P_{c1}} - {P_{c2}}} \right)/\left( {{f_{\rm{max}}} - {f_{\rm{avg}}}} \right)}}{{{f_{\rm{max}}} - {f_{\rm{avg}}}}},f' > {f_{\rm{avg}}};}\\ {{P_{c1}},\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;f' < {f_{\rm{avg}}}} \end{array}} \right.$ (3)

1.6 变异算子(mutation operator)

 $\left\{ {\begin{array}{*{20}{l}} {{P_{m1}} - \dfrac{{\left( {{P_{m1}} - {P_{m2}}} \right)/\left( {{f_{\rm{max}}} - {f_{\rm{avg}}}} \right)}}{{{f_{\rm{max}}} - {f_{\rm{avg}}}}},f' > {f_{\rm{avg}}};}\\ {{P_{m1}},\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;f' < {f_{\rm{avg}}}} \end{array}} \right.$ (4)

${P_m}$ 的概率对交叉操作以后的染色体进行变异, 变异算子如下:

 $X_j^{t + 1} = X_j^t + {c_j}$ (5)

1.7 终止条件

1.8 算法框架

(1)确定解空间[12], 对解空间进行编码, 每串编码代表解空间的一个解.

(2)在编码的解空间中, 随机生成一个初始群体(不要求一定是可行解).

(3)对群体中的每一个个体进行适应度评价.

(4)根据个体的适应度, 对群体中的个体进行选择、交叉、变异遗传操作.

(5)生成新一代群体.

(6)反复进行(3)、(4)、(5), 每进行一次, 群体进化一代, 直至进化了K0代(K0为预置的进化代数).

(7)从第K0代群体中选择S可能具有全局性的进化解, 选择时要注意避免相似个体.

(8)分别以这些进化解为初始解, 用神经网络求解.

(9)比较S个由神经网络求得的解, 从而获得问题的最优解, 然后输入检测样本进行预测.

 图 2 遗传神经网络算法流程图

2 GA-BP算法的并行化

Hadoop下的MapReduce是Google公司提出的用于处理海量数据的分布式计算模型, 其主要由两个阶段组成: Map和Reduce. Map阶段主要负责将输入数据分为多个分片(split), 并将每个split交给一个Map Task, 最终转化为key/value数据结构. Reduce阶段将Map阶段的结果进行归约处理, 输出最终结果. 降水数据规模较大, 利用MapReuce分布式计算的优势, 可以快速的完成对海量气象数据的处理.

2.1 遗传算法的并行化

GA算法的并行思想: 首先将整个群体分为m个种群, 然后每一个种群在对应的Map Task上独立完成种群的初始化、选择、交叉、变异等操作, 达到收敛条件后, 将Map得到的最后个体传递给相对应的Reduce Task, 然后将不同Reduce Task得到的个体适应度进行比较, 输出适应度值最大的个体.

Map函数伪代码如下:

Input: key, value

Output: key, best individual set

Public void map (writeable key, value){

InitPopulation();

EvaluateFitness();

Do{

Selection operator();

Crossover operator();

Mutation Operator();

}while (K<=K0)

OutputBestIndividual();}

Reduce函数伪代码如下:

Input: key, best individual set

Output: key, best individual

void reduce(individual, fitness)

{

CompareIndividualFitness();

Output();

}

2.2 BP神经网络的并行化

Map函数伪代码如下:

Input: key, value

Output: key, weight change

Public void map (writeable key, value){

Do{

//For each sample

Error();

WeightChange();

}while (E<Ɛ)

OutputWeightchange();}

Reduce函数伪代码如下:

Input: key, weightchange

Output: key, mean weightchange

void reduce(key, weightchange){

Do{

SumWeightchange();

MeanWeightchange();

}while()

Output();}

3 实验结果及分析 3.1 实验环境

NameNode-负责管理文件系统的Namespace.

DataNode-负责管理各个存储节点.

SecondaryNameNode-NameNode的热备, 负责周期性的合并Namespace image和Edit log.

ResourceManager-负责调度资源.

NodeManager-负责管理slave节点的资源.

3.2 实验数据及预处理

 ${x_i} = \frac{{{x_i} - {x_{\rm{min}}}}}{{{x_{\rm{max}}} - {x_{\rm{min}}}}}$ (6)

3.3 降水因子选择

 ${\rm{r}} = {r_{xy}}\frac{{\displaystyle\mathop \sum \nolimits_{i = 1}^n ({x_i} - \overline x )({y_i} - \overline y )}}{{\sqrt {\displaystyle\mathop \sum \nolimits_{i = 1}^n {{({x_i} - \overline x )}^2}} \sqrt {\displaystyle\mathop \sum \nolimits_{i = 1}^n {{({y_i} - \overline y )}^2}} }}$ (7)

 图 3 总体样本降水等级分布图

r>0, 表示2个变量是正相关的; 若r<0, 则表示2个变量是负相关,n为样本数量(本文选100个样本计算相关系数). 其它要素与降雨量之间的相关性初步由Pearson求出之后, 还要经过显著性检验再最后判断. 显著性检验公式为:

 ${\rm{t}} = \frac{{|{r_{xy}}|}}{{\sqrt {(1 - r_{xy}^2)/(n - 2)} }}$ (8)

3.4 实验结果分析

 图 4 实验结果对比图

 图 5 不同节点运行时间图

4 结论与展望

1)本文提出的方法对降水等级的预测准确率优于传统的BP算法, 整体预测准确率达到82.4%, 其中对于等级R0的预测精度最高, 高达87%.

2)该方法可以有效的处理海量气象数据, 同时具有很高的运行效率和良好的扩展性, 为天气预报提拱了一种全新的思路和方法.

 [1] 李海涛, 刘云生, 兰长杰. 基于Hadoop的生物质能源工程数据资源管理平台. 计算机系统应用, 2018, 27(5): 80-85. DOI:10.15888/j.cnki.csa.006341 [2] 杨淑群, 芮景析, 冯汉中. 支持向量机(SVM)方法在降水分类预测中的应用. 西南农业大学学报(自然科学版), 2006, 28(2): 252-257. DOI:10.3969/j.issn.1673-9868.2006.02.020 [3] 胡邦辉, 刘善亮, 席岩, 等. 一种Bayes降水概率预报的最优子集算法. 应用气象学报, 2015, 26(2): 185-192. DOI:10.11898/1001-7313.20150206 [4] Prasad N, Kumar P, Mm N. An approach to prediction of precipitation using gini index in SLIQ decision tree. Proceedings of the 4th International Conference on Intelligent Systems, Modelling and Simulation. Bangkok, Thailand. 2013. 56–60. [5] 王军, 费凯, 程勇. 基于改进的Adaboost-BP模型在降水中的预测. 计算机应用, 2017, 37(9): 2689-2693. DOI:10.11772/j.issn.1001-9081.2017.09.2689 [6] Wu JS, Long J, Liu MZ. Evolving RBF neural networks for rainfall prediction using hybrid particle swarm optimization and genetic algorithm. Neurocomputing, 2015, 148: 136-142. DOI:10.1016/j.neucom.2012.10.043 [7] 胡健伟, 周玉良, 金菊良. BP神经网络洪水预报模型在洪水预报系统中的应用. 水文, 2015, 35(1): 20-25. DOI:10.3969/j.issn.1674-9405.2015.01.005 [8] 赵正佳, 黄洪钟, 陈新. 优化设计求解的遗传-神经网络新算法研究. 西南交通大学学报, 2000, 35(1): 65-68. DOI:10.3969/j.issn.0258-2724.2000.01.016 [9] 郭强, 朱若函, 张晓萌. 基于遗传禁忌算法优化的模糊神经网络垂直切换算法. 计算机应用研究, 2016, 33(3): 840-842, 847. DOI:10.3969/j.issn.1001-3695.2016.03.045 [10] 谢建宏. 基于并行量子遗传神经网络的自诊断智能结构传感器的优化配置. 计算机应用研究, 2012, 29(3): 919-922. DOI:10.3969/j.issn.1001-3695.2012.03.033 [11] Jajodia S, Samarati P, Sapino ML, et al. Flexible support for multiple access control policies. ACM Transactions on Database Systems, 2001, 26(2): 214-260. DOI:10.1145/383891.383894 [12] 金龙, 吴建生, 林开平, 等. 基于遗传算法的神经网络短期气候预测模型. 高原气象, 2005, 24(6): 981-987. DOI:10.3321/j.issn:1000-0534.2005.06.019 [13] 宋连春, 肖风劲, 李威. 我国现代化气候业务现状及未来发展. 应用气象学报, 2013, 24(5): 513-520. DOI:10.3969/j.issn.1001-7313.2013.05.001 [14] 殷长春, 孙思源, 高秀鹤, 等. 基于局部相关性约束的三维大地电磁数据和重力数据的联合反演. 地球物理学报, 2018, 61(1): 358-367. DOI:10.6038/cjg2018K0765 [15] 陈闯, Chellali R, 邢尹. 改进遗传算法优化BP神经网络的语音情感识别. 计算机应用研究, 2019, 36(2): 344-346, 361.