1、引言随着信息技术的不断发展,信息系统及数据库系统在许多领域得到了广泛应用 1。从相对宏观的角度分析,数据挖掘本身在学科构成上具有较强的交叉性 2,正是因为这一特点,使得其能够在种类繁多的数据中实现对隐藏信息的有效提炼 3。将数据隐藏信息转化为一种可以被理解的结构形式,可以对相关工作的开展起到重要的指导作用 4。如王营等通过对 F P-g r o w t h 算法进行改进,提出了一种以售后服务数据为目标的数据挖掘方法,提高了数据挖掘的全面性,使运算效率存在提升空间 5。李瑞峰等以具有离群属性的数据为研究对象,通过将加权深度森林融入到数据挖掘的过程中,实现对数据的有效分类 6。但是,上述文献涉及的
2、方法难以满足大规模数据的计算需求。李珺等通过对 K-m e a n s 算法进行改进,以具有关联规则的数据为研究目标,设计的数据挖掘算法,提高了算法的运算效率 7。但受数据规模的影响,该算法与实际需求之间仍存在差距。在数据挖掘算法可靠性相对完善的背景下,运行效率是现阶段数据挖掘算法需要重点攻克的难题之一 8。为此,本文提出基于 h a d o o p 平台的数据挖掘算法,借助于h a d o o p 平台的并行属性,使得算法能够实现多节点并行运算,以此提高其计算效率。一、数据挖掘算法设计(一)基于 hadoop 平台的数据挖掘流程设计在传统的数据挖掘算法中,主要是采用基于深度优先的策略来构建数
3、据分析决策树。这种方式需要优先为在每个节点创建对应的子树,在此基于 hadoop 平台的数据挖掘算法实证研究*高飞(广西现代职业技术学院,广西河池5 4 7 0 0 0)摘要 在数据挖掘过程中,由于决策树在分析阶段存在单一递进关系,会导致数据的分析效率不高。针对这一问题,文章提出了基于 hadoop 平台的数据挖掘算法,并展开了相关实证研究。首先,采用广度优先策略对数据集挖掘算法决策树展开设计,将节点之间的最小加权欧氏距离作为划分基准,利用 hadoop 平台中的 MapReduce 程序实现对决策树节点分枝操作的并行处理,以此建立决策树的层级关系,实现对待处理数据集的逐层分析。然后,对数据挖
4、掘算法的 Map 函数展开设计,以待分析数据键值对与分类基准参量之间的关系实现对数据的分类挖掘。测试结果表明,该算法的运算效率和加速比均处于较高的水平,能够满足海量数据的处理需求。关键词 hadoop 平台;数据挖掘算法;实证研究 中图分类号 TP391 文献标识码 A 文章编号 1008-7656(2022)06-0024-05*基金项目 2022 年度广西高校中青年教师科研基础能力提升项目“基于 Hadoop 的计算机类专业课程云平台设计与实现”(编号:2022KY1436)收稿日期 2022-10-29第 33 卷第 6 期广西广播电视大学学报Vol.33 No.62022 年 11 月
5、JOURNAL OF GUANGXI OPEN UNIVERSITYNov.202224第 33 卷第 6 期广西广播电视大学学报Vol.33 No.62022 年 11 月JOURNAL OF GUANGXI OPEN UNIVERSITYNov.2022基础上再创建对侧的子树结构。这就意味着在实施对目标数据的分析计算阶段中,需要对同一节点待处理数据集进行多次、重复的读取和处理。这不仅增加了算法执行期间的计算时间,同时也影响了算法的执行效率,使得对应的时长增加。针对上述问题,本研究在利用 h a d o o p 平台进行数据集挖掘算法设计阶段,对于决策树的构造采用了广度优先策略,通过建立层级
6、关系实现对待处理数据集的逐层处理,这样既可以减少对磁盘读取的次数,同时也可以降低算法执行前进的运行负载。以此为基础,本研究利用 h a d o o p 平台设计的数据挖掘算法执行流程主要从两个角度入手。首先,要确保执行数据挖掘算法阶段按照逐层构造的方式对决策树进行分析,其次,在实施对数据挖掘算法对应决策树节点的分枝操作处理时,将 h a d o o p平台的 M a p R e d u c e 程序调用到其中,建立算法运算期间的并行关系。图 1 为本研究设计的具体数据挖掘算法执行流程。按照图 1 所示的数据挖掘算法的执行流程。在执行对每一轮数据的迭代计算前,本研究将上一层节点的划分规则写入到
7、h a d o o p平台的 H D F S文件中,此时的数据挖掘算法各个层级的计算结果将以并列的方式存在。在此基础上,再调用h a d o o p平台的 M a p R e d u c e 程序,计算出 H D F S文件中数据挖掘算法决策树各节点对相应数据属性的输出结果。图 1基于 hadoop 平台的数据挖掘算法执行流程图需要特别注意的是,由于决策树本身已经构建了对应的层级关系,因此 M a p R e d u c e 程序在对输出结果进行存储时,也要按照层级关系逐层存储。以此为基础,在具体的信息存储阶段,为了适应 h a d o o p 平台的读取模式,本研究将其转化为H a s h
8、表。最后,h a d o o p 平台以 H a s h 表为基础,结合常规的 N维空间欧式距离计算公式,根据分支属性的权重参量,计算出每个节点的最佳分枝属性,过程如下:(1)其中,dx i x j表示根据 H a s h 表计算出的节点i和j节点对应分枝属性的加权欧氏距离,xi和xj分别表示节点i和j节点对应分枝属性参量,表示分支属性的权重参量,n表示数据挖掘算法分支节点的总量。结合数据挖掘的精度要求,本研究将加权欧氏距离的最小值 m i ndx i x j作为分枝操作的基准参量,实施对决策树节点的分枝处理。通过这样的方式,实现对数据挖掘流程的设计,为挖掘算法在具体运行期间的并行运算提供有效
9、保障。(二)基于 hadoop 平台的数据挖掘算法 Map设计对于数据挖掘算法 M a p 阶段的设计,本研究首先按照决策树中各个层节点对应的划分条件对待处理的数据进行划分。假设待分析的数据集为S,通过决策树分支处理,生成的叶子节点的训练样本数据集为S,那么,根据条件概率,按数据属性特征划分在同一层级的节点,过程如下:(2)其中,Sm表示第m层级的节点构成。需要注意的是,为了在算法执行阶段出现节点交叉或节点重复计算的情况,本研究为Sm建立了约束条件,及任意层级的节点构成不存在包含关系,通过这样的方式确保各个层级节点之间没有交集。25在此基础上,本研究对数据挖掘算法 M a p 函数的设计是以单
10、个数据形式处理,以 键值对的形式输出,这就意味对于任意待分析的数据,利用 M a p函数对其的处理方式可以表示为:(3)其中,M(Sm)表示数据挖掘算法的 M a p函数,Sm表示输入的单个待分析数据参量,dm a x表示决策树的最大加权欧氏距离,ds m表示第m层级加权欧氏距离,通过这样的方式,计算得到第m层级输出的待分析数据对应 键值对具体参量。根据数据挖掘算法各个节点输出 键值对的违约情况即可实现对其对应数据的分类。其具体的计算方式可以表示为:(4)其中,P表示设置的数据分类基准参量,其具体的取值结果与数据的实际属性和分类标准为基础设置。在式(4)中,对于分类结果的计算是以单一指标为基础
11、进行的,结合实际的数据处理需求,可以对P值进行适应性调节,包括其取值范围、大小以及数量,以此来确保数据分析的结果能够与实际分析需求之间具有较高的契合度。通过这样的方式,数据挖掘算法决策树能够实现对数据的分级并行处理,提高分析的效率。二、应用测试与分析为进一步分析本文设计的基于 h a d o o p 平台的数据挖掘算法的设计执行效果,设计了如下应用测试过程。(一)测试环境准确在本研究构建的测试环境中,对应集群的计算机器数量为 4 台,为每台计算机硬件配置了千兆以太网,以此满足其运行的需求,对应的 C P U参数信息为 I n t e l 8 C o r e(I M)i 5-2 4 5 0 M
12、4.0 G H z。考虑到参与测试数据规模较大,在 8.0 G BD D R 3 内存的基础上,为计算机搭载了大小为 5 0 0 G的普通硬盘装置。其次就是对测试环境软件的设置,本研究以 r e d h a t 1 0.0 操作系统作为测试运行的主体,利用 J a v a _ 1.8.0 _ 1 2 实施对相关逻辑指令的编码,结合 H a d o o p 2.5.0 和 H B a s e 0.9 4.2 3 共同构建测试环境的框架结构。在对 H a d o o p 云计算平台进行具体搭建的过程中,本研究将参与测试的 4 台计算机中的一台作为 N a m e N o d e 节点,其余则作为
13、D a t a N o d e 节点,并且为了降低测试节点的时间开销,为其配置了s s h,并设置了无密码登陆机制,在此基础上为其配置 c o r e-s i t e.x m l、h d f i s-s i t.e x m l、m a p r e d-s i t e.X m l以此满足测试阶段对数据的处理需求。在运行阶段,通过启动 N a m e N o d e 进程使得 s h H a d o p/b i n/s t a t-d f s.s hs t a r t 脚本能够在主节点上顺利运行,对应的D a t a N o d e 节点运行 D a t a N o d e 进程。(二)测试数据准
14、备在测试数据准备阶段,为了保障测试结果的可靠性,降低由于测试数据异常对此测试结果的影响,本研究以机器学习网站(h t p:/f t p.i c s.u i c.e-d u/p u b/m a c h i n e-l e a r m i n g-d a t a b a s e s/i r i s)中 的 权 威实验数据作为本文测试的数据信息。其中,数据集中包含元素的总量为 2 1 0个,根据元素类型可以将其划分为三大类,对应每个类别中包含元素数量为 7 0 个。在此基础上,本研究结合海量数据挖掘算法的测试需求,按照不同类别数据的实际维度信息,利用代码对上述数据进行拓展处理,生成了 3组测试数据集
15、,对应的数据集大小及维度:测试数据集 1的数据规模为 1 0 0.2 6 M,维度为3 0;测试数据集 2 的数据规模为 5 0 0.3 3 M,维度为 4 0;测试数据集 3的数据规模为 1.5 2 G B,维度为 5 0。(三)评价指标设置在对算法的执行效果进行评价阶段,本研究结合数据挖掘的实际需求,分别以分类运算的时间开销以及加速比作为评价指标。其中,分类运算时间开销主要算法计算开始执行的时刻到结束的时刻之间的时间差,其直接体现了算法的运算效率,具体的计算方式可以表示为:(5)其中,t表示算法执行分类运算的时间开销,Te表示算法开始执行运算的时间参量,Ts表示算高飞/著基于 hadoop
16、 平台的数据挖掘算法实证研究26第 33 卷第 6 期广西广播电视大学学报Vol.33 No.62022 年 11 月JOURNAL OF GUANGXI OPEN UNIVERSITYNov.2022法完成运算的时间参量。按照式(5)所示,在以相同测试数据集进行分类处理时,算法的时间开销越小,表示算法的运算速度越快,对应的运算效率越高。其次就是算法的加速比,其主要是指在对同一个测试数据集进行处理时,单计算节点和多节点并行对应的时间开销比值。其直接体现了算法的并行能力,具体的计算方式可以表示为:(6)其中,a表示算法的加速比,td表示单个运算节点执行运算的时间开销,tb表示运算节点集群下执行运算的时间开销。根据式(6)可以看出,算法的加速比越大,表明其在处理大规模数据阶段的性能越好。(四)测试结果与分析在上述基础上,本研究在测试结果引入了对照组,分别以文献 6 中提出的以加权深度森林为基础的数据挖掘算法和文献 7 中提出的 以改进K-m e a n s 为基础的数据挖掘算法作为对照组的应用算法。在此基础上,分别对比三种算法的执行效果。其中,得到的分类运算的时间开销如表 1 所示。从表