APP下载

Hadoop下基于朴素贝叶斯的气象数据挖掘研究

2019-07-08陈宇娥童莹郁清蔡玉珍

计算机时代 2019年4期
关键词:数据挖掘

陈宇娥 童莹 郁清 蔡玉珍

摘  要: 如何从海量数据中挖掘出气象信息和潜在的大气规律,成为气象挖掘研究的重点。为了提高数据挖掘 的准确性和效率,在分析了MapReduce和贝叶斯分类的基础上,提出了在Hadoop平台上利用MapReduce编程模型与朴素贝叶斯算法相结合的方法来选取预测属性,预测一天中的最高温度。在Hadoop平台上的实验结果表明,该并行数据挖掘方法能够有效的处理海量气象数据,提高了运算效率并具有良好的扩展性。

关键词: Hadoop; MapReduce; 朴素贝叶斯; 数据挖掘; 气象预测

中图分类号:TP301.6          文献标志码:A     文章编号:1006-8228(2019)04-09-05

Abstract: With the continuous improvement of meteorological informatization, how to excavate meteorological information and potential atmospheric laws from massive data has become the focus of meteorological mining research. In order to improve the accuracy and efficiency of data mining, by analyzing MapReduce and Bayesian classification, a method combining MapReduce programming model with Naive Bayesian algorithm is proposed to select prediction attributes and predict the highest temperature in a day. Experiments have been carried out on Hadoop platform, and the results show that the parallel data mining method can effectively process massive meteorological data, improve computing efficiency and has good scalability.

Key words: Hadoop; MapReduce; Naive Bayesian; data mining; weather forecast

0 引言

当前气象预测在社会经济发展及人们日常生产生活中所发挥的作用日益突出,社会大众对气象预测[2]的准确性、时效性则提出了更高的要求[3]。

貝叶斯分类是一种基于贝叶斯决策理论的最优分类器,具有错误率小、算法时间空间开销小、算法较稳定、健壮性好等优点。朴素贝叶斯分类[2]假设属性之间相互独立,假设每个属性独立地对分类结果发生影响,使得从有限的训练样本中直接估计而得。另一方面气象数据规模急剧膨胀变大,传统的处理数据的效率已不满足适应现代天气预测的要求。

根据以上情况,本文提出了Hadoop[4]下基于朴素贝叶斯算法的气象数据预测算法。该算法以朴素贝叶斯为理论依据,在Hadoop[5]平台下利用MapReduce[6]进行数据预处理、模型训练、精度评估三个过程并行处理,使得海量数据得到充分利用,最终取得更好的预测效果。

1 朴素贝叶斯

1.1 朴素贝叶斯分类器

在众多的分类算法中,朴素贝叶斯分类器[7]是最早应用于实践中的有效方法之一。一般情况下,基于贝叶斯定理可以衍生出来很多相关技术,而贝叶斯分类就是基于这些技术对数据分类的方法,朴素贝叶斯分类器就是基于贝叶斯方法构造的分类模型,虽然简单,但其性能不逊色于其他分类算法,并且拥有自己的特点。由于贝叶斯公式是用先验推算后验的公式,所以朴素贝叶斯分类技术也多用于对未知可能性的预测。其基本原理:首先获得对象的先验概率,然后利用公式计算出其后验概率,也就是该对象属于某一类的概率,最后把具有最大后验概率的类作为该对象的预测结果。

在贝叶斯分类器诸多的算法中,朴素贝叶斯分类器具有算法逻辑简单,运算速度快,塑造分类模型精炼,稳定性强,高效率和高精度等优点,在实际生活中得到了广泛的应用,朴素贝叶斯的结构图如图1所示。

1.2 朴素贝叶斯的拉普拉斯修正

在由样本数据得出的先验概率中,当某个分量在总样本某个分类中(观察样本库或是训练集)从来没出现过,会导致整个测试实例的计算结果为0。为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计先验概率时要进行“平滑处理”常用“拉普拉斯修正”(Laplacian correction)。具体来说,令N表示训练集D中可能的类别数,Ni表示第i个属性可能的取值数,则修正后的公式为:

2.1 数据预处理

2.1.1 气象数据集准备

原始气象数据集是源于江苏省南京国家基准气候站提供的气候资料日值数据集,该数据集是自2013年以来的日值数据集,包括:最高气压、最低气压、海平面气压、平均温度、最高温度、最低温度、湿球温度、水汽压、能见度、降水量、蒸发量、极大风速、极大风速风向、浅层地温、深层地温、日照时数等21个特征属性。

2.1.2 数据清洗

气象数据质量的好坏,直接影响气象预测的精度,原始数据集中存在数据格式不一致、缺省漏测的数据值,这严重影响到数据挖掘算法的效率,也严重影响了数据挖掘的结果,所以对数据进行清洗。

首先,据中国气象数据网显示,除了蒸发量和极大风速这两个属性的可疑率在1%左右,其他属性的可疑率都在0.1%以下,这些相对于数据总量可以忽略不计。

其次,基于MapReduce编程模型下,统计缺省的数据集,发现缺省数据集占总数据集的不到1%,所以直接将数据缺省的剔除总数据集;然后,基于MapReduce编程模型下,对数据格式不一致的数据进行数据格式转换,使得最终的数据集中每一条数据都是可靠且完整统一的。

