基于Hadoop平台的数据分析和应用

2019-11-19 06:40李文航余恒奇
微型电脑应用 2019年11期
关键词:贝叶斯朴素权重

李文航, 余恒奇

(广东电网有限责任公司 清远供电局, 清远 511515)

0 引言

随着互联网时代的发展,数据信息呈现出爆发式的增长。电子商务、社交媒体、电子文档等信息表现出数据流大、存储分散的特点,而传统的计算机架构已经很难满足目前的数据处理需求[1-3]。数据挖掘技术融合了数理统计[4-5]、人工智能[6]等学科,实现了从海量数据中提取有价值的信息,为企业和社会发展提供更大价值[7-10]。Hadoop平台作为一种商用计算机集群,具备了很强的调度能力、计算能力,以及数据处理和存储能力,能有效解决有效数据的挖掘[11-14],因此,基于Hadoop平台对半结构化和非结构化的文本信息进行挖掘和管理,能满足对大数据的深入挖掘和分类应用。

1 Hadoop平台

1.1 Hadoop平台概述

Hadoop是基于一种分布式系统基础架构设计的数据管理平台,在Hadoop集群中,其中一个主控节点管理着集群的运行,并协调从结点来实现数据计算功能[15]。Hadoop系统初始核心组件主要为MapReduce并行框架和HDFS分布式文件系统,经过发展,目前已经集成了HBase分布式数据管理系统、Sqoop关系数据交换工具以及各类数据处理工具,成为一个大型数据处理生态群[16-18],如图1所示。

图1 Hadoop生态系统

HDFS:作为Hadoop系统的分布式文件系统基础,具有高容错、高扩展性和可靠性特点,采用HDFS可以满足用户利用较低的硬件成本来部署设备[19]。HDFS的主-从结构包括一个NameNode主节点以及多个与之相连的Data-Node数据节点。NameNode主节点对系统中的所有文件目录结构和文件,数据库及位置信息进行管理,Data-Node数据节点主要处理具体的读写任务。

MapReduce:作为一类并行框架设计,MapReduce采用键值方式处理数据输入方式,将数据任务分为Map任务和Reduce任务。将Hadoop提交的作业分为多个与Map任务相对应的等长数据块。Map任务对输出的数据进行序列整理后分发给Reduce任务进行处理,并形成最终结果。

HBase:是基于HDFS建立的分布式数据库,能实现数据的海量存储。HBase采用列式存储,通过关键字和时间戳索引和查询,并对数据的增、删、改等快捷操作。

Hive:一种数据仓库处理工具,主要实现对HDFS和HBase数据的管理和存储。采用Hive工具应用SQL语句进行分析、查询,并通过转化为MapReduce程序执行应用功能。

1.2 Hadoop平台运行机制

Hadoop采用主节点运行集群的管理方式,主节点执行的管理功能包括节点调度、存储、计算,从节点主要负责数据计算存储功能。为快速发现集群中节点是否存在故障,采用主节点对从节点的定期检测机制,主节点向从节点发出状态请求后,若未接收到从节点的答应,则判定该从节点失效。在HDFS中,NameNode管理主节点,DataNode管理数据存储从节点。MapReduce能高效调度从节点,并利用连接数据库执行计算,从而提高数据分析的运算效率。在Hadoop平台,JobTracker和NameNode分布于相同主节点服务器中,为避免负载过重导致系统不稳定,也可将两个主节点部署在各自独立的服务器,而负责数据存储计算功能的TaskTracker和管理数据存储从节点的DataNode通常都分布于相同从节点服务器[16]。

2 基于Hadoop平台的数据分类算法

Hadoop在进行分类算法中,平台接收到用户输入的作业并给每一个作业分配单独的作业号,作业服务器收到平台请求后,构建结构信息并传输给任务器执行,HDFS运用分类算法对作业进行训练集,JobTacker完成所有任务后将分析结果反馈给用户,算法执行完毕。

2.1 传统朴素贝叶斯分类算法

分类算法通过训练和测试将定义的数据类别构造分类器,首先计算对象先验概率,然后引入贝叶斯公式实现对对象的后验概率,采用分类器执行待分类样本的概率计算作为选择对象的属性类依据,将其归入最大概率类中[20]。

朴素贝叶斯分类法(NB)作为Hadoop中应用广泛的分类算法,是一种基于概率分析算法[17]。贝叶斯分类算法中基于假定为基础,即:一个给定的类中属性均是独立的,类的决策属性受的条件属性均相同[21]。算法的具体过程为:

数据样本X={x1,x2,…xn)为n为特征向量,其中xi为第i个度量;未知样本Y1,Y2,…,Ym为m类向量,将样本X随机分配给Yi,根据条件概率P(Yj|X),1≤j≤m,j≠i的贝叶斯公式(1),

(1)

可知当P(X|Yi)P(Yi)有最大值时,条件概率取最大值,采用式(2)计算如式(2)。

