基于大数据集的动态数据库关联挖掘研究

2021-12-23 12:24刘张榕
微型电脑应用 2021年12期
关键词:历史数据项集关联

刘张榕

(福建林业职业技术学院 信息工程系,福建 南平 353000)

0 引言

数据库种类可以按照有效性,分为静态数据库、动态数据库和实时数据库3种,在检索数据库中的数据时,大多是从静态数据库中挖掘数据。但数据库的实时性,又使数据库处于一种动态变化中,不断在数据库中积累新的数据,此时,采用挖掘方法挖掘到的静态数据库数据,则会因为数据库数据的更新,出现知识失效问题[1-2]。所以,需要研究动态数据库数据挖掘方法。

目前,国内外对动态数据库挖掘也有许多研究,文献[3]提出了多域分布式数据库的电能质量扰动事件记录关联规则挖掘,采用移动时间窗技术实现扰动数据预处理,然后在考虑数据库更新的情况下,提出一种分布式协同算法,该算法通过交换各数据库间的局部频繁项目集,实现扰动数据关联模式分布式挖掘。文献[4]设计了基于聚类优化的大型网络数据库挖掘系统,该搭建数据采集所需的传感器节点结构,选择CC3200作为主控芯片,在原有的电路中引入射频通信电路,实现数据的无线传输。在此基础上,对数据库中数据进行预处理,利用优化后的聚类算法和软件程序实现数据挖掘,至此系统设计完成。

针对上述存在问题,本文提出基于大数据集的动态数据库关联挖掘研究。

1 研究基于大数据集的动态数据库关联挖掘方法

在动态数据库中,会存在历史数据和新增数据两种,因此,此次研究动态数据库关联挖掘方法,将选择静态挖掘与动态挖掘相结合的方式,先挖掘动态数据库中的历史数据,再挖掘动态数据库中的更新数据。

1.1 动态数据库数据存储

在大数据背景下,采用大数据集中的分布式计算,分布式存储动态数据库中的历史数据,需要将动态数据库中的原始大数据分割成多个子数据集,大量的小文件则需要合并为一个子数据集,从而提高数据存储效率。此时,需要采用并行化技术统计方式,优化每一个子数据集中的数据量,并将数据的空间与时间复杂度记为O,单节点中分片数据量记为D,则数据的分布式存储过程,如图1所示。

图1 数据分布式存储过程

从图1中可以看出,采用分割的方式将合并的小文件和分割的子数据集存储至各个节点中,通过并行化统计,判断各个节点数据的支持度,从而去除不满足支持度的数据项,得到第一序列数据。完成数据分布式存储。

1.2 数据分组

根据图1得到的第一序列数据,需要进行数据修剪重排分组和计算量预估与均衡化分组。

(1)数据修剪重排分组。对于动态数据库中的原始数据,按照图1得到的第一序列数据,进行修剪排序,即删除原始数据中不满足支持度阈值的数据项,修剪后的数据依照支持度的降序排列,其数据修剪重排分组具体过程如图2所示。

图2 数据修剪重排分组过程

图中,〈w,p,v,m,s,n〉表示数据集中的一条数据[5]。将〈w,p,v,m,s,n〉数据按照第一序列数据进行修剪重排分组后,得到的数据为〈p,w,n,s,v〉,再按照数据的后缀进行迭代分割,采用Key-Value的形式表达,则得到{v,〈p,w,n,s〉},{s,〈p,w,n〉},{n,〈p,w〉},{w,〈p〉}。此时,得到的修剪重排分组后的数据需要再次存储至图1所示的节点中,进行计算量预估与均衡化分组处理。

(2)计算量预估与均衡化分组。计算图2得到的数据,需要根据第一序列数据中,存在的以e为后缀的数据位置,计算量数据C(e)的估值,如式(1)。

C(e)=log(P(e,F))

(1)

式中,F表示第一序列数据;P表示以e为后缀的数据位置,与第一序列数据之间的关联。此时,需要按照式(1)得到的关联值,将第一序列数据按照估值的降序顺序排列,其排列式如式(2)。

(2)

式中,Ti表示第i条原始数据;n表示包含e的数据总数目;P(e,Ti)表示第i条原始数据Ti中,所含有e的数据位置[6]。综合式(1)、式(2),即完成数据分组。此时,需要将计算量估值按照计算均衡化分配来进行分组归类。对此,假设需要计算的数据节点数为N,依据计算节点数N建立分组记录表gN,需要将每一计算节点都与分组数据相对应。则均衡化分组流程如下。