2.1.3 预测属性的选取

预测属性的选取直接影响到分类器的训练结果,在训练之前依据特征属性之间的相关性大小的选取预测属性,直接影响到算法的效率。基于MapReduce编程下完成日最高温度和其他气象属性间的相关性的分析,对于任意两个气象属性X和Y,其相关系数rxy的计算公式为:

2.1.4 数据离散化处理

根据气温在一年中的分布情况,把日最高气温按照高低分为严寒(3℃以下),寒冷(3℃~9.6℃),温凉(9.6℃~18.5℃), 暖和(18.5℃~30.4℃),炎热(30.4℃以上)5个级别。

数据预处理分为两个任务,一个是离散化预测属性[8],另一个是输出整理数据与温度等级标识,这两个任务是独立的可以采用MapReduce并行处理,步骤1负责预测属性的区间离散化,步骤2负责输出数据的整理与温度等级标识。

2.2 模型训练

按照算法流程,把气象数据集按照4:1的比例分成训练集和数据集,训练集用于朴素贝叶斯分类器的训练,测试集用于后期的精度评估。模型训练MapReduce过程中,需要统计预测属性和决策属性在各个离散区间的样本数,计算其先验概率和联合概率。

2.3 精度评估

精度评估是利用测试集验证朴素贝叶斯分类器的合理性,在MapReduce过程中,将测试集数据通过分类模型对温度级别预测,得出的预测结果与测试集中真实的情况进行对比,对预测结果的正确与否进行标识,计算出正确率和预测率,计算公式如下:

3 實验分析

3.1 实验环境与数据

本文实验环境是Hadoop云平台[10],是具有计算机节点的伪分布式集群,其效果与完全分布式集群一样。电脑配置为2.4G双核CPU、8G内存、100G磁盘、Linux CentOS7.0、Hadoop1.0.2版本。

实验数据采自于江苏省南京国家基准气候站从2013年以来的数据[11],包括日最高温度、日最低温度、降水量、蒸发量、海平面气压、相对湿度、日照时数、浅层地温、深层地温等21个因素。

3.2 实验结果与分析

3.2.1 相关性系数

通过对数据的清除处理,将原数据缺省的,格式不正确的数据全部删除于总数据集。然后计算各个预测属性与日最高气温之间的相关系数。计算结果如表2所示。

3.2.2 精度评估

本文的实验预测率与准确率如表3所示,其中V0代表严寒,V1代表寒冷,V2温凉,V3暖和,V4炎热。

由表3可以看出,采用朴素贝叶斯分类器在预测寒冷、温凉、暖和、炎热四种级别时,预测率和正确率都达到不错的效果,说明预测日最高气温的级别与真实情况相符;而在寒冷中的预测率和正确率都不是很高,这主要是因为数据集中寒冷的天气太少,在一定程度上影响了测试的结果。

4 结束语

本文对Hadoop下基于朴素贝叶斯对气象数据进行挖掘研究,采用了将朴素贝叶斯与Hadoop相结合的处理数据的新方法,在预测日最高气温中具有较高的预测率和正确率。该方法具有以下特点:①可以充分利用海量数据,有效地避免了信息的丢失;②在大量样本下,用较为简单的算法达到了不为逊色的结果;③能够处理不完全、不精确的训练数据集;④对连续数据的离散化采用较为简单的PKI算法,对气象数据某些分布不是很均匀的属性来说,离散效果还有待提高。在数据量海量增加的今天,此方法提供了在海量数据中挖掘有用的信息的新思路,可在移动互联网、电子商务等诸多领域的应用中进一步去研究。

参考文献(References):

[1] 乔梁.数据挖掘在气象服务中的应用研究[J].信息通信,2016.2:96-97

[2] 张硕.张永宁.大数据时代气象数据新闻的探索与实践—以中国天气网为例[J].NEW MEDIA RESEARCH,2017.22:120-122

[3] 张晨阳,刘利民,马志强.云计算下基于贝叶斯分类的气象数据挖掘研究[D].内蒙古工业大学,2014.

[4] 苑立民,郝成亮,刘昶,徐峰,潘建宏,张凯.基于Hadoop生态环境的大数据平台在电网公司海量数据准实时处理中的应用[J].大众用电,2017增刊.1:38-41

[5] 李斌,张建平,刘学军.基于Hadoop的不确定异常时间序列检测[J].传感技术学报,2015.28(7):1066-1072

[6] 陈坚钊.MapReduce的工作机理及其应用研究[D].华侨大学,2013.

[7] 赵力.基于贝叶斯压缩感知的说话人识别方法[J].电子器件,2015.38(5):1135-1137

[8] 谢作将.面向朴素贝叶斯算法的离散化方法研究[D].北京交通大学,2008.

[9] Yang Y,Webb G I.Proportional k-Interval Discretizationfor Bavie-Bayes Classifiers[J]. Proc.of the Twelfth European Conf.on Machine Learning,2001.2167:564

[10] 刘君.基于Hadoop技术的气象数据采集及数据挖掘平台的研究[D].天津理工大学,2015.

[11] 闫永刚.基于Hadoop的KNN分类的气象数据预测研究[D].南京信息工程大学,2012.

猜你喜欢

数据挖掘
探讨人工智能与数据挖掘发展趋势
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究