CN101119302A - 一种挖掘事务数据流上最近时间窗口内频繁模式的方法 - Google Patents

一种挖掘事务数据流上最近时间窗口内频繁模式的方法 Download PDF

Info

Publication number
CN101119302A
CN101119302A CNA2007100531566A CN200710053156A CN101119302A CN 101119302 A CN101119302 A CN 101119302A CN A2007100531566 A CNA2007100531566 A CN A2007100531566A CN 200710053156 A CN200710053156 A CN 200710053156A CN 101119302 A CN101119302 A CN 101119302A
Authority
CN
China
Prior art keywords
node
data
frequent
tree
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007100531566A
Other languages
English (en)
Other versions
CN101119302B (zh
Inventor
李国徽
陈辉
杨兵
陈基雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2007100531566A priority Critical patent/CN101119302B/zh
Publication of CN101119302A publication Critical patent/CN101119302A/zh
Application granted granted Critical
Publication of CN101119302B publication Critical patent/CN101119302B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种挖掘事务数据流上最近时间窗口内频繁模式的方法,采用前缀模式复用方式的频繁模式树压缩存储数据流上最近时间窗口内的频繁模式,当流数据到达时,所包含的模式信息增量更新到频繁模式树上;同时应用时间衰减模型对历史事务数据所包含的模式支持数进行衰减,并据此将新近产生事务数据的模式同历史事务数据的模式区分开来,凸现出新事务模式的重要性;当用户提交模式查询时,该发明的方法能够立即响应查询,并输出数据流上最近的频繁模式。该方法与其它方法相比,具有响应时间快、模式挖掘的时间粒度精细等优点,同时可以根据需要来确保模式挖掘的覆盖率或者精度。

Description

一种挖掘事务数据流上最近时间窗口内频繁模式的方法
技术领域
本发明属于时态数据挖掘技术,具体涉及一种挖掘事务数据流上最近时间窗口内频繁模式的方法及系统。
背景技术
数据流是一类由高速到达的数据元素组成的无界数据序列。近年来,数据流广泛出现在各类应用中,例如:网络流量监控、金融数据管理、传感器网络数据管理、Web日志分析、移动对象数据管理、通信数据分析以及大型零售商业中交易日志管理。在这类应用中,发现事务数据流中的频繁模式具有重要的意义,例如:在网络流量监控中,对应于异常流量的频繁报文可能意味着存在网络攻击;在大量的零售销售记录中,频繁商品及其组合总是对应热门销售的商品以及它们之间的关联关系;在传感器网络数据管理中,发现传感器数据中的频繁模式可以有助于去估计那些丢失的数据值。
目前,大多数方法都是将传统的静态事务数据库频繁模式挖掘方法推广使用到数据流环境下。这些方法将滑动窗口模型应到数据流环境上,并将滑动窗口内的数据元素看作是静态数据集,并以此为处理的对象,使用传统的频繁模式挖掘方法来得到数据流各个分段上的频繁模式,进而获得数据流全局的频繁模式。这些方法中,数据的处理需要等待窗口内的数据积累,因此,响应用户查询请求的时间粒度比较粗糙,不能及时满足那些时间敏感的用户查询需要。
此外,大多数方法都没有将数据流上最近的频繁模式与历史上的频繁模式区分开来。然而对绝大多数应用而言,发现数据最近的频繁模式具有更加重要的意义。例如:在大型零售销售日志中,最近频繁的模式代表最近热门销售商品,它可以指导销售商及时调整营销策略和进行商品库存调整。而历史的频繁模式仅仅能说明商品销售的历史信息。因此在频繁模式挖掘中,非常有必要区分最近的频繁模式与历史的频繁模式的权重,为应用中的决策提供正确的支持。
J.H.Chang等人(“Finding recently frequent itemsets adaptively overonline transactional data streams”,information system,volume 31,issue 8,2006)提出了一种在线挖掘事务数据流最近的频繁模式的方法,该方法与本发明最为接近。该方法使用字典树动态维护数据流上最近的频繁模式,并采用时间衰减模型逐步衰减历史事务模式的支持数,由此区分历史事务的模式与最近产生的事务的模式;此外,该方法定期对字典树进行剪枝,使字典树上仅仅保存着数据流上最近的频繁模式。当用户提交查询请求时,该方法能够从字典树上输出数据流上最近的频繁模式。尽管如此,该方法还是存在如下缺陷:(a)该方法中的字典树没能有效地利用储存空间,空间利用率低下。(b)该方法采用的启发式方法维护字典树;而启发式方法需要产生大量的中间候选模式,当更新一个长度为L的模式时,需要产生2L个候选模式,并需要执行2L次查找与更新操作,因此字典树维护代价大。(c)该方法需要额外的存储空间来维护那些在当前不频繁而在未来时刻可能频繁的模式的详细信息;而数据流上不频繁模式的数量极其庞大,维护这些不频繁模式的历史信息所需要的代价巨大。(d)该方法在进行字典树剪枝时,需要遍历字典树上所有路径上的树节点,效率比较低。
发明内容
本发明的目的是提供一种挖掘事务数据流上最近时间窗口内频繁模式的方法,该方法具有存储空间的利用率高、无需产生中间候选模式、无需维护不频繁模式详细的历史信息、并能够在误差范围内有效地提高模式挖掘精度的特点。
本发明提供的挖掘事务数据流上最近时间窗口内频繁模式的方法,其步骤包括:
(1)根据用户输入的用户支持度门限θ与用户许可误差ε确定流数据窗口大小N与衰减因子f,
Figure A20071005315600091
f等于f1或f2,其中,
( θ - ϵ ) / θ 2 ( 2 N - θN - 1 ) ≤ f 1 ≤ 1
0 < f 2 < 2 ( &theta; - &epsiv; ) N / &lsqb; ( &theta; - &epsiv; + 1 ) N - 1 &rsqb; 4 ( &theta; - &epsiv; + 2 ) N - 3
式中,用户支持度门限θ的取值范围为(0,1),用户许可误差ε的取值范围为(0,θ);
(2)选定全序
Figure A20071005315600094
的排序规则;
(3)开辟频繁模式树的存储区和流数据缓存队列的存储区,并初始化频繁模式树与流数据缓存队列;其中,
频繁模式树用于动态存储数据流上最近时间窗口内的频繁模式,频繁模式树由模式树与频繁数据项表两部分组成;
模式树上每一个节点都包括节点名称、指向孩子节点的指针、指向兄弟节点的指针、活动数据窗口内的支持数、固定数据窗口内的支持数、包含该节点的最近事务ID的节点时间戳、指向同名下一个节点的指针;
频繁数据项表中的每一数据表项都由数据项名称和指向前缀模式树上同名的第一个节点的指针两个数据域组成;
模式树的每一个分枝上的节点及频繁数据项表上的数据表项均按照全序
Figure A20071005315600095
排列;
(4)当数据流连续到达时,根据流数据到达的顺序将其添加到系统缓存队列中,并根据流数据窗口大小N对缓存队列中的流数据进行分段;
(5)判断是否存在用户查询请求,如果存在,则转入步骤(10),否则,进入步骤(6);
(6)从缓存队列的头部提取流数据T,同时将T从缓存队列中删除;设流数据T=<a1,a2,…,ai>,且流数据T到达的时间戳记为tID;
(7)定义一个频繁模式树树节点的指针变量cur_Node,并设置cur_Node指向频繁模式树的根结点,然后将流数据T所包含的模式信息增量更新至频繁模式树上;
(8)判断流数据T是否为活动数据窗口中最后一个数据元素,如果是,则进入步骤(9),否则转入步骤(5);
(9)从频繁数据项表的头部开始依次读取频繁数据项,并根据该频繁数据项的指针查找频繁模式树上的同名节点,如果该节点的时间戳距当前时刻大于2N,则删除以该节点为根的子树,否则令该节点在固定数据窗口内的支持数等于其在活动数据窗口内的支持数,同时将该节点在活动数据窗口内的支持数置零;
(10)从频繁数据项表的尾部开始逆序读取频繁数据项,并计算该频繁数据项的支持度,如果其支持度大于等于θ与ε差,则采用模式增长的方法输出所有包含该频繁数据项的频繁模式。
与J.H.Chang等人的方法相比,本发明采用一种存储结构相对紧凑的树结构(频繁模式树)来压缩存储数据流上的频繁模式信息;并在不产生中间候选模式的前提下动态维护频繁模式树;当新的事务数据到达时,它所包含的模式直接增量更新到频繁模式树上,无需额外的存储空间来维护它们的历史信息;在频繁模式树剪枝时,仅仅需要遍历频繁模式树上的部分节点;此外,通过选取不同的衰减系数,本发明能够保证频繁模式挖掘的精度或者覆盖率。
附图说明
图1为本发明方法的流程图;
图2为频繁模式树存储结构图;
图3为频繁模式树增量更新流程图;
图4为向频繁模式树上插入新的树节点流程图;
图5为频繁模式树快速剪枝流程图。
具体实施方式
下面结合附图和实例对本发明作进一步详细的说明。
如图1所示,本发明方法的步骤包括:
(1)根据用户输入的用户支持度门限θ与用户许可误差ε确定系统参数:流数据窗口大小N与衰减因子f。
流数据窗口分为活动数据窗口和固定数据窗口两类:活动数据窗口表示正在接收流数据的流数据窗口,尽管窗口的存储容量为N,但窗口内实际保存的流数据元素的数量为L,且L≤N;固定数据窗口表示已经保存了N个流数据元素的流数据窗口。
流数据窗口大小设置为
Figure A20071005315600111
衰减系数f(0<f<1),f等于f1或f2,f1和f2取值区间由下式确定:
( &theta; - &epsiv; ) / &theta; 2 ( 2 N - &theta;N - 1 ) &le; f 1 &le; 1
0 < f 2 < 2 ( &theta; - &epsiv; ) N / &lsqb; ( &theta; - &epsiv; + 1 ) N - 1 &rsqb; 4 ( &theta; - &epsiv; + 2 ) N - 3
式中,用户支持度门限θ的取值范围为(0,1),用户许可误差ε的取值范围为(0,θ);
其中,衰减系数f1能满足模式挖掘结果的覆盖率为100%,而衰减系数f2能满足模式挖掘结果的精度为100%。
(2)选定全序
Figure A20071005315600114
的排序规则,例如:按字典序排列。
(3)开辟系统存储区,包括:频繁模式树的存储区和流数据缓存队列的存储区;并初始化频繁模式树与流数据缓存队列。
频繁模式树用于动态存储数据流上最近时间窗口内的频繁模式。频繁模式树由两部分组成:模式树与频繁数据项表f_list,其存储结构如图2所示。
模式树上每一个节点都包括八个数据域:
Name:节点名称
pFChild:指向孩子节点的指针
pNSibling:指向兄弟节点的指针
CCount:活动数据窗口内的支持数
LCount:固定窗口内的支持数
TID:节点时间戳(包含该节点的最近事务ID)
pNLink:指向同名节点的指针。
频繁数据项表f_list中的每一数据表项都由两个数据域组成:
Item:数据项名称
pHLink:指向前缀模式树上第一个同名节点的指针。
模式树的每一个分枝上的节点及频繁数据项表上的数据表项均按照全序
Figure A20071005315600121
排列。
(4)当数据流连续到达时,根据流数据到达的顺序将其添加到系统缓存队列中,并根据流数据窗口大小N对缓存队列中的流数据进行分段。
(5)判断是否存在用户查询请求,如果存在,则转入步骤(10),否则,进入步骤(6);
(6)从缓存队列的头部提取流数据T,同时将T从缓存队列中删除。流数据T=<a1,a2,…,ai>,且流数据T到达的时间戳记为tID;
(7)定义一个频繁模式树树节点的指针变量cur_Node,并设置cur_Node指向频繁模式树的根结点root;然后将流数据T所包含的模式信息增量更新至频繁模式树上,其步骤如流程图3所示,具体说明如下:
(7.1)将流数据T中的数据元素按照全序
Figure A20071005315600122
排列,记排列后的数据序列为T’=<a1’,a2’,…,ai’>。
(7.2)从T’中读取第一个数据元素,并赋值给aj’。
(7.3)如果aj’不为空,则进入步骤(7.4),否则转到步骤(7.10)。
(7.4)从指针cur_node所指向节点的所有孩子节点中查找与aj’同名的树节点。如果找到符合条件的节点,则进入步骤(7.5),否则转入步骤(7.6)。
(7.5)记查找到的与aj’同名的树节点为t_node;
(7.6)分别按照下式更新节点t_node的CCount计数器与时间戳TID,然后转入步骤(7.8);
t_node.CCo unt=t_node.CCo unt×f(T.tID-t_node.TID)+1
                t_node.TID=T.tID
(7.7)插入一个与aj’同名的新的树节点至频繁模式树,其步骤如图4所示,具体说明如下:
(7.7.1)创建一个新的频繁模式树树节点t_node,并设置t_node.name=aj’,t_node.TID=T.tID,t_node.CCount=1,t_node.LCount=0;
(7.7.2)将树节点t_node插入到频繁模式树上,使其成为cur_node的孩子节点;
(7.7.3)在频繁数据项表中查找与aj’同名的数据表项e,如果查找失败,进入步骤(7.7.4),否则转入(7.7.6);
(7.7.4)创建一个新的频繁数据项表的数据表项e,设置e.item=aj’;
(7.7.5)将数据表项e插入到频繁数据项表中,并保持频繁数据项表中所有数据表项按照全序有序;
(7.7.6)判断数据表项e的域e.pHLink是否为空;如果是,则进入步骤(7.7.7),否则,则转入步骤(7.7.8);
(7.7.7)设置e.pHLink=t_node;然后转入步骤(7.7.13);
(7.7.8)定义一个频繁模式树树节点的指针变量tmp_node;
(7.7.9)赋值tmp_node=e.pHLink;
(7.7.10)判断tmp_node->pNSibling是否为空,如果不为空,则进入步骤(7.7.11),否则转入步骤(7.7.12);
(7.7.11)赋值指针变量tmp_node->pNSibling=t_node;
(7.7.12)赋值指针变量tmp_node=tmp_node->pNSibling,并转入步骤(7.7.10)继续执行;
(7.7.13)插入与aj’同名的树节点结束;
(7.8)设置cur_node=t_node;
(7.9)从T’中读取aj’的下一个数据元素并赋值给aj’,转到步骤(7.3)。
(7.10)更新结束;
(8)判断流数据T是否为活动数据窗口中最后一个数据元素,如果是,则进入步骤(9),否则转入步骤(5);
(9)对频繁模式树进行剪枝;如图5所示,频繁模式树剪枝操作的详细步骤包括:
(9.1)从频繁数据项表的头部开始依次选取数据表项e;
(9.2)定义一个频繁模式树树节点的指针变量node;
(9.3)赋值node=e.pHLink;
(9.4)判断指针node所指向树节点的时间戳与当前流数据T的时间戳之间的时间间隔(T.tID-node->tID)是否大于2N,如果是,则进入步骤(9.5),否则转入步骤(9.6)
(9.5)删除以node所指树节点为根的子树,然后转入步骤(9.7);
(9.6)设置node->LCount=node->CCount,node->CCount=0;
(9.7)设置node=tmp_node->pNSibling;
(9.8)判断指针变量node是否为null,如果是,则进入步骤(9.9),否则转入步骤(9.4);
(9.9)判断e.pHLink是否为null,如果是,则进入步骤(9.10),否则转入步骤(9.11)
(9.10)将数据表项e从频繁数据项表中删除;
(9.11)判断是否到达频繁数据项表的尾部,如果是,则转入步骤(9.14);否则进入步骤(9.12);
(9.12)从频繁数据项表中提取数据表项e的下一个数据表项e’;
(9.13)赋值e=e’,并转入步骤(9.2);
(9.14)剪枝结束
(10)从频繁模式树上输出最近的频繁模式。从频繁模式树上输出最近的频繁的操作步骤说明如下:
(10.1)从频繁数据项表的底部开始依次读取数据表项e;
(10.2)按照下式计算频繁模式树上所有与数据表项e同名的树节点的支持数freq(e);
freq(e)=∑nodei.CCount×fT.tID-node i .TID
式中,nodei表示频繁模式树中与数据表项e同名的一个树节点,其中i表示nodei在频繁模式树上所有与数据表项e同名的树节点集合中的序号;
(10.3)如果freq(e)≥(θ-ε)N,则进入步骤(10.4),否则转入步骤(10.5);
(10.4)使用模式增长方法(具体参见:J.Han,J.Pei,Y.Yin.“Miningfrequent patterns without candidate generation”.In the Proceedings of the 2000ACM SIGMOD International Conference of Management of Data,pages1-12.(2000)。)从频繁模式树上输出所有包含与数据表项e同名数据元素的频繁模式;
(10.5)判断是否到达频繁数据项表的头部,如果是,则转入步骤(10.8),否则进入步骤(10.6);
(10.6)从频繁数据项表中读取数据表项e的下一个数据表项e’;
(10.7)赋值e=e’,然后转入步骤(10.2);
(10.8)从频繁模式树上输出最近的频繁模式结束。
实例:
下面举例说明事务数据流上最近的频繁模式挖掘的方法。
测试的硬件环境:CPU为INTEL 1.8GHz,内存为768MB。
软件环境:Windows Server 2003,所有的功能模块使用Visual C++6.0实现。
测试数据:IBM合成数据发生器(http://www.almaden.ibm.com/software/projects)生成的模拟顾客商场购物所产生的销售记录,测试数据假设商品的种类为10000种,平均顾客平均购买10件商品,顾客购买商品中热门销售的商品数量平均为4。
测试方案:系统采用多线程的方式模拟事务数据流的频繁模式挖掘环境,进程A读取数据流中的事务数据并发送给系统的流数据接收处理模块;进程B负责接收流数据并进行数据分段;进程C执行频繁模式树的动态维护与频繁模式输出;
首先,根据用户对频繁模式挖掘的要求预定义用户支持度门限和许可误差。例如,在一个包含10000个顾客的销售记录中,如果从中查找出至少同时有10个顾客购买过的商品或者它们的组合,则用户支持度门限θ设置为0.1%;由于在数据挖掘过程中可能存在一定的误差,如果也允许输出同时有9个顾客购买的商品,则选择选择用户许可误差ε为0.1×θ。
选定用户支持度门限和许可误差之后,数据流上流数据窗口的大小N和时间衰减模型的衰减系数就可以确定。例如,根据上面的用户支持度门限θ和许可误差ε,可以确定:N=10000,保证模式挖掘覆盖率为100%的f取值范围为0.999895≤f≤1,保证模式挖掘精度为100%的f取值范围为0≤f≤0.9987。
确定以上参数后,下面进行系统测试:
进程A读取数据流上的事务数据,将其发送到测试系统;
进程B接收到流数据,把它们加入到系统的缓存队列中,同时流数据窗口的大小对缓存队列中的流数据进行分段;
在没有用户查询请求的情况下,进程C循环执行频繁模式树的增量更新操作,即每次从缓存队列中读取第一个流数据,将其所包含的模式信息增量更新到频繁模式树上;每处理完N个流数据时,执行频繁模式树的剪枝操作;
当系统检测到用户查询请求后,进程C暂停频繁模式树的动态维护工作,转而从频繁模式树上输出频繁模式。
测试性能结果说明如下:
(1)在处理大小为10000的数据窗口内事务数据的情况下,与J.H.Chang等人的方法进行对比,本发明能够将方法的时间性能提高35%左右,空间性能提高26%左右。
(2)下表为随衰减系数变化,模式挖掘结果的覆盖率与精度的变化结果。显然,当f=0.9994与f=1相比,同样能够保证模式挖掘的覆盖率为100%,而精度确有显著的提高;同样当f=0.9985同f取更小的值,在保证模式挖掘精度为100%的前提下,而覆盖率有显著的提高。
  f   1   0.9997   0.9994   0.9991   0.9988   0.9985   0.9982   0.9979
  覆盖率   100%   100%   100%   97%   92%   84%   75%   67%
  精度   64%   76%   88%   95%   98%   100%   100%   1

Claims (6)

1.一种挖掘事务数据流上最近时间窗口内频繁模式的方法,其步骤包括:
(1)根据用户输入的用户支持度门限θ与用户许可误差ε确定流数据窗口大小N与衰减因子f,
Figure A2007100531560002C1
f等于f1或f2,其中,
( &theta; - &epsiv; ) / &theta; 2 ( 2 N - &theta;N - 1 ) &le; f 1 &le; 1
0 < f 2 < 2 ( &theta; - &epsiv; ) N / [ ( &theta; - &epsiv; + 1 ) N - 1 ] 4 ( &theta; - &epsiv; + 2 ) N - 3
式中,用户支持度门限θ的取值范围为(0,1),用户许可误差ε的取值范围为(0,θ);
(2)选定全序<的排序规则;
(3)开辟频繁模式树的存储区和流数据缓存队列的存储区,并初始化频繁模式树与流数据缓存队列;其中,
频繁模式树用于动态存储数据流上最近时间窗口内的频繁模式,频繁模式树由模式树与频繁数据项表两部分组成;
模式树上每一个节点都包括节点名称、指向孩子节点的指针、指向兄弟节点的指针、活动数据窗口内的支持数、固定数据窗口内的支持数、包含该节点的最近事务ID的节点时间戳、指向同名节点的指针;
频繁数据项表中的每一数据表项都由数据项名称和指向前缀模式树上第一个同名节点的指针两个数据域组成;
模式树的每一个分枝上的节点及频繁数据项表上的数据表项均按照全序<排列;
(4)当数据流连续到达时,根据流数据到达的顺序将其添加到系统缓存队列中,并根据流数据窗口大小N对缓存队列中的流数据进行分段;
(5)判断是否存在用户查询请求,如果存在,则转入步骤(10),否则,进入步骤(6);
(6)从缓存队列的头部提取流数据T,同时将T从缓存队列中删除;设流数据T=<a1,a2,…,ai>,且流数据T到达的时间戳记为tID;
(7)定义一个频繁模式树树节点的指针变量cur_Node,并设置cur_Node指向频繁模式树的根结点,然后将流数据T所包含的模式信息增量更新至频繁模式树上;
(8)判断流数据T是否为活动数据窗口中最后一个数据元素,如果是,则进入步骤(9),否则转入步骤(5);
(9)从频繁数据项表的头部开始依次读取频繁数据项,并根据该频繁数据项的指针查找频繁模式树上的同名节点,如果该节点的时间戳距当前时刻大于2N,则删除以该节点为根的子树,否则令该节点在固定数据窗口内的支持数等于其在活动数据窗口内的支持数,同时将活动数据窗口内的支持数置零;
(10)从频繁数据项表的尾部开始逆序读取频繁数据项,并计算该频繁数据项的支持度,如果其支持度大于等于θ与ε差,则采用模式增长的方法输出所有包含该频繁数据项的频繁模式。
2.根据权利要求1所述的方法,其特征在于:上述步骤(7)按照下述过程将流数据T所包含的模式信息增量更新至频繁模式树上:
(7.1)将流数据T中的数据元素按照全序<排列,记排列后的数据序列为T’=<a1’,a2’,…,ai’>;
(7.2)从T’中读取第一个数据元素,并赋值给aj’;
(7.3)如果aj’不为空,则进入步骤(7.4),否则转到步骤(7.10);
(7.4)从指针cur_node所指向节点的所有孩子节点中查找与aj’同名的树节点,如果找到符合条件的节点,则进入步骤(7.5),否则转入步骤(7.6);
(7.5)记查找到的与aj’同名的树节点为t_node;
(7.6)分别按照下式更新节点t_node的CCount计数器与时间戳TID,然后转入步骤(7.8);
t_node.CCount=t_node.CCount×f(T.tID-t_node.TID)+1
               t_node.TID=T.tID
(7.7)插入一个与aj’同名的新的树节点至频繁模式树;
(7.8)设置cur_node=t_node;
(7.9)从T’中读取aj’的下一个数据元素并赋值给aj,转到步骤(7.3);
(7.10)更新结束。
3.根据权利要求2所述的方法,其特征在于:上述步骤(7.7)按照下述过程将与aj’同名的新的树节点插入至频繁模式树:
(7.7.1)创建一个新的频繁模式树树节点t_node,并设置t_node.name=aj’,t_node.TID=T.tID,t_node.CCount=1,t_node.LCount=0;
(7.7.2)将树节点t_node插入到频繁模式树上,使其成为cur_node的孩子节点;
(7.7.3)在频繁数据项表中查找与aj’同名的数据表项e,如果查找失败,进入步骤(7.7.4),否则转入(7.7.6);
(7.7.4)创建一个新的频繁数据项表的数据表项e,设置e.item=aj’;
(7.7.5)将数据表项e插入到频繁数据项表中,并保持频繁数据项表中所有数据表项按照全序<有序;
(7.7.6)判断数据表项e的域e.pHLink是否为空;如果是,则进入步骤(7.7.7),否则,则转入步骤(7.7.8);
(7.7.7)设置e.pHLink=t_node;然后转入步骤(7.7.13);
(7.7.8)定义一个频繁模式树树节点的指针变量tmp_node;
(7.7.9)赋值tmp_node=e.pHLink;
(7.7.10)判断tmp_node->pNSibling是否为空,如果不为空,则进入步骤(7.7.11),否则转入步骤(7.7.12);
(7.7.11)赋值指针变量tmp_node->pNSibling=t_node;
(7.7.12)赋值指针变量tmp_node=tmp_node->pNSibling,并转入步骤(7.7.10)继续执行;
(7.7.13)插入与aj’同名的树节点结束。
4.根据权利要求1、2或3所述的方法,其特征在于:所述步骤(9)按照下述过程对频繁模式树进行剪枝::
(9.1)从频繁数据项表的头部开始依次选取数据表项e;
(9.2)定义一个频繁模式树树节点的指针变量node;
(9.3)赋值node=e.pHLink;
(9.4)判断指针node所指向树节点的时间戳与当前流数据T的时间戳之间的时间间隔是否大于2N,如果是,则进入步骤(9.5),否则转入步骤(9.6)
(9.5)删除以node所指树节点为根的子树,然后转入步骤(9.7);
(9.6)设置node->LCount=node->CCount,node->CCount=0;
(9.7)设置node=tmp_node->pNSibling;
(9.8)判断指针变量node是否为null,如果是,则进入步骤(9.9),否则转入步骤(9.4);
(9.9)判断e.pHLink是否为null,如果是,则进入步骤(9.10),否则转入步骤(9.11)
(9.10)将数据表项e从频繁数据项表中删除;
(9.11)判断是否到达频繁数据项表的尾部,如果是,则转入步骤(9.14);否则进入步骤(9.12);
(9.12)从频繁数据项表中提取数据表项e的下一个数据表项e’;
(9.13)赋值e=e’,并转入步骤(9.2);
(9.14)剪枝结束。
5.根据权利要求1、2或3所述的方法,其特征在于:步骤(10)按照下述过程从频繁模式树上输出最近的频繁模式:
(10.1)从频繁数据项表的底部开始依次读取数据表项e;
(10.2)按照下式计算频繁模式树上所有与数据表项e同名的树节点的支持数freq(e);
freq ( e ) = &Sigma; node i . CCount &times; f T . tID - node i . TID
式中,nodei表示频繁模式树中与数据表项e同名的一个树节点,其中i表示nodei在频繁模式树上所有与数据表项e同名的树节点集合中的序号;
(10.3)如果freq(e)≥(θ-ε)N,则进入步骤(10.4),否则转入步骤(10.5);
(10.4)使用模式增长方法从频繁模式树上输出所有包含与数据表项e同名数据元素的频繁模式;
(10.5)判断是否到达频繁数据项表的头部,如果是,则转入步骤(10.8),否则进入步骤(10.6);
(10.6)从频繁数据项表中读取数据表项e的下一个数据表项e’;
(10.7)赋值e=e’,然后转入步骤(10.2);
(10.8)结束。
6.根据权利要求4所述的方法,其特征在于:步骤(10)按照下述过程从频繁模式树上输出最近的频繁模式:
(10.1)从频繁数据项表的底部开始依次读取数据表项e;
(10.2)按照下式计算频繁模式树上所有与数据表项e同名的树节点的支持数freq(e);
sup ( e ) = &Sigma; node i . CCount &times; f T . tID - node i . TID
式中,nodei表示频繁模式树中与数据表项e同名的一个树节点,其中i表示nodei在频繁模式树上所有与数据表项e同名的树节点集合中的序号;
(10.3)如果freq(e)≥(θ-ε)N,则进入步骤(10.4),否则转入步骤(10.5);
(10.4)使用模式增长方法从频繁模式树上输出所有包含与数据表项e同名数据元素的频繁模式;
(10.5)判断是否到达频繁数据项表的头部,如果是,则转入步骤(10.8),否则进入步骤(10.6);
(10.6)从频繁数据项表中读取数据表项e的下一个数据表项e’;
(10.7)赋值e=e’,然后转入步骤(10.2);
(10.8)结束。
CN2007100531566A 2007-09-06 2007-09-06 一种挖掘事务数据流上最近时间窗口内频繁模式的方法 Expired - Fee Related CN101119302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100531566A CN101119302B (zh) 2007-09-06 2007-09-06 一种挖掘事务数据流上最近时间窗口内频繁模式的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100531566A CN101119302B (zh) 2007-09-06 2007-09-06 一种挖掘事务数据流上最近时间窗口内频繁模式的方法

Publications (2)

Publication Number Publication Date
CN101119302A true CN101119302A (zh) 2008-02-06
CN101119302B CN101119302B (zh) 2010-04-14

Family

ID=39055241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100531566A Expired - Fee Related CN101119302B (zh) 2007-09-06 2007-09-06 一种挖掘事务数据流上最近时间窗口内频繁模式的方法

Country Status (1)

Country Link
CN (1) CN101119302B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098175A (zh) * 2011-01-26 2011-06-15 浪潮通信信息系统有限公司 一种移动互联网告警关联规则获取方法
CN101316268B (zh) * 2008-07-04 2011-12-14 中国科学院计算技术研究所 一种异常流的检测方法及系统
CN102567528A (zh) * 2011-12-29 2012-07-11 东软集团股份有限公司 一种读取海量数据的方法及装置
CN102662642A (zh) * 2012-04-20 2012-09-12 浪潮电子信息产业股份有限公司 一种基于嵌套滑动窗口和遗传算法的并行处理方法
CN105224184A (zh) * 2014-07-01 2016-01-06 中兴通讯股份有限公司 菜单动态调整的方法及装置
CN105389370A (zh) * 2015-11-13 2016-03-09 浙江工业大学 一种面向社交活动组织的时间聚合查询方法
CN106250549A (zh) * 2016-08-14 2016-12-21 重庆大学 一种基于内存的频繁模式挖掘方法
CN107562703A (zh) * 2016-07-01 2018-01-09 北京国双科技有限公司 字典树重构方法及系统
CN108197172A (zh) * 2017-12-20 2018-06-22 浙江工商大学 一种基于大数据平台的频繁模式挖掘方法
CN109165522A (zh) * 2018-07-26 2019-01-08 安徽师范大学 一种基于数据流的敏感数据挖掘保护方法
CN109189736A (zh) * 2018-08-01 2019-01-11 中国联合网络通信集团有限公司 一种告警关联规则的生成方法和装置
CN110048818A (zh) * 2019-05-05 2019-07-23 华中科技大学 一种对于用户的tid的反馈信息确认及处理系统及处理方法
CN112224215A (zh) * 2019-06-30 2021-01-15 比亚迪股份有限公司 集成控制芯片及其控制方法,存储介质,车辆

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437565C (zh) * 2004-06-08 2008-11-26 北京大学 结构约束下获得可扩展标记语言频繁查询模式的方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316268B (zh) * 2008-07-04 2011-12-14 中国科学院计算技术研究所 一种异常流的检测方法及系统
CN102098175B (zh) * 2011-01-26 2015-07-01 浪潮通信信息系统有限公司 一种移动互联网告警关联规则获取方法
CN102098175A (zh) * 2011-01-26 2011-06-15 浪潮通信信息系统有限公司 一种移动互联网告警关联规则获取方法
CN102567528A (zh) * 2011-12-29 2012-07-11 东软集团股份有限公司 一种读取海量数据的方法及装置
CN102662642A (zh) * 2012-04-20 2012-09-12 浪潮电子信息产业股份有限公司 一种基于嵌套滑动窗口和遗传算法的并行处理方法
CN102662642B (zh) * 2012-04-20 2016-05-25 浪潮电子信息产业股份有限公司 一种基于嵌套滑动窗口和遗传算法的并行处理方法
CN105224184A (zh) * 2014-07-01 2016-01-06 中兴通讯股份有限公司 菜单动态调整的方法及装置
CN105389370B (zh) * 2015-11-13 2018-05-22 浙江工业大学 一种面向社交活动组织的时间聚合查询方法
CN105389370A (zh) * 2015-11-13 2016-03-09 浙江工业大学 一种面向社交活动组织的时间聚合查询方法
CN107562703A (zh) * 2016-07-01 2018-01-09 北京国双科技有限公司 字典树重构方法及系统
CN106250549A (zh) * 2016-08-14 2016-12-21 重庆大学 一种基于内存的频繁模式挖掘方法
CN106250549B (zh) * 2016-08-14 2019-09-20 重庆大学 一种基于内存的频繁模式挖掘方法
CN108197172A (zh) * 2017-12-20 2018-06-22 浙江工商大学 一种基于大数据平台的频繁模式挖掘方法
CN108197172B (zh) * 2017-12-20 2021-06-22 浙江工商大学 一种基于大数据平台的频繁模式挖掘方法
CN109165522A (zh) * 2018-07-26 2019-01-08 安徽师范大学 一种基于数据流的敏感数据挖掘保护方法
CN109189736A (zh) * 2018-08-01 2019-01-11 中国联合网络通信集团有限公司 一种告警关联规则的生成方法和装置
CN110048818A (zh) * 2019-05-05 2019-07-23 华中科技大学 一种对于用户的tid的反馈信息确认及处理系统及处理方法
CN112224215A (zh) * 2019-06-30 2021-01-15 比亚迪股份有限公司 集成控制芯片及其控制方法,存储介质,车辆
CN112224215B (zh) * 2019-06-30 2021-09-03 比亚迪股份有限公司 集成控制芯片及其控制方法,存储介质,车辆

Also Published As

Publication number Publication date
CN101119302B (zh) 2010-04-14

Similar Documents

Publication Publication Date Title
CN101119302A (zh) 一种挖掘事务数据流上最近时间窗口内频繁模式的方法
Yun et al. Incremental high utility pattern mining with static and dynamic databases
US7636713B2 (en) Using activation paths to cluster proximity query results
US7171406B2 (en) OLAP-based web access analysis method and system
US8180779B2 (en) System and method for using external references to validate a data object&#39;s classification / consolidation
CN100449546C (zh) 搜索文本中关键词的系统及其方法
US5668988A (en) Method for mining path traversal patterns in a web environment by converting an original log sequence into a set of traversal sub-sequences
JP5092165B2 (ja) データ構築方法とシステム
US20090055332A1 (en) Method of generating association rules from data stream and data mining system
CN106991141B (zh) 一种基于深度剪枝策略的关联规则挖掘方法
Qu et al. Efficient algorithms for high utility itemset mining without candidate generation
Lee et al. Erasable itemset mining over incremental databases with weight conditions
Dam et al. Towards efficiently mining closed high utility itemsets from incremental databases
CN112269816B (zh) 一种政务预约事项相关性检索方法
CN104077407A (zh) 一种智能数据搜索系统及方法
Qiu et al. Clustering Analysis for Silent Telecom Customers Based on K-means++
CN107045700A (zh) 基于流式用户行为分析的产品推送方法和装置
Shen et al. OCEAN: Fast discovery of high utility occupancy itemsets
Guyet et al. Incremental mining of frequent serial episodes considering multiple occurrences
Mallick et al. Incremental mining of sequential patterns: Progress and challenges
CN105159898A (zh) 一种搜索的方法和装置
CN111753151B (zh) 一种基于互联网用户行为的服务推荐方法
Li et al. DSM-PLW: Single-pass mining of path traversal patterns over streaming Web click-sequences
Gan et al. Exploiting high utility occupancy patterns
CN106407296B (zh) 基于预判筛选的局部扫描关联规则计算机数据分析方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100414

Termination date: 20130906