摘 要: 介绍了物联网数据处理的若干关键技术,如大数据采集、大数据存储、大数据的分析与挖掘等。以Hadoop为平台对物联网数据进行挖掘与分析,为了提高处理庞大数据的实效性,基于MapReduce架构采用了朴素贝叶斯分类算法、K-modes聚类算法以及ECLAT算法。分析认为,应用这三类算法,提高了数据分类效率,优化了类内对象之间的相似性以及类间对象之间的关联性,为更高效的数据挖掘提供了很好的思路。
关键词: 物联网; Hadoop; 朴素贝叶斯; K-modes; ECLAT
中图分类号:TP212.9;TP391.4 文献标志码:A 文章编号:1006-8228(2018)06-29-03
Analysis and application of data mining algorithm for Internet of Things based on Hadoop
Chen Juan
(Guangling College of YangZhou University, Yangzhou, Jiangsu 225127, China)
Abstract: Some key technologies of data processing for Internet of Things are introduced, such as big data acquisition, big data storage, big data analysis and mining. In this paper, the data of Internet of Things is excavated and analyzed on Hadoop platform, In order to improve the effectiveness of large data processing, Naive Bayesian classification algorithm, K-modes clustering algorithm and ECLAT algorithm are adopted in MapReduce framework. The analysis shows that the application of these three kinds of algorithms improves the efficiency of data classification, optimizes the similarity among the objects in the class and the correlation among the objects between classes, and provides a good idea for more efficient data mining.
Key words: Internet of things; Hadoop; Naive Bayesian; K-modes; ECLAT
0 引言
当前计算机技术发展迅速,物联网是在计算机、互联网之后信息产业发展的第三次浪潮,它必将成为社会发展的重要推力,它能够实现人与人、人与物和物与物之间的沟通与交流。物联网的兴起也必将再次引发数据的快速增长,对许多行业来说既是更严峻的挑战,也是更宝贵的机遇。物联网正在深刻改变着人们的生活习惯、工作方式。
本文主要采用Hadoop分布式系统架构处理物联网环境下的大数据,Hadoop是一个分布式计算平台,具有高可靠性、高扩展性、高效性以及高容错性等优点。其主要由三大部分构成,HDFS(Hadoop Distributed File System)分布式文件系统、Hadoop MapReduce分布式计算模型和 HBase 分布式数据库。
因此,如何更好地应用Hadoop计算平台处理好物联网大数据,将是一个待攻克的难题。本文主要分析如何运用Hadoop平台处理大数据的理论依据,以及物联网的应用前景。
1 物联网概述
物联网[1]底层网络通过RFID(Radio Frequency Identification)、WSNs(Wireless Sensor Networks)、無线局域网等网络技术采集物物交换信息并传输到智能汇聚网关,通过智能汇聚网关接入到网络融合体系,最后利用包括广播电视网、互联网、电信网等网络途径使信息到达终端用户应用系统。作为底层的数据感知层次[2],在这个阶段主要感知各种各样的信息内容,例如二维标签、识别器、摄像头信息、传感网络等。然后,整理收集到的数据通过传输层进行传递,例如网络管理中心、通信网络和智能处理等。最后,系统处理传输层的数据,通过人机交互解决信息处理和人机界面的问题。
2 Hadoop工作原理
2.1 Hadoop基本架构
Hadoop主要是处理大数据的开源式平台,其具有海量存储、成本低廉、效率高以及牢靠性高等特点,因此可以应用到物联网平台的大数据处理[3]。Hadoop的两大主要元件是HDFS和MapReduce。前者的工作主要是存储海量的数据,其存储方式是分布式的;后者主要是计算处理这些大数据,其计算方式也是分布式处理[4]。为了更好的理解这两个元件的体系结构及其工作流程,架构分析如图1所示。
图1 Hadoop体系结构以及工作流程
2.2 HDFS分布式文件系统
HDFS是一个分布式文件系统,其具有高容错性和低廉的成本。HDFS实现的主要目标有以下几点。①以最快的速度检查出硬件异常情况并且及时解决异常。②进行批量化处理文件,提高效率节省时间,重点强调数据的吞吐量。③支持大数据集,不仅可以处理聚集式的高宽带数据,而且可以支持成百个节点的单个集群。④其访问模式是“一次输入,多次读取”,保证了数据访问吞吐量的高效性。⑤HDFS设计可实现不同平台间的互相转移,因而促进了大数据程序平台的广泛应用。
HDFS以主从(Master/Slave)结构为主,HDFS集群由一个NameNode和许多个DataNode组成。NameNode为主服务器,主要负责管理存储文件以及访问客户端操作文件。DataNode主要负责管理存储数据,也就是存储小的数据块。
2.3 MapReduce分布式计算框架
MapReduce的两大阶段主要是Map阶段和Reduce阶段。Map阶段构成:①输入数据格式解析(InputFormat);②输入数据处理(Mapper);③数据分组(Partitioner)。而Reduce阶段构成:①数据远程拷贝;②数据按照KEY排序;③数据处理(Reduce);④数据输出格式(OutputFormat)。
其工作流程如下。
⑴ 數据预处理:从HDFS数据库中读取数据,分析输入数据格式。
⑵ MAP映射任务:读取自己所属的文件分片,将每一条数据转换成键值对,运用MAP函数得到新的键值对并将其存储到中间节点上。
⑶ 定位缓存文件:将上一步得到的键值对的存储位置信息发送给Reducer。
⑷ Reduce阶段:通过位置信息读取文件,将所有数据进行重新排序并且合并同一KEY值,再通过Reduce函数化简,最后输出最终结果值。
3 数据挖掘算法分析
MapReduce架构具有简易性、效率高、靠谱性以及并行的运算方式等特点,同时MapReduce架构的运用广度也有局限性,不能实现全部算法的应用。因此,最关键的是此算法需满足可伸缩性的特点,这里采用三类算法:分类算法、聚类算法和关联规则算法,研究改造并且能够应用到MapReduce架构中。
3.1 朴素贝叶斯分类算法
朴素贝叶斯分类算法[5](Naive Bayesian classification,NBC),即将所有数据进行分类,先以一个特定的点定义好类别,建造一个分类器,其作用是将待定的数据先通过映射,划分到确定的类别。简言之,首先需构建一个分类器,获得某个已知样本的先验概率的前提,再运用贝叶斯公式:
⑴
得出一个后验概率,最后确定后验概率最大的类是对象所属的类。
朴素贝叶斯分类算法采用的是扫描式方式,其算法操作如下:
⑴ Main函数:读取数据集;
⑵ Map函数:计算离散属性取值的总和、其连续属性的平均值μ以及标准差δ;
⑶ Reduce函数:整合输出统计值;
⑷ Main函数:由步骤3的结果生成分类器。
3.2 K-modes聚类算法
K-modes聚类算法[6],即先将对象进行聚集划分成不同的类别和子集,通过静态分类的方法将相似的成员对象分为一类,以区别于其他簇中的对象。由于这种方式不需要进行人工标注处理,因而具有一定的自适应性即无需看管监督的算法。
K-modes算法不仅其算法思想容易实现,而且本身简单易用,因此成为最常用的聚类算法之一。K-modes算法是K-means算法基础上的延伸,不仅可以处理数值型数值,也可以处理分类属性型的数据,这是一个大的改进。K-modes算法可以很好的处理数量少的数据集,同时也可以高效处理庞大的数据集,其算法时间复杂度为O(tnkm),共同决定于迭代数t,数据集中对象数n,划分子类数k,以及属性数量m。K-modes算法中modes可直接描述每一个类的属性和特性,便于解析聚类结果。K-modes算法是收敛的。
以上是传统的K-modes算法的优点,其也有缺点。K-modes算法虽然是收敛的,但是Huang证明其只能在局限收敛中实现最小值,在全局收敛中实现不了。聚类算法的好坏取决于相异度度量方法, K-modes算法在展示两者的差异性不占优势。聚类算法中modes决定了结果的精确度,而此算法的modes不是独一无二的。因此,采用改进的K-modes算法。
K-modes聚类算法[7]采用迭代式的方式,其算法操作如下。
⑴ main函数:读取数据集中的初始中心点。
⑵ map函数:主要计算差异值、众数和目标函数值。
⑶ main函数:最后读取和判断目标函数值,若连续两轮的结果无变化,则结束这次过程,得出中心点,反之需要进行下一轮的迭代进程。
因此,聚类算法的应用能够将类内对象的相似性达到最大,类间对象的相似性尽量的小,从而可以更好的区分对象间的差别。
3.3 ECLAT频繁项集挖掘算法
关联规则挖掘算法的主要作用是找出不同项集之间的关联性,并且应用到大数据中。例如,顾客去便利超市买东西,观察分析顾客的购物车,会发现商品间的联系。因而调整商品的摆放位置,可以更好的促销商品。ECLAT算法[8]其本质是一种频繁项集挖掘算法,其异于传统的数据结构,是基于垂直数据结构格式。其工作流程如下:首先全面扫描所有数据,然后将数据的格式展示为垂直的,最后得到一个项集的长度值,即项集支持度的计数。依据算法Apriori的特性,从K=1开始,对频繁K项集的交进行计算,构建备选的K+1项集并且选出第K+1项时,反复操作,将K的值加一,当不能挖掘出频繁项集便结束这个工作。
ECLAT频繁项集挖掘算法也是采用迭代式,其算法操作如下。
⑴ Main函数:读取上一轮的挖掘数据。
⑵ Map函数:存储垂直K项集。
⑶ Reduce函数:对垂直K项集挖掘出频繁K项集。
⑷ Main函数:读取最终的Reduce函数中的结果,如果不是空值,继续进行下一轮挖掘,反之就结束此程序。
因此,ECLAT算法的最大优势是更快地找出数据间的关联性,为数据挖掘提供了很好的解决方法。
4 应用前景
随着物联网技术的发展,其能够广泛应用到各行各业[9]。例如,农业物联网即物联网技术应用于农业领域,从农业的生产、经营、管理到服务都可以提供支持,通过农业信息感知设备,提高农业生产的品质与效率。智能交通中,将物联网技术应用到交通运输领域,实现交通运输的智能化,提高国家的整体实力和科技水平。城市安全管理是将物联网技术应用到公共安全领域。例如城轨站点安全监测,人员密集的公共场所安全监测,桥梁建筑物安全监测,以及特定危险品的生产场所的安全监测等。同时,物联网可以应用到石油行业中,从油气勘探、钻井、油田生产到管理运输和炼油化工等方面,物联网技术大大提高了生产和管理效率,从而增强我国石油行业的可持续发展能力和国际影响力。
5 结束语
本文通过Hadoop平台挖掘分析物联网数据,并且将朴素贝叶斯分类算法、K-modes聚类算法以及ECLAT频繁项集挖掘算法应用于MapReduce架构。结果表明,这三类算法的运用可以更高效的处理大数据,从而获取更有价值的信息。优化物联网数据挖掘分析方法,进而促进物联网产业的发展。物联网作为新一代信息技术的典型代表,不仅渗透到农业生产、智能交通、公共安全、石油产业等领域,而且对将来的经济发展和社会生活都将产生深远影响。物联网的挖掘分析方法在实际运用中还需要进一步探索与研究。
参考文献(References):
[1] 赵兴芝.计算机物联网技术发展及应用[J].电子世界,2017.1.
[2] 刘云浩.物联网导论[M].科学出版社,2015.
[3] 陈娟.基于Hadoop网上购物系统算法的分析与实现[D].江
西农业大学硕士学位论文,2015.
[4] 任仁.Hadoop在大数据处理中的应用优势分析[J].电子技术
与软件工程,2014.8.
[5] 卫洁,石洪波,冀素琴.基于Hadoop的分布式朴素贝叶斯文
本分类[J].计算机系统应用,2012.2.
[6] 孙吉贵,刘杰,赵连宇.聚类算法研究[J].软件学报,2008.19
(1):48-61
[7] Gan G,WU J, Yang Z. A genetic fuzzy k-modes algorithm
for clustering categorical data[J]. Expert Systems with Applications,2008.36(2):1615-1620
[8] 張玉芳,熊忠阳,耿晓斐,陈剑敏.Eclat算法的分析及改进[J].
计算机工程,2010.23(36).
[9] 侯赟慧,岳中刚.我国物联网产业未来发展路径探析[J].现代
管理科学,2010.2.