(1)将计算量数据C(e)的估值中的前N个节点数据保存至分组记录表gN中;(2)计算gN的各个节点数据集之和,作为gN的计算估值;(3)确定计算量数据C(e)的估值中存在的多余节点数据数目;(4)将多余节点数据依次加入gN中,并计算估值最小列表;(5)更新gN对应的计算估值。综合上述内容,即完成数据分组处理。

1.3 更新动态数据库新增数据

更新动态数据库数据时,需要构建数据树,并将数据树分为多个子数据树和总数据树,更新汇聚在节点的第一序列数据,为此设定如下更新动态数据库新增数据步骤。

1)更新动态数据库新增数据特征。假设动态数据库新增数据为d,其d中新增数据频繁项集记录为Qd,其频次数据记录为Qd={T1,T3},动态数据库历史数据为D,历史数据频繁项集记录为QD,其频次数据为QD={T1,T2}。将历史数据和新增数据累加,记录为QdD。此时更新动态数据库中的历史数据,会出现如下4种情形:(1)如T1∈Qd,T1∈QD,即T1在Qd和QD中,均属于频繁项集;(2)如T2∉Qd,T2∈QD,即T2仅在QD中属于频繁项集;(3)如T3∈Qd,T3∉QD,即T3仅在Qd中属于频繁项集;(4)如T4∉Qd,T4∉QD,即T4在Qd和QD中,均为非频繁项集[7-8]。

2)按照步骤1,即可完成一组动态数据库,历史数据更新。当所有历史数据完成更新时对数据进行统计,完成第一序列数据更新,并将其标记为FdD。

3)依据FdD来合并新旧数据树。其合并步骤如下。

(1)输入历史数据树和更新数据树;(2)建立数据树根节点;(3)从头建立数据树子节点;(4)遍历数据树节点;(5)从当前节点上溯至根节点路径;(6)重新排列动态数据库数据;(7)输出更新后的动态数据库数据。

综合上述3步,即完成动态数据库中新增数据的更新,此时,即可挖掘动态数据库中的新增数据。

1.4 挖掘动态数据库

1.4.1 挖掘动态数据库历史数据

基于多次分组后,节点得到了动态数据库历史分组数据,将其整理为〈key=word,value={g1,g2,…,gN}〉,将其作为数据挖掘的输入数据,则动态数据库的历史数据挖掘过程如图3所示。

图3 动态数据库的历史数据挖掘过程

图中,key表示动态数据库新输入数据的密钥。基于图3所示的动态数据库的历史数据挖掘过程,将各个节点数据分组,有序输入数据。每当有新数据输入时,都会发生改变,促进数据树进一步挖掘,待数据输出后会又重新计算其频繁项集,清空数据树,对动态数据库的历史数据进行重新挖掘。

1.4.2 挖掘动态数据库增量数据

基于更新动态数据库新增数据所分出的4种情形,需要采用不同的策略来挖掘动态数据库中的新增数据,所以,此次设计的挖掘过程如图4所示。

图4 动态数据库的增量更新数据挖掘流程

从图4中可以看出,情形1中的项集,在动态数据库的整体数据中,也属于频繁情况;情形2中的项集,需要计算其频次,并将Qd和QD的项集频次累加,即可确定数据的频繁性;情形3需要重新计算各个节点的数据,获取其在整体数据中的频次信息;情形4中的数据在动态数据库中并不频繁,没有数据可以挖掘。根据文中划分的3种情形,完成动态数据库中的新增数据挖掘后,将历史数据和新增数据结合,即可得到动态数据库中的关联数据。

2 实验论证分析

本次实验将采用对比实验的方式,以某系统的动态数据库软件作为此次实验的研究对象,在计算机上验证此次研究的动态数据库关联挖掘方法。并将此次研究的动态数据库关联挖掘方法记为实验A组;两组传统的动态数据库关联挖掘方法分别记为实验B组和实验C组。确定时间标准差计算式,改变基本窗口数量和支持度,对比3组方法的运行时间、内存使用情况和节点任务分配度。

2.1 实验准备

根据此次实验,选择了3组动态数据库关联挖掘方法,设计的方法运行环境如表1所示。

表1 方法运行环境