(2)

上式中P(X)为确定值,P(Y)利用训练记录计算比率求取。采用式(3)计算分类数据分类器类的后验概率:

(3)

从朴素贝叶斯分类算法可以看出,该算法思路简单但分类效率高效,且算法时间和空间的复杂度较小[22]。在实际应用中,即使未能满足所有属性的类独立条件也难取得良好的分类精度。但该算法需要假设类之间是相互独立的,很难符合现实情况,且算法需要先从训练集样本中得到相关概率,因此训练集会对样本分类造成影响,尤其是训练样本集规模较大时,会导致算法开销增大。

2.2 基于改进的朴素贝叶斯分类算法

上述分析可以看出,朴素贝叶斯算法时在假定类独立基础上进行计算的,很难满足实际情况。为解决朴素贝叶斯算法假定类条件独立不存在所引起的分类问题,通过加权方式进行改善,即假设wk为属性Ak的权重系数,则改进的WNB算法采用如下的式(4)表示。

(4)

上式中,wk为计算权重系数,分别应用wk1和wk2平均值作为最终的wk值。下面分析wk1和wk2两种求解方式。

wk采用相关系数法计算权重系数。假设条件属性为X,决策属性Y,相应的数学期望分别为E(X)和E(Y),协方差为Cov(X,Y)=E(XY)-E(X)(Y),则确定wk1取值为式(5)。

(5)

wk1越大,则条件属性X对决策属性Y影响越大,反之则越小。

wk2采用相关概率方式计算权重系数。假设存在属性Ak及对应的值ak,属性Ak取值ak数目表示为Num(Ak=ak),属性Ak取值ak且为类Ci表示为Num(Ak=ak∧Ci),则wk2表示为式(6)。

(6)

通过对属性值进行加权处理后,可以降低假设类条件独立的影响。对于影响决策属性较大的赋予较大权重,便能避免条件属性对决策属性影响一致性假设,采用两种不同的选择权重系数法均值处理,保证了权重系数的合理性,有效提高分类精确度,改良后的朴素贝叶斯计算流程,如图2所示。

从图2可以看出,基于改良后的加权朴素贝叶斯算法在执行过程中,采用训练样本集T1训练WNB分类算法,运用相关系数法获得权重系数wk1,运用相关概率获得权重系数wk2,并求取均值,最终获得权重系数wk,加入权重系数后,使用训练过的WNB分类算法对训练样本集T2分类训练,并利用式(4)获得分类结果。

图2 改良后的朴素贝叶斯流程图

3 实例验证

本节基于Hadoop云计算平台进行算法的对比分析。Hadoop平台运行在三台主机,随机选定其中一台主机为主节点,其余主机则做为从节点。三台主机均在Linux上运行,Hadoop集群信息如表1所示。

表1 Hadoop集群信息表

试验数据采用UCI数据集,共分为Poker Hand和Skin Segmentation数据集,具体的数据信息如表2所示。

表2 数据集基本信息表

测试样本从中随机抽取,本文中分别抽取1万、6万、12万、30万、80万个测试实例,进行算法的准确度对比、处理速度对比。

基于传统朴素贝叶斯算法(NB)和改良后的加权朴素贝叶斯算法(WNB)在数据训练中的处理速度和处理准确率对比分析,如表3所示。

表3 分类算法性能比较

从表3中可以看出,WNB分类算法准确率高于NB算法,这是由于多方加权后的算法优化,提高了准确率,同时当测试实例较大时,采用WNB算法的准确来依然保持很高的准确率,而传统的NB算法则出现下降。比较算法的处理时间可以看出,WNB算法也明显优于NB算法,且测试实例数量越多,则采用WNB算法的处理时间越短,即WNB在大数据处理方面具备更快度速度优势,而在数据量相对较小时,则这种速度差异相对较小。

4 总结

Hadoop平台作为开源计算机集群系统,具有成本低、效率高、可扩展优势,能快速处理海量数据,成为大数据领域发展方向。本文在对Hadoop平台数据挖掘算法应用分析基础上,提出了一种改良的加权朴素贝叶斯算法,并在实例中进行验证,研究获得的主要结果有:

(1)通过引入加权分析法对朴素贝叶斯算法进行改进,将计算权重系数对属性值进行加权处理,降低假设类条件独立的影响,采用相关系数法和相关概率法两种不同的选择权重系数法均值处理,保证了权重系数的合理性,有效提高分类精确度。

(2)改良的加权朴素分析法在进行大规模数据测量中,具备很高的分类算法准确率和较快的分类速度,但在测试小数据样本时不能很好的体现优势,因此,该算法在大数据分析中具备了很高的数据挖掘分类优势。

猜你喜欢
贝叶斯朴素权重
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
隔离朴素
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
权重常思“浮名轻”
朴素的安慰(组诗)
他是那样“笨拙”和朴素——30多年后,我们为什么还需要读路遥?
最神奇最朴素的两本书
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