为验算此次研究的动态数据库关联挖掘方法,选择了动态数据库Mushroom数据源,设计实验数据流来比较3组方法。此次实验,将Mushroom数据源数据流的基本窗口数量设定为10,每个基本窗口中的事务数设定为200,则10个基本窗口的总数据数为2 000。在该数据流的基础数据上,让其随着时间衰减,增加基本窗口。其中,w表示基本窗口数。根据Mushroom数据源数据流窗口数据增加情况,设置的时间衰减权重函数如式(3)。

w(d)=1-50%*(d-1)

(3)

式中,d表示时间衰减标识,即可以将首次读入的基本窗口数据记为d=1,当窗口数增加时,其每一次增加的数据,增加值都为1。

依据上述内容,确定了该方法的运行环境和实验对象,选择Test Director软件测试工具,测试3组方法的运行时间、内存占用情况和时间标准差,并形成XRD图,对比3组动态数据库关联挖掘方法,其实验过程及结果如下。

2.2 实验结果

2.2.1 第一组实验

基于此次实验设置的实验对象,将基本窗口数据的支持度设置为10%,每增加一个基本窗口,都会Mushroom数据源数据流窗口数据增加情况,增加数据。此时,Mushroom数据源数据流窗口数据增加情况,改变基本窗口有效数据数目,测试3组方法运行时间,其实验结果如图5所示。

图5 相同支持度下,不同窗口数据运行时间比较图

从图5可以看出,在时间衰减权重函数作用下,实验C组的平均运行时间高达3 900 s;实验B组其平均运行时间依然达到了3 616.7 s;而实验A组在挖掘基本窗口中的数据时,运行时间波动最小,仅需450 s。由此可见,在同一支持度,不同窗口数据下,挖掘动态数据库数据,运行时间波动较小,方法运行速度较快。

2.2.2 第二组实验

基于上述结果,进行第二组实验,改变基本窗口的支持度,并将其首次支持数记为30%,对比3组方法,在挖掘窗口数据时,对处理器内存的使用情况。此后每隔10%,记录一次方法对处理器内存使用量。为保证实验的严谨性,将3组方法在首次支持度下,挖掘窗口数据对处理器内存的使用情况比较2次,分别为读入数据时给定的支持数据和更新支持度后的支持数据。其实验结果如图6所示。

图6 不同支持度下,方法内存使用量对比

从图6可以看出,不同支持度在挖掘数据过程中,处理器的内存占用量都在不断降低至固定值。实验B组所占用的内存在逐渐恢复平稳时,出现大幅度下降现象;实验C组和实验A组所占用的内存,都在同一支持度下逐渐走向平稳。由此可见,此次研究的动态数据库关联挖掘方法,在支持度不同的条件下,内存使用量偏低,在处理器存储方面的开销也较小。

2.2.3 第三组实验

基于第一组和第二组实验结果基础上,进行第三组实验,通过任务执行时间标准差,对比3组方法中的各个节点任务分配均度。为此假设3组方法的计算节点数量为N,第i个节点任务执行时间为ti,则获得节点任务执行时间的标准差σ为式(4)。

(4)

图7 不同支持度下,方法节点的时间标准差

从图7可以看出,在不同支持度下,实验C组的时间标准差出现了下降趋势,而实验A组、B组的时间标准差都出现了一定的上升趋势。由此可见,此次研究的动态数据库关联挖掘方法,受到支持度影响较小,可以均匀分配各个节点的计算量。

3 总结

综上所述,本文提出的基于大数据集的动态数据库关联挖掘方法,充分利用大数据时代下的大数据技术,研究动态数据库关联挖掘方法,优化动态数据库中数据的挖掘效率。但是,此次研究的基于大数据集的动态数据库关联挖掘方法,未曾考虑大数据时代网络数据的膨胀速度。因此在今后的研究中,还需深入研究基于大数据集的动态数据库关联挖掘方法,分析大数据时代网络数据的膨胀速度,研究出可以挖掘不同数据交互、数据共享等动态数据库挖掘方法。

猜你喜欢
历史数据项集关联
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
基于设备PF性能曲线和设备历史数据实现CBM的一个应用模型探讨
基于故障历史数据和BP神经网络的接地选线方案研究
“一带一路”递进,关联民生更紧
基于矩阵相乘的Apriori改进算法
不确定数据的约束频繁闭项集挖掘算法
奇趣搭配
基于Hadoop技术实现银行历史数据线上化研究
用好细节材料 提高课堂实效
智趣