CN106033424B - 数据挖掘方法和装置 - Google Patents
数据挖掘方法和装置 Download PDFInfo
- Publication number
- CN106033424B CN106033424B CN201510106336.0A CN201510106336A CN106033424B CN 106033424 B CN106033424 B CN 106033424B CN 201510106336 A CN201510106336 A CN 201510106336A CN 106033424 B CN106033424 B CN 106033424B
- Authority
- CN
- China
- Prior art keywords
- transaction
- item set
- candidate
- weight
- item
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种数据挖掘方法和装置,属于数据挖掘领域。方法包括:扫描事务数据库,得到多个事务以及至少一个项目;获取多个候选项集;对于每个候选项集,根据候选项集中每个项目的权重以及包括候选项集的指定事务的数目,计算候选项集的加权支持度;根据每个指定事务的发生时间,计算候选项集的时效值;判断候选项集的时效值是否大于第一阈值,以及加权支持度是否大于第二阈值;当时效值大于第一阈值且加权支持度大于第二阈值时,将候选项集确定为近期高权重频繁项集。本发明考虑到项集的时效性因素,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。
Description
技术领域
本发明涉及数据挖掘领域,特别涉及一种数据挖掘方法和装置。
背景技术
近些年来,高权重频繁项集挖掘已成为数据挖掘领域的关键问题之一。通过对事务数据库进行挖掘,可以获取到由事务数据库中的不同项目组成的高权重频繁项集,从而发现不同项目之间隐藏的重要关联规则,这些关联规则可以应用于库存管理、购物篮分析等多种领域。
事务数据库中包括多个事务,且每个事务包括至少一个项目,在对该事务数据库进行挖掘时,可以根据每个项目的重要程度为每个项目分配权重,则对于每个候选项集来说,根据该候选项集中每个项目的权重以及该候选项集在该事务数据库中的出现次数,计算该候选项集的加权支持度,该加权支持度既能够表示该候选项集的重要程度,也能够表示该候选项集是否频繁出现在该事务数据库中,当该候选项集的加权支持度大于最小加权支持度阈值时,确定该候选项集为高权重频繁项集。
但是,上述挖掘方法易产生没有实际应用价值的干扰项集,出现干扰的可能性大,挖掘出的重要关联规则不准确。例如,一个项集在很长时间之前频繁出现,但在近期内出现很少,则应用上述挖掘方法进行挖掘时仍可能会将该项集确定为高权重频繁项集。由于该项集已过期,该项集中的项目之间的关联规则已不能准确体现近期的关联规则,即使将该项集挖掘出来也没有实际应用价值,实用性低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据挖掘方法和装置。所述技术方案如下:
第一方面,提供了一种数据挖掘方法,所述方法包括:
扫描事务数据库,得到所述事务数据库中的多个事务以及每个事务包括的至少一个项目;
根据所述事务数据库中的至少一个项目,获取多个候选项集;
对于每个候选项集,根据所述候选项集中每个项目的权重以及包括所述候选项集的指定事务的数目,计算所述候选项集的加权支持度;
根据每个指定事务的发生时间,计算所述候选项集的时效值;
判断所述候选项集的时效值是否大于第一阈值;
判断所述候选项集的加权支持度是否大于第二阈值;
当所述时效值大于所述第一阈值且所述加权支持度大于所述第二阈值时,将所述候选项集确定为近期高权重频繁项集。
第二方面,提供了一种数据挖掘装置,所述装置包括:
扫描模块,用于扫描事务数据库,得到所述事务数据库中的多个事务以及每个事务包括的至少一个项目;
候选项集获取模块,用于根据所述事务数据库中的至少一个项目,获取多个候选项集;
第一计算模块,用于对于每个候选项集,根据所述候选项集中每个项目的权重以及包括所述候选项集的指定事务的数目,计算所述候选项集的加权支持度;
第二计算模块,用于根据每个指定事务的发生时间,计算所述候选项集的时效值;
判断模块,用于判断所述候选项集的时效值是否大于第一阈值;
所述判断模块,还用于判断所述候选项集的加权支持度是否大于第二阈值;
确定模块,用于当所述时效值大于所述第一阈值且所述加权支持度大于所述第二阈值时,将所述候选项集确定为近期高权重频繁项集。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的方法和装置,通过根据每个指定事务的发生时间,计算该候选项集的时效值,从而挖掘出时效值大于该第一阈值且该加权支持度大于该第二阈值的近期高权重频繁项集。该数据挖掘方法不仅考虑到项集的权重因素,还考虑到了项集的时效性因素,能够过滤掉在很长时间之前出现的高权重频繁项集,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据挖掘方法的流程图;
图2是本发明实施例提供的一种数据挖掘方法的流程图;
图3是本发明实施例提供的候选项集树形图;
图4是本发明实施例提供的一种数据挖掘方法的流程图;
图5是本发明实施例提供的候选项集过滤示意图;
图6a是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的运行时间示意图;
图6b是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的运行时间示意图;
图6c是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的运行时间示意图;
图6d是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的运行时间示意图;
图7a是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的运行时间示意图;
图7b是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的运行时间示意图;
图7c是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的运行时间示意图;
图7d是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的运行时间示意图;
图8a是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的项集数量示意图;
图8b是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的项集数量示意图;
图8c是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的项集数量示意图;
图8d是本发明实施例提供的基于不同最小加权支持度阈值的数据挖掘算法的项集数量示意图;
图9a是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的项集数量示意图;
图9b是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的项集数量示意图;
图9c是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的项集数量示意图;
图9d是本发明实施例提供的基于不同最小时效值阈值的数据挖掘算法的项集数量示意图;
图10a是本发明实施例提供的基于不同项集长度的数据挖掘算法的运行时间示意图;
图10b是本发明实施例提供的基于不同项集长度的数据挖掘算法的内存消耗示意图;
图10c是本发明实施例提供的基于不同项集长度的数据挖掘算法的项集数量示意图;
图11是本发明实施例提供的一种数据挖掘装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于对本发明实施例进行说明,预先对本发明实施例涉及的基本概念进行如下介绍:
1、项目:用户执行的操作行为对应的操作对象称为项目,例如用户选择的一个物品即为一个项目。
2、事务:用户执行的操作行为称为事务,事务以至少一个项目来表示,例如用户选择物品的事务以用户所选择的至少一个物品来表示。
3、事务的发生时间:用户执行操作行为时表示事务发生,事务的发生时间即为用户完成操作行为的时间。
4、事务数据库:由一个或多个事务组成的数据库称为事务数据库。
5、项集:由一个或多个组成的项目集合称为项集。
6、项集出现:如果一个事务中包含项集中所有项目,则称该项集在该事务中出现。如果事务数据库中有很多包括项集中所有项目的事务,则称项集在事务数据库中频繁出现。
7、项目的权重:为每个项目预先分配的权重即为项目的权重,项目的权重用于表示项目的重要程度。
8、项集的权重:项集中每个项目的权重平均值作为项集的权重,项集权重用于表示项集的重要程度。
9、项集的支持度:项集在事务数据库中的出现次数称为项集的支持度,用于表示项集是否出现频繁。
10、高权重频繁项集:权重较高且在事务数据库中出现频繁的项集称为高权重频繁项集。
11、项集的加权支持度:项集的权重和支持度的乘积称为加权支持度。
12、项集的时效值:项集的时效值根据项集所在事务的发生时间确定,项集的时效值用于表示项集的出现时间早晚,时效值越大,表示项集的出现越晚,距离当前时间点越近。
13、近期高权重频繁项集:加权支持度大于最小加权支持度阈值且时效值大于最小时效值阈值的项集称为近期高权重频繁项集,表示该项集权重较高、在事务数据库中出现频繁,并且近期内在事务数据库中也出现频繁。
14、事务的事务高估权重:事务中的至少一个项目的权重最大值称为事务的事务高估权重。
15、项集的事务累积高估权重:包括项集的每个事务的事务高估权重之和称为项集的事务累积高估权重。
16、近期高权重频繁高估项集:事务累积高估权重大于最小加权支持度阈值且时效值大于最小时效值阈值的项集称为近期高权重频繁高估项集。
17、项集的真超集:如果第一项集包括第二项集中的每个项目且第一项集中至少有一个项目不属于第二项集,则第一项集是第二项集的真超集。
本发明实施例还提供了以下规则:
1、近期高权重频繁项集都是近期高权重频繁高估项集;
如果一个项集不是近期高权重频繁高估项集,则该项集不是近期高权重频繁项集。
2、近期高权重频繁高估项集具有以下向下闭合特性:如果一个项集不是近期高权重频繁高估项集,则该项集的真超集都不是近期高权重频繁高估项集。
图1是本发明实施例提供的一种数据挖掘方法的流程图,参见图1,该方法包括:
101、扫描事务数据库,得到该事务数据库中的多个事务以及每个事务包括的至少一个项目。
102、根据该事务数据库中的至少一个项目,获取多个候选项集。
103、对于每个候选项集,根据该候选项集中每个项目的权重以及包括该候选项集的指定事务的数目,计算该候选项集的加权支持度。
104、根据每个指定事务的发生时间,计算该候选项集的时效值。
105、判断该候选项集的时效值是否大于第一阈值,并判断该候选项集的加权支持度是否大于第二阈值。
106、当该时效值大于该第一阈值且该加权支持度大于该第二阈值时,将该候选项集确定为近期高权重频繁项集。
本发明实施例提供的方法,通过根据每个指定事务的发生时间,计算该候选项集的时效值,从而挖掘出时效值大于该第一阈值且该加权支持度大于该第二阈值的近期高权重频繁项集。该数据挖掘方法不仅考虑到项集的权重因素,还考虑到了项集的时效性因素,能够过滤掉在很长时间之前出现的高权重频繁项集,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。
可选地,该根据该候选项集中每个项目的权重以及包括该候选项集的指定事务的数目,计算该候选项集的加权支持度,包括:
计算该候选项集中每个项目的权重平均值,作为该候选项集的权重;
计算该事务数据库中包括该候选项集的指定事务的数目,作为该候选项集的支持度;
计算该候选项集的权重与支持度的乘积,作为该候选项集的加权支持度。
可选地,根据每个指定事务的发生时间,计算该候选项集的时效值,包括:
根据每个指定事务的发生时间,计算每个指定事务的时效值;
将计算出的每个指定事务的时效值之和作为该候选项集的时效值。
可选地,该根据每个指定事务的发生时间,计算包括每个指定事务的时效值,包括:
对于每个指定事务,根据该指定事务的序号,应用以下公式,计算该指定事务的时效值:
R(Tq)=(1-δ)|D|-q;
其中,Tq用于表示该指定事务,R(Tq)用于表示该指定事务Tq的时效值,δ用于表示预设时间衰减因子,0≤δ<1,D用于表示该事务数据库,|D|用于表示该事务数据库的事务数目,q用于表示该指定事务Tq的序号,该指定事务Tq的序号由该指定事务Tq的发生时间确定。
可选地,该判断该候选项集的加权支持度是否大于第二阈值之前,该方法还包括:
将每个指定事务中项目权重的最大值作为对应指定事务的事务高估权重;
计算每个指定事务的事务高估权重之和,作为该候选项集的事务累积高估权重;
判断该候选项集的事务累积高估权重是否大于该第二阈值;
当该时效值大于该第一阈值且该候选项集的事务累积高估权重大于该第二阈值时,将该候选项集确定为近期高权重频繁高估项集;
执行判断已确定的近期高权重频繁高估项集的加权支持度是否大于该第二阈值的步骤。
可选地,该方法还包括:
当第一候选项集的时效值大于该第一阈值且该第一候选项集的事务累积高估权重大于该第二阈值时,将该第一候选项集的真超集作为近期高权重频繁高估项集的第二候选项集。
可选地,该方法还包括:
当该候选项集的时效值不大于该第一阈值或者该候选项集的事务累积高估权重不大于该第二阈值时,过滤该候选项集和该候选项集的真超集。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种数据挖掘方法的流程图,参见图2,该方法包括:
201、扫描事务数据库,得到该事务数据库中的多个事务以及每个事务包括的至少一个项目。
其中,该事务数据库包括多个事务,每个事务包括至少一个项目,扫描该事务数据库可以确定该事务数据库中包括的事务,也可以确定该事务数据库中包括的项目。该事务数据库中的一个事务可以看作一个项集,且该事务数据库中包括的任一个或多个项目可以组成一个项集。
在创建该事务数据库时,可以选取多个目标用户作为样本,对于每个目标用户,在该目标用户执行操作行为的过程中,统计该目标用户的操作行为以及每次操作行为的至少一个操作对象,该目标用户每次的操作行为构成一个事务,该操作行为的至少一个操作对象即为该事务中的至少一个项目,也即是,该事务包括该至少一个项目,在该事务中该至少一个项目同时出现。通过统计多个目标用户执行的操作行为,得到多个事务,该多个事务构成该事务数据库。
例如,对于每个目标用户,在目标用户选择物品后,统计该目标用户本次选择的至少一个物品,构成一个事务,该事务包括该至少一个物品。通过不断地对多个目标用户的选择物品行为进行统计,可以得到多个事务,将该多个事务构成该事务数据库。通过对该事务数据库进行分析,可以确定具有关联关系的物品,那么,物品提供商即可基于物品之间的关联关系,将物品放置在同一位置或者相邻位置,以提高用户对物品的选择几率,节省用户寻找物品的时间当然,对于网上商城等在线购物场景,还可以基于物品之间的关联,主动为用户推荐具有关联关系的物品,以进一步提高用户对物品的选择几率,节省用户寻找物品的时间。
在本发明实施例中,为了区分不同的事务,为每个事务设置一个TID(TransactionIdentity,事务标识),该事务标识TID用于确定对应的事务。可选地,根据每个事务发生时间从早到晚的顺序进行排序,根据每个事务的排列顺序获取每个事务的序号,将事务的序号作为事务标识,事务的序号越大,表示事务的发生时间越晚,该事务对当前时间点的影响越大,该事务的实际应用价值越大。例如,该事务数据库可以如下表1所示。
表1
TID | 事务 | 事务包括的项目 |
1 | b c d e | b、c、d、e |
2 | b d | b、d |
3 | b c e | b、c、e |
4 | c d | c、d |
5 | b c e | b、c、e |
6 | a c e f | a、c、e、f |
7 | b d f | b、d、f |
8 | a c d e f | a、c、d、e、f |
9 | a c d f | a、c、d、f |
10 | a b c e f | a、b、c、e、f |
该事务数据库中包括10个事务,扫描该事务数据库,可以确定该事务数据库包括的项目为a、b、c、d、e和f。
202、将每个项目所构成的项集分别作为第一候选项集,对每个第一候选项集执行步骤203。
扫描该事务数据库后可以确定该事务数据库中包括的每个项目,其中的一个或多个项目可以通过不同的组合方式可以组成多个项集,这些项集中有些是要挖掘的近期高权重频繁项集,有些不是,则为了从中挖掘出近期高权重频繁项集,需要将该事务数据库中的一个或多个项目组成的项集分别作为候选项集,判断每个候选项集是否为近期高权重频繁项集。首先,将每个项目构成一个项集,并将构成的项集作为第一候选项集,从该第一候选项集中获取近期高权重频繁项集。
参见表1,6个项目a、b、c、d、e和f所构成的项集分别为{a}、{b}、{c}、{d}、{e}、{f}。
203、根据当前候选项集中每个项目的权重以及包括该当前候选项集的指定事务的数目,计算该当前候选项集的加权支持度,根据每个指定事务的发生时间,计算该当前候选项集的时效值。
本发明实施例仅以将每个项目所构成的项集分别作为第一候选项集为例进行说明,该第一候选项集中包括一个项目,而在实际的数据挖掘过程中,从第一候选项集中获取近期高权重频繁项集后,还可以根据该第一候选项集进行迭代,将包括该第一候选项集的项集,也即是该第一候选项集的真超集作为下一层的第二候选项集,再从第二候选项集中获取近期高权重频繁项集,以此类推,直到已将由该事务数据库中的所有项目组成的项集作为候选项集为止。采用迭代的方式获取多层候选项集,从获取到的每层候选项集中获取近期高权重频繁项集。
将当前要进行判断的候选项集称为当前候选项集,则判断当前候选项集是否为近期高权重频繁项集时,需要先计算当前候选项集的加权支持度和时效值,该计算过程具体可以包括以下步骤(1)和(2):
(1)根据每个项目的权重,计算该当前候选项集中每个项目的权重平均值,作为该当前候选项集的权重,计算该事务数据库中包括该当前候选项集的指定事务的数目,作为该当前候选项集的支持度,计算该当前候选项集的权重与支持度的乘积,作为该当前候选项集的加权支持度。
对于一个项集来说,如果该项集中包括的多个项目重要程度很低,不是该数据挖掘过程所关注的项目,那么即使获取到该项集,该项集中的多个项目之间的关联关系也没有实际应用价值。因此,为了挖掘出有实际应用价值的项集,需要判断当前候选项集是否重要。
其中,项目权重用于表示项目的重要程度,每个项目的权重可以由数据挖掘人员根据每个项目的挖掘需求预先设定或者采用其他方式确定,并存储在预设权重表中,本发明实施例对项目权重的设定方式不做限定,只需满足每个项目的权重属于区间(0,1]即可。例如,参见表1,6个项目的权重可以设置为:w(a)=0.4,w(b)=0.7,w(c)=1.0,w(d)=0.5,w(e)=0.45,w(f)=0.35。
当前候选项集的权重可以表示当前候选项集的重要程度,当前候选项集的权重越大,表示当前候选项集越重要,当前候选项集中的多个项目之间的关联关系越有意义。
对于一个项集来说,如果该项集在该事务数据库中出现不频繁,表示项集中多个项目之间的关联关系仅是偶然出现,该项集不能准确体现出该多个项目之间的真实关联关系。因此,为了挖掘准确的关联关系,除了判断当前候选项集是否重要之外,还要判断当前候选项集是否频繁。具体地,确定该事务数据库中包含当前候选项集的事务,作为指定事务,计算该事务数据库中指定事务的数目,作为该当前候选项集的支持度,也即是将当前候选项集在该事务数据库中的出现次数作为当前候选项集的支持度,该支持度可以表示当前候选项集的频繁程度,当前候选项集的支持度越大,表示当前候选项集越频繁,则当前候选项集中的多个项目同时出现的概率越大,该多个项目之间越可能存在着关联关系。
为了表示当前候选项集的重要程度和频繁程度,本发明实施例提出了加权支持度的概念,具体地,项集的加权支持度为该项集在多个包含该项集的指定事务中的权重之和,而项集在每个指定事务中的权重均等于该项集本身的权重,则可以确定项集的加权支持度等于项集的权重与指定事务数目的乘积,即为项集的权重与该项集的支持度的乘积。相应的,在对当前候选项集进行判断时,计算该当前候选项集的权重与支持度的乘积,作为该当前候选项集的加权支持度即可。
也即是,则其中,wsup(X)用于表示当前候选项集X的加
权支持度,w(X,Tq)用于表示当前候选项集X在指定事务Tq中的权重,w(X)用于表示当前候选
项集X的权重,sup(X)用于表示当前候选项集X的支持度,D用于表示该事务数据库。
例如,对于项集{bce}来说,包括项集{bce}的事务为T1、T3、T5、T10,则wsup(bce)=w(bce,T1)+w(bce,T3)+w(bce,T5)+w(bce,T10)=w(bce)×4=2.8668。
(2)根据每个指定事务的发生时间,计算每个指定事务的时效值,将计算出的每个指定事务的时效值之和作为该当前候选项集的时效值。
对于一个项集来说,如果该项集在很长时间之前频繁出现,而在近期内出现很少,该项集中的项目之间的关联规则已不能准确体现近期的关联规则,那么即使获取到该项集,该项集中的多个项目之间的关联关系也没有实际应用价值。因此,为了挖掘出有实际应用价值的项集,需要对该项集的时效性进行判断。
指定事务的时效值用于表示该指定事务发生时间的早晚,该指定事务的时效值越大,表示该指定事务的发生时间越晚,该指定事务对当前时间点的影响越大,该指定事务的实际应用价值越大。将每个指定事务的时效值之和作为该候选项集的时效值,该时效值能够表示该候选项集出现时间的早晚,该候选项集的时效值越大,表示该候选项集出现越晚,该候选项集对当前时间点的影响越大,实际应用价值越大。
可选地,对于每个指定事务,根据该指定事务的序号,应用以下公式,计算该指定事务的时效值:
R(Tq)=(1-δ)|D|-q;
其中,Tq用于表示该指定事务,R(Tq)用于表示该指定事务Tq的时效值,δ用于表示预设时间衰减因子,0≤δ<1,D用于表示该事务数据库,|D|用于表示该事务数据库的事务数目,q用于表示该指定事务Tq的序号。
该指定事务Tq的序号q由该指定事务Tq的发生时间确定,该指定事务Tq的发生时间越晚,该指定事务Tq的序号q越大。则该指定事务Tq的序号q表示该指定事务Tq的发生时间,该事务数目|D|表示当前时间戳,采用上述公式计算时效值,可以保证指定事务Tq的发生时间与当前时间戳越接近,计算出的R(Tq)也越大。
每个指定事务的时效值即为当前候选项集在该指定事务中的时效值,则将计算出的每个指定事务的时效值之和作为该当前候选项集的时效值。即R(X,Tq)=R(Tq),其中,R(X,Tq)用于表示当前候选项集X在指定事务Tq中的时效值,R(X)用于表示当前候选项集X的时效值。
例如,参见表1,该事务数据库的事务数目|D|为10,假设δ=0.15,则R(T1)=(1-0.15)10-1=0.2316,R(T3)=(1-0.15)10-3=0.32057,R(T3)大于R(T1)。对于项集{bce}来说,包括项集{bce}的事务为T1、T3、T5、T10,则R(bce)=R(bce,T1)+R(bce,T3)+R(bce,T5)+R(bce,T10)=0.2316+0.32057+0.4437+1.0=1.9959。
204、判断该当前候选项集的时效值是否大于第一阈值,并判断该当前候选项集的加权支持度是否大于第二阈值,执行步骤205或步骤206。
在本发明实施例中,时效值大于该第一阈值的项集可以认为是近期内出现频繁的项集,时效值不大于该第一阈值的项集可以认为是近期内出现不频繁的项集。该第一阈值可以由数据挖掘人员根据时效性需求预先设定,本发明实施例对此不做限定。
另外,加权支持度大于第二阈值的项集可以认为是重要且在该事务数据库中出现频繁的项集,即高权重频繁项集,而加权支持度不大于第二阈值的项集可以认为不是高权重频繁项集。该第二阈值可以由数据挖掘人员根据每个项目的权重和该事务数据库的事务数目确定。可选地,确定预设最小加权支持度阈值,将该预设最小加权支持度阈值与该事务数目的乘积作为该第二阈值。则对于不同的事务数据库来说,可以采用相同的预设最小加权支持度阈值进行数据挖掘。
那么,为了挖掘出近期的高权重频繁项集,判断当前候选项集的时效值是否大于第一阈值,并判断该当前候选项集的加权支持度是否大于第二阈值,如果当前候选项集的时效值大于第一阈值且加权支持度大于第二阈值,表示当前候选项集是高权重频繁项集,且在近期内出现频繁,则将当前候选项集确定为近期高权重频繁项集。如果当前候选项集的时效值不大于该第一阈值,表示当前候选项集近期内出现不频繁,没有实际应用价值,则过滤掉当前候选项集。如果当前候选项集的加权支持度不大于该第二阈值,表示当前候选项集不是高权重频繁项集,则过滤掉当前候选项集。
205、当前候选项集的时效值大于第一阈值且加权支持度大于第二阈值时,将该当前候选项集确定为近期高权重频繁项集,执行步骤207。
本发明实施例获取到的近期高权重频繁项集满足以下条件:
(1)wsup(X)>α×|D|;(2)R(X)>β。
其中,β用于表示该第一阈值,α用于表示该预设最小加权支持度阈值,α×|D|为该第二阈值。
与现有技术中的高权重频繁项集相比,本发明实施例所获取到的近期高权重频繁项集不仅满足条件wsup(X)>α×|D|,还满足R(X)>β,保证了获取到的近期高权重频繁项集是近期内频繁出现的项集。
参见上述表1,确定的近期高权重频繁项集的加权支持度和时效值如下表2所示,该第一阈值为2.5,该预设最小加权支持度阈值为0.18,则该第二阈值为1.8,可以看出表2中每个项集的加权支持度都大于1.8,时效值都大于2.5。
表2
项集 | 加权支持度 | 时效值 |
{b} | 4.2 | 2.8825 |
{c} | 8.0 | 4.4675 |
{d} | 3.0 | 3.0679 |
{e} | 2.7 | 3.2404 |
{ac} | 2.8 | 3.0945 |
{ce} | 4.35 | 3.2404 |
{cf} | 2.7 | 3.0945 |
{acf} | 2.333 | 3.0945 |
206、当前候选项集的时效值不大于第一阈值或者加权支持度不大于第二阈值时,过滤该当前候选项集,执行步骤207。
参见上述表1所计算出的项集{bc}的时效值为1.9959,小于该第一阈值2.5,则过滤掉项集{bc}。
207、按照预设项目排列顺序,将排在该当前候选项集中的最后一个项目之后的项目与该当前候选项集合并,将合并后的项集作为下一层的候选项集,对每个下一层的候选项集继续执行步骤203。
对当前候选项集的判断过程完成后,可以继续获取当前候选项集的真超集,作为下一层的候选项集,对下一层的候选项集进行判断。其中,如果第一项集包括第二项集中的每个项目且第一项集中至少有一个项目不属于该第二项集,则第一项集是第二项集的真超集。
不同项集可能具有相同的真超集,则为了避免重复获取,减小计算量,可以采用投影机制,按照预设项目排列顺序获取下一层的候选项集。其中,该预设项目排列顺序可以预先根据英文字母表顺序和每个项目的名称确定,或者由数据挖掘人员自定义设置,本发明实施例对此不做限定。
具体地,先将每个项目构成的项集作为第一候选项集,在后续每次迭代时,将当前候选项集中的每个项目按照该预设项目排列顺序进行排列,并将排在该当前候选项集中的最后一个项目之后的项目与该当前候选项集合并,将合并后得到的项集作为下一层的候选项集。如果按照该预设项目排列顺序,该当前候选项集中最后一个项目之后还有多个项目,则将这多个项目分别与该当前候选项集合并,得到多个项集,将得到的多个项集均作为下一层的候选项集。如果该当前候选项集中最后一个项目为该预设项目排列顺序中的最后一个项目,则不再对当前候选项集进行合并操作。
图3是本发明实施例提供的候选项集树形图,参见图3,以该事务数据库中共包括5个项目a、b、c、d、e为例进行说明,则每次获取候选项集的过程可以包括:
(3-1)将每个项目分别构成第一候选项集,并按照预设项目排列顺序“a-b-c-d-e”进行排列,则得到的第一候选项集为{a}、{b}、{c}、{d}、{e}。
(3-2)对于每个第一候选项集,将第一候选项集与排在该第一候选项集的项目之后的每个项目合并,得到第二候选项集,则根据第一候选项集{a}得到第二候选项集{ab}、{ac}、{ad}、{ae},根据第一候选项集{a}得到第二候选项集{bc}、{bd}、{be},根据第一候选项集{c}得到第二候选项集{cd}、{ce},根据第一候选项集{d}得到第二候选项集{de}。
(3-3)对于每个第二候选项集,将第二候选项集与排在该第二候选项集的第二个项目之后的每个项目合并,得到第三候选项集。则根据第二候选项集{ab}得到第三候选项集{abc}、{abd}、{abe},根据第二候选项集{ac}得到第三候选项集{acd}、{ace},根据第二候选项集{ad}得到第三候选项集{ade},根据第二候选项集{bc}得到第三候选项集{bcd}、{bce},根据第二候选项集{bd}得到第三候选项集{bde},根据第二候选项集{cd}得到第三候选项集{cde}。
(3-4)对于每个第三候选项集,将第三候选项集与排在该第三候选项集的第三个项目之后的每个项目合并,得到第四候选项集。则根据第三候选项集{abc}得到第四候选项集{abcd}、{abce},根据第三候选项集{abd}得到第四候选项集{abde},根据第三候选项集{acd}得到第四候选项集{acde},根据第三候选项集{bcd}得到第四候选项集{bcde}。
(3-5)对于每个第四候选项集,将第四候选项集与排在第四候选项集的第四个项目之后的项目合并,得到第五候选项集。则根据第四候选项集{abcd}得到第五候选项集{abcde}。
需要说明的是,本发明实施例以该步骤207在步骤204之后执行为例,也即是每获取到一个候选项集,先判断该候选项集是否为近期高权重频繁项集,再获取下一个候选项集,而在实际应用中也可以先获取到所有的候选项集,再对获取到的每个候选项集分别进行判断,或者,采用迭代的方式,先获取到每一层的候选项集,对这一层的每个候选项集进行判断之后,再获取下一层的候选项集,本发明实施例对获取候选项集过程与判断过程的先后顺序不做限定。
在获取到多个近期高权重频繁项集之后,该方法还包括:基于获取到的多个近期高权重频繁项集和用户当前选择的项目进行推荐。
在本发明实施例中,可以认为近期高权重频繁项集中的每个项目之间具有关联关系,则当用户选择了一个或多个项目时,可以基于获取到的多个近期高权重频繁项集,找出该一个或多个项目所属的近期高权重频繁项集,将该近期高权重频繁项集中用户未选择的项目推荐给该用户。考虑到了每个用户选择项目的需求,自动为用户推荐关联的项目,实现了个性化推荐。
本发明实施例提供的方法,通过根据每个指定事务的发生时间,计算该候选项集的时效值,从而挖掘出时效值大于该第一阈值且该加权支持度大于该第二阈值的近期高权重频繁项集。该数据挖掘方法不仅考虑到项集的权重因素,还考虑到了项集的时效性因素,能够过滤掉在很长时间之前出现的高权重频繁项集,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。
本领域的技术人员可以获知,目标项集具有向下闭合特性是指目标项集的任意子集都是目标项集,也即是,如果一个项集不是目标项集,该项集的真超集也不是目标项集。
而在本发明实施例中,近期高权重频繁项集不具有向下闭合特性,如果一个项集不是近期高权重频繁项集,不能确定该项集的真超集是不是近期高权重频繁项集。例如,参见上述表1和表2,项集{a}不是近期高权重频繁项集,但项集{ac}和{acf}都是近期高权重频繁项集。在近期高权重频繁项集不具有向下闭合特性的情况下只能将每个项集的真超集作为候选项集,通过计算该真超集的时效值和加权支持度来判断其是否为近期高权重频繁项集。那么,在整个数据挖掘过程中,需要对该事务数据库中的任一个或多个项目能够组成的每一个项集均执行计算时效值和加权支持度、根据时效值和加权支持度进行判断的步骤,计算量很大,数据挖掘过程需要耗费很长时间,挖掘效率很低。
为了减小计算量,提高数据挖掘效率,本发明实施例提出了近期高权重频繁高估项集的概念,近期高权重频繁项集都是近期高权重频繁高估项集,且近期高权重频繁高估项集具有向下闭合特性。在挖掘近期高权重频繁项集时,可以先进行第一个挖掘步骤,挖掘出近期高权重频繁高估项集,再进行第二个挖掘步骤,从近期高权重频繁高估项集中挖掘近期高权重频繁项集。在上述第一个挖掘步骤中,由于近期高权重频繁高估项集具有向下闭合特性,对于已确定不是近期高权重频繁高估项集的项集来说,不仅可以将该项集过滤掉,还能将该项集的真超集过滤掉,无需再计算该项集的真超集的时效值和加权支持度,无需再对该项集的真超集进行判断,大大减小了计算量。具体过程详见下述实施例。
图4是本发明实施例提供的一种数据挖掘方法的流程图,参见图4,该方法包括:
401、扫描事务数据库,得到该事务数据库中的多个事务以及每个事务包括的至少一个项目。
402、将每个项目所构成的项集分别作为第一候选项集,对每个第一候选项集执行步骤403。
403、根据包括当前候选项集的指定事务中的项目权重的最大值,计算当前候选项集的事务累积高估权重,并根据每个指定事务的发生时间,计算该当前候选项集的时效值。
具体地,将包括该当前候选项集的事务作为指定事务,指定事务中包括至少一个项目,获取该至少一个项目的权重的最大值,作为该指定事务的事务高估权重,计算每个指定事务的事务高估权重之和,作为该当前候选项集的事务累积高估权重。
其中,tubw(Tq)用于表示指定事务Tq的事务高估权重,n用于指定事务Tq的项目数目,taubw(X)用于表示当前候选项集X的事务累积高估权重。
参见表1,事务T1的事务高估权重可以确定为:tubw(T1)=max{w(b,T1),w(c,T1),w(d,T1),w(e,T1)}=max{0.7,1.0,0.5,0.45}=1.0。对于项集{bce}来说,taubw(bce)=taubw(T1)+taubw(T3)+taubw(T5)+taubw(T10)=5.0。
另外,本发明实施例中计算当前候选项集的时效值的过程与上述步骤203中计算时效值的过程类似,在此不再赘述。
404、判断当前候选项集的时效值是否大于第一阈值,并判断当前候选项集的事务累积高估权重是否大于该第二阈值,执行步骤405或步骤406。
与上述步骤203-204的不同之处在于,本发明实施例没有直接计算当前候选项集的加权支持度,而是先计算出当前候选项集的事务累积高估权重,判断该事务累积高估权重是否大于该第二阈值。如果当前候选项集的事务累积高估权重大于该第二阈值且时效值大于该第一阈值,则将当前候选项集确定为近期高权重频繁高估项集,如果当前候选项集的事务累积高估权重不大于该第二阈值,则确定当前候选项集不是近期高权重频繁高估项集,如果当前候选项集的时效值不大于该第一阈值,则确定当前候选项集不是近期高权重频繁高估项集。则可以保证获取到的近期高权重频繁高估项集满足以下条件:
(1)taubw(X)>α×|D|;(2)R(X)>β。
其中,β用于表示该第一阈值,α×|D|用于表示该第二阈值。
405、当前候选项集的时效值不大于该第一阈值或者事务累积高估权重不大于该第二阈值时,过滤掉该当前候选项集,并过滤掉该当前候选项集的真超集,结束。
在本发明实施例中,根据近期高权重频繁高估项集的定义以及近期高权重频繁项集的定义,可以得到规则1:如果一个项集不是近期高权重频繁高估项集,则该项集不是近期高权重频繁项集。那么,确定当前候选项集不是近期高权重频繁高估项集后,可以直接确定当前候选项集不是近期高权重频繁项集,无需再计算当前候选项集的加权支持度,直接过滤掉该当前候选项集即可。
规则1的证明过程如下:
对于该事务数据库中的一个或多个项目所组成的任一项集X来说,由于项集X的事
务高估权重tubw(Tq)=max{w(i1,Tq),w(i2,Tq),...,w(in,Tq)},则w(X,Tq)≤tubw(Tq),
如果项集X是近期高权重频繁项集,表示wsup(X)>α×|D|且R(X)>β,由于wsup(X)≤taubw(X),则可以确定taubw(X)>α×|D|,项集X是近期高权重频繁高估项集。
相应的,如果项集X不是近期高权重频繁高估项集,则项集X不是近期高权重频繁项集,规则1证明完成。
另外,由于近期高权重频繁高估项集具有向下闭合特性:如果一个项集不是近期高权重频繁高估项集,则该项集的真超集也不是近期高权重频繁高估项集。根据该向下闭合特性,在确定当前候选项集不是近期高权重频繁高估项集时,可以确定该当前候选项集的真超集不是近期高权重频繁高估项集,而根据规则1可以确定该当前候选项集的真超集也不是近期高权重频繁项集,则过滤掉该当前候选项集的真超集。
近期高权重频繁高估项集的向下闭合特性证明如下:
如果项集Xk是近期高权重频繁高估项集,表示taubw(Xk)>α×|D|且R(Xk)>β,由于taubw(Xk)≤taubw(Xk-1),可以确定taubw(Xk-1)>α×|D|,由于R(Xk)<R(Xk-1),可以确定R(Xk-1)>β,即项集Xk-1是近期高权重频繁高估项集,同理地,Xk-2也是近期高权重频繁高估项集,以此类推,Xk的任意子集都是近期高权重频繁高估项集。
相应的,如果项集X不是近期高权重频繁高估项集,则项集X的任意真超集都不是近期高权重频繁高估项集,近期高权重频繁高估项集的向下闭合特性证明完成。
在本发明实施例中,近期高权重频繁项集都是近期高权重频繁高估项集,先获取近期高权重频繁高估项集,利用近期高权重频繁高估项集的向下闭合特性,预先过滤掉已确定不是近期高权重频繁高估项集的项集以及该项集的真超集,缩小了搜索空间,且无需计算这些真超集的加权支持度和时效值,大大减小了计算量,再从近期高权重频繁高估项集中获取近期高权重频繁项集。整个数据挖掘过程计算量小,缩短了数据挖掘时间,提高了数据挖掘效率。
406、当前候选项集的时效值大于该第一阈值且事务累积高估权重大于该第二阈值时,将当前候选项集确定为近期高权重频繁高估项集。
407、根据当前候选项集中每个项目的权重以及包括该当前候选项集的指定事务的数目,计算该当前候选项集的加权支持度,判断该加权支持度是否大于该第二阈值,如果当前候选项集的加权支持度大于该第二阈值,将当前候选项集确定为近期高权重频繁高估项集。
当前候选项集的时效值大于该第一阈值且事务累积高估权重大于该第二阈值时,将当前候选项集确定为近期高权重频繁高估项集,表示当前候选项集可能是近期高权重频繁项集。由于已确定当前候选项集的时效值大于该第一阈值,只需计算当前候选项集的加权支持度,并判断当前候选项集的加权支持度是否大于该第二阈值即可,具体过程与上述步骤203-204类似,在此不再赘述。
408、按照预设项目排列顺序,将排在该当前候选项集中的最后一个项目之后的项目与该当前候选项集合并,将合并后的项集中不包含已被过滤项集的项集作为下一层的候选项集,对每个下一层的候选项集继续执行步骤403。
确定当前候选项集是近期高权重频繁项集后,表示当前候选项集的真超集也有可能是近期高权重频繁项集,则获取当前候选项集的真超集,作为下一层的候选项集。而为了避免重复获取,减小计算量,可以采用投影机制,按照预设项目排列顺序获取下一层的候选项集。
具体地,将当前候选项集中的每个项目按照该预设项目排列顺序进行排列,并将排在该当前候选项集中的最后一个项目之后的项目与该当前候选项集合并,得到当前候选项集的真超集,判断该真超集是否包含已被过滤的项集,如果该真超集包含已被过滤的项集,则将该真超集过滤掉,如果该真超集不包含已被过滤的项集,则将该真超集作为下一层的候选项集。
不同项集可能具有相同的真超集,以第一项集和第二项集为例,如果第三项集是第一项集的真超集,也是第二项集的真超集,如果已确定该第一项集不是近期高权重频繁高估项集,则过滤掉该第三项集,此时即使确定该第二项集是近期高权重频繁高估项集,也无需再将该第三项集作为下一层的候选项集。
例如,项集{ac}不是近期高权重频繁项集,则项集{abc}也不是近期高权重频繁项集,而项集{ab}是近期高权重频繁项集,在获取项集{ab}的真超集时无需将项集{abc}作为下一层的候选项集,直接将项集{abc}过滤掉。
图5是本发明实施例提供的候选项集过滤示意图,图5中以斜线阴影表示根据项集的事务累积高估权重和时效值确定该项集不是近期高权重频繁高估项集,以网格阴影表示项集直接被过滤而没有计算事务累积高估权重和时效值。参见图5,该数据挖掘方法可以包括:
(5-1)将每个项目分别构成第一候选项集,则得到的第一候选项集为{a}、{b}、{c}、{d}、{e},分别计算这5个第一候选项集的事务累积高估权重和时效值,判断每个第一候选项集是否是近期高权重频繁高估项集。
(5-2)假设5个第一候选项集都是近期高权重频繁高估项集,则获取每个第一候选项集的真超集,得到第二候选项集,则根据第一候选项集{a}得到第二候选项集{ab}、{ac}、{ad}、{ae},根据第一候选项集{a}得到第二候选项集{bc}、{bd}、{be},根据第一候选项集{c}得到第二候选项集{cd}、{ce},根据第一候选项集{d}得到第二候选项集{de}。分别计算这10个第二候选项集的事务累积高估权重和时效值,判断每个第二候选项集是否是近期高权重频繁高估项集。
(5-3)假设这10个第二候选项集中的项集{ac}不是近期高权重频繁高估项集,则可以确定项集{ac}的真超集{abc}、{acd}、{ace}、{abcd}、{abce}、{abcde}都不是近期高权重频繁高估项集,这些真超集可以直接过滤掉。
对于除项集{ac}之外的第二候选项集,获取这些第二候选项集的真超集中不包含项集{ac}的项集,得到第三候选项集。则根据第二候选项集{ab}得到第三候选项集{abd}、{abe},根据第二候选项集{ad}得到第三候选项集{ade},根据第二候选项集{bc}得到第三候选项集{bce},根据第二候选项集{bd}得到第三候选项集{bde},根据第二候选项集{cd}得到第三候选项集{cde}。分别计算这7个第三候选项集的事务累积高估权重和时效值,判断每个第三候选项集是否是近期高权重频繁高估项集。
(5-4)假设这7个第三候选项集中的项集{bcd}不是近期高权重频繁高估项集,则可以确定项集{bcd}的真超集{bcde}不是近期高权重频繁高估项集,可以直接过滤掉。
对于除项集{bcd}之外的第三候选项集,获取这些第三候选项集的真超集中不包含项集{ac}和{bcd}的项集,得到第四候选项集,则根据第三候选项集{abd}得到第四候选项集{abde}。
(5-5)计算第四候选项集{abde}的事务累积高估权重和时效值,判断第四候选项集{abde}是否是近期高权重频繁高估项集。
通过对图3与图5、上述步骤(3-1)至(3-5)与步骤(5-1)至(5-5)进行对比可以看出,采用先获取近期高权重频繁高估项集再获取近期高权重频繁项集的方式,预先过滤掉了很多候选项集,无需计算这些项集的加权支持度和时效值,缩小了搜索空间,大大减小了计算量,缩短了数据挖掘时间,提高了数据挖掘效率。
可选地,在过滤第二候选项集时,可以先将不同的项目分别作为行元素和列元素,建立EW2S(Estimated Weight of 2-itemset Structure,2-项集的高估权重结构)。对于EW2S中的任一指定位置来说,在该指定位置添加该位置所对应的行元素与该指定位置所对应的列元素所组成的项集的事务累积高估权重。其中,该指定位置是指根据该预设项目排列顺序,对应的行元素排在对应的列元素之后的位置。
例如,创建的EW2S可以如下表3所示,表3中包括每个项目数目为2的项集的事务累积高估权重,通过判断表3中每个事务累积高估权重是否大于该第二阈值,可以不重复地获取到第二候选项集。例如EW2S中包括指定位置[c,b]的事务累积高估权重,而不包括位置[b,c]的事务累积高估权重,则只需对项集{bc}的事务累积高估权重进行一次判断过程,避免了重复判断。
表3
a | b | c | d | e | f | |
b | 1.0 | |||||
c | 4.0 | 4.0 | ||||
d | 2.0 | 2.4 | 4.0 | |||
e | 3.0 | 4.0 | 6.0 | 2.0 | ||
f | 4.0 | 1.7 | 4.0 | 2.7 | 3.0 |
本发明实施例提供的方法,通过根据每个指定事务的发生时间,计算该候选项集的时效值,从而挖掘出时效值大于该第一阈值且该加权支持度大于该第二阈值的近期高权重频繁项集。该数据挖掘方法不仅考虑到项集的权重因素,还考虑到了项集的时效性因素,能够过滤掉在很长时间之前出现的高权重频繁项集,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。进一步地,采用先获取近期高权重频繁高估项集再获取近期高权重频繁项集的方式,能够预先对候选项集进行过滤,无需计算这些被过滤项集的加权支持度和时效值,缩小了搜索空间,大大减小了计算量,缩短了数据挖掘时间,提高了数据挖掘效率。
本发明实施例提供了两种用于挖掘近期高权重频繁项集的算法:RWFIM-P(RecentWeighted Frequent Itemset Projected-based,基于投影机制的近期高权重频繁项集挖掘)算法和RWFIM-PE(Recent Weighted Frequent Itemset Projected-based with Earlypruning,基于投影和预先修剪机制的近期高权重频繁项集挖掘)算法。
RWFIM-P算法的伪代码如下:
Input:D,事务数据库,wtable,预设项目权重表,δ,预设时间衰减因子,α,预设最小加权支持度阈值,β,最小时效值。
其中,Mining-RWFI(ij,dbij,1)为数据挖掘函数,用于挖掘由项目ij组成的近期高权重频繁项集。该数据挖掘函数的伪代码如下:
Input:X,a prefix itemset;dbX,the projected db of X;k,the length of k-itemset X
RWFIM-P算法在步骤1-9中先获取是近期高权重频繁项集的项目,即项目数目为1的近期高权重频繁项集。在步骤10-14中,对于每个项目数目为1的近期高权重频繁项集,采用投影机制(project),获取该项集的真超集,从真超集中再获取近期高权重频繁项集。但是,RWFIM-P算法中未预先对项集的真超集进行过滤,对每个项集进行判断之后,会对每个项集的每个真超集分别进行判断。
RWFIM-PE算法的伪代码如下:
RWFIM-PE算法在执行完数据挖掘函数Mining-RWFI(X,dbX,k)中的1-3步后,先建立了EW2S(Estimated Weight of 2-itemset Structure,2-项集的高估权重结构),在获取到项集的真超集时,如果真超集的事务累积高估权重小于该第二阈值,则直接将该真超集过滤掉,采用了预先修剪机制,无需计算该真超集的事务累积高估权重和时效值,大大减小了计算量。
通过采用现有技术的PWA算法(Projected-based Weighted frequent itemsetsmining Algorithm,基于投影机制的高权重频繁项集挖掘算法)、本发明实施例提供的RWFIM-P算法和RWFIM-PE算法,分别对三个真实的事务数据库:foodmart数据库、retail数据库和chess数据库,以及一个模拟数据库T1014D100K进行了数据挖掘实验,所得到的挖掘结果如下:
(1)运行时间:在不同的最小加权支持度阈值的情况下,PWA算法、RWFIM-P算法和RWFIM-PE算法在各个数据库中的运行时间如图6a、6b、6c和6d所示。图中的横轴表示最小加权支持度阈值,纵轴表示运行时间,且图中以不同的标记表示不同的算法,星形表示PWA算法,圆形表示RWFIM-P算法,方形表示RWFIM-PE算法。
与PWA算法相比,RWFIM-P算法和RWFIM-PE算法的运行时间更短,数据挖掘效率更高。这是由于:RWFIM-P算法和RWFIM-PE算法考虑了时效性因素,缩小了搜索空间,挖掘出了更少的项集。
与RWFIM-P算法相比,RWFIM-PE算法的运行时间更短,这是由于:RWFIM-P算法中为了保证向下闭合特性先挖掘出近期高权重频繁高估项集,再从中挖掘近期高权重频繁项集但未采用预先过滤的策略,消耗了更多的计算量。而RWFIM-PE算法采用了预先过滤的策略,对过滤的项集提前终止了操作,大大减小了计算量。
(2)运行时间:在不同的最小时效值阈值(即第一阈值)的情况下,PWA算法、RWFIM-P算法和RWFIM-PE算法在各个数据库中的运行时间如图7a、7b、7c和7d所示。图中的横轴表示最小时效值阈值,纵轴表示运行时间,且图中以不同的标记表示不同的算法,星形表示PWA算法,圆形表示RWFIM-P算法,方形表示RWFIM-PE算法。
PWA算法未考虑项集的时效性因素,因此最小时效值阈值对PWA算法的运行时间未产生影响,在不同的最小时效值阈值的情况下PWA算法的运行时间未发生变化,
与PWA算法相比,RWFIM-P算法和RWFIM-PE算法的运行时间更短,当最小时效值阈值设置的较高时,RWFIM-P算法和RWFIM-PE算法的运行时间甚至要比PWA算法的运行时间要快一或两个数量级,这是由于当最小时效值阈值设置的较高时,可以获取到更少的近期高权重频繁项集,压缩了搜索空间,提高了挖掘效率。
(3)项集数量:在不同的最小加权支持度阈值的情况下,在各个数据库中挖掘出的高权重频繁项集和近期高权重频繁项集的数量如图8a、8b、8c和8d所示。图中的横轴表示最小加权支持度阈值,纵轴表示项集数量,且图中以不同的标记表示不同的项集,星形表示高权重频繁项集(WFIs),圆形表示近期高权重频繁项集(RWFIs)。
当最小加权支持度阈值增大时,生成的项集数量减小。且无论在稀疏项集还是密集项集中,RWFI的数量小于WFI的数量,这是由于虽然能够获取到大量的高权重频繁项集,但考虑到事务的时效性,只能获取到较少的近期高权重频繁项集。尤其是当该最小加权支持度阈值较小时会获取到许多冗余的WFI,使得RWFI的数量远小于WFI的数量。
(4)项集数量:在不同的最小时效值阈值的情况下,在各个数据库中挖掘出的高权重频繁项集和近期高权重频繁项集的数量如图9a、9b、9c和9d所示。图中的横轴表示最小时效值阈值,纵轴表示项集数量,且图中以不同的标记表示不同的项集,星形表示高权重频繁项集(WFIs),圆形表示近期高权重频繁项集(RWFIs)。
当最小时效值阈值增大时,获取到的RWFI的数量急剧减小,而WFI的数量保持稳定。虽然RWFI的数量很小,但所获取到的RWFI更有实用价值。
(5)可扩展性:在项集长度(即项集中的项目数目)不同的情况下,PWA算法、RWFIM-P算法和RWFIM-PE算法在T1014D100K数据库中的运行时间如图10a所示,内存消耗如图10b所示。图10a的横轴表示项集长度,纵轴表示运行时间,且以不同的标记表示不同的算法,星形表示PWA算法,圆形表示RWFIM-P算法,方形表示RWFIM-PE算法。图10b中的横轴表示项集长度,纵轴表示内存消耗,每个项集长度下按照从左至右的顺序依次为PWA算法、RWFIM-P算法和RWFIM-PE算法的内存消耗柱形图。
在项集长度不同的情况下,在T1014D100K数据库中挖掘出的高权重频繁项集和近期高权重频繁项集的数量如图10c所示,图10c的横轴表示项集长度,纵轴表示项集,且,图10c中以不同的标记表示不同的项集,星形表示高权重频繁项集(WFIs),圆形表示近期高权重频繁项集(RWFIs)。
图11是本发明实施例提供的一种数据挖掘装置结构示意图,参见图11,该装置包括:
扫描模块1101,用于扫描事务数据库,得到该事务数据库中的多个事务以及每个事务包括的至少一个项目;
候选项集获取模块1102,用于根据该事务数据库中的至少一个项目,获取多个候选项集;
第一计算模块1103,用于对于每个候选项集,根据该候选项集中每个项目的权重以及包括该候选项集的指定事务的数目,计算该候选项集的加权支持度;
第二计算模块1104,用于根据每个指定事务的发生时间,计算该候选项集的时效值;
判断模块1105,用于判断该候选项集的时效值是否大于第一阈值;
该判断模块1105,还用于判断该候选项集的加权支持度是否大于第二阈值;
确定模块1106,用于当该时效值大于该第一阈值且该加权支持度大于该第二阈值时,将该候选项集确定为近期高权重频繁项集。
本发明实施例提供的装置,通过根据每个指定事务的发生时间,计算该候选项集的时效值,从而挖掘出时效值大于该第一阈值且该加权支持度大于该第二阈值的近期高权重频繁项集。该数据挖掘方法不仅考虑到项集的权重因素,还考虑到了项集的时效性因素,能够过滤掉在很长时间之前出现的高权重频繁项集,降低了出现干扰的可能性,且挖掘出的近期高权重频繁项集中的项目之间的关联规则可以准确体现近期的关联规则,提高了准确性和实用性。
可选地,该第一计算模块1103包括:
权重计算单元,用于计算该候选项集中每个项目的权重平均值,作为该候选项集的权重;
支持度计算单元,用于计算该事务数据库中包括该候选项集的指定事务的数目,作为该候选项集的支持度;
加权支持度计算单元,用于计算该候选项集的权重与支持度的乘积,作为该候选项集的加权支持度。
可选地,该第二计算模块1104用于根据每个指定事务的发生时间,计算每个指定事务的时效值;将计算出的每个指定事务的时效值之和作为该候选项集的时效值。
可选地,该第二计算模块1104还用于对于每个指定事务,根据该指定事务的序号,应用以下公式,计算该指定事务的时效值:
R(Tq)=(1-δ)|D|-q;
其中,Tq用于表示该指定事务,R(Tq)用于表示该指定事务Tq的时效值,δ用于表示预设时间衰减因子,0≤δ<1,D用于表示该事务数据库,|D|用于表示该事务数据库的事务数目,q用于表示该指定事务Tq的序号,该指定事务Tq的序号由该指定事务Tq的发生时间确定。
可选地,该装置还包括:
高估权重计算模块,用于将每个指定事务中项目权重的最大值作为对应指定事务的事务高估权重;
累积计算模块,用于计算每个指定事务的事务高估权重之和,作为该候选项集的事务累积高估权重;
该判断模块1105,还用于判断该候选项集的事务累积高估权重是否大于该第二阈值;
高估确定模块,用于当该时效值大于该第一阈值且该候选项集的事务累积高估权重大于该第二阈值时,将该候选项集确定为近期高权重频繁高估项集。
可选地,该候选项集获取模块1102还用于当第一候选项集的时效值大于该第一阈值且该第一候选项集的事务累积高估权重大于该第二阈值时,将该第一候选项集的真超集作为近期高权重频繁高估项集的第二候选项集。
可选地,该高估确定模块还用于当该候选项集的时效值不大于该第一阈值或者该候选项集的事务累积高估权重不大于该第二阈值时,过滤该候选项集和该候选项集的真超集。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的数据挖掘装置在进行数据挖掘时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据挖掘装置与数据挖掘方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据挖掘方法,其特征在于,所述方法包括:
在至少一个目标用户执行操作行为的过程中,统计所述至少一个目标用户的操作行为,以及每次操作行为的至少一个操作对象,所述操作行为构成一个事务,所述操作行为的至少一个操作对象构成所述事务中的至少一个项目,得到多个事务以及每个事务包括的至少一个项目,构成事务数据库;
扫描所述事务数据库,得到所述事务数据库中的所述多个事务以及所述每个事务包括的至少一个项目;根据所述事务数据库中的至少一个项目,获取多个候选项集;
对于每个候选项集,计算所述候选项集中每个项目的权重平均值,作为所述候选项集的权重;计算所述事务数据库中包括所述候选项集的指定事务的数目,作为所述候选项集的支持度;计算所述候选项集的权重与支持度的乘积,作为所述候选项集的加权支持度;
根据每个指定事务的发生时间,计算所述候选项集的时效值;判断所述候选项集的时效值是否大于第一阈值;判断所述候选项集的加权支持度是否大于第二阈值;
当所述时效值大于所述第一阈值且所述加权支持度大于所述第二阈值时,将所述候选项集确定为近期高权重频繁项集;
基于用户当前选择的项目,将所述项目所属的近期高权重频繁项集中所述用户未选择的项目推荐给所述用户。
2.根据权利要求1所述的方法,其特征在于,根据每个指定事务的发生时间,计算所述候选项集的时效值,包括:
根据每个指定事务的发生时间,计算每个指定事务的时效值;
将计算出的每个指定事务的时效值之和作为所述候选项集的时效值。
3.根据权利要求2所述的方法,其特征在于,所述根据每个指定事务的发生时间,计算包括每个指定事务的时效值,包括:
对于每个指定事务,根据所述指定事务的序号,应用以下公式,计算所述指定事务的时效值:
R(Tq)=(1-δ)|D|-q;
其中,Tq用于表示所述指定事务,R(Tq)用于表示所述指定事务Tq的时效值,δ用于表示预设时间衰减因子,0≤δ<1,D用于表示所述事务数据库,|D|用于表示所述事务数据库的事务数目,q用于表示所述指定事务Tq的序号,所述指定事务Tq的序号由所述指定事务Tq的发生时间确定。
4.根据权利要求1所述的方法,其特征在于,所述判断所述候选项集的加权支持度是否大于第二阈值之前,所述方法还包括:
将每个指定事务中项目权重的最大值作为对应指定事务的事务高估权重;
计算每个指定事务的事务高估权重之和,作为所述候选项集的事务累积高估权重;
判断所述候选项集的事务累积高估权重是否大于所述第二阈值;
当所述时效值大于所述第一阈值且所述候选项集的事务累积高估权重大于所述第二阈值时,将所述候选项集确定为近期高权重频繁高估项集;
执行判断已确定的近期高权重频繁高估项集的加权支持度是否大于所述第二阈值的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当第一候选项集的时效值大于所述第一阈值且所述第一候选项集的事务累积高估权重大于所述第二阈值时,将所述第一候选项集的真超集作为近期高权重频繁高估项集的第二候选项集。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述候选项集的时效值不大于所述第一阈值或者所述候选项集的事务累积高估权重不大于所述第二阈值时,过滤所述候选项集和所述候选项集的真超集。
7.一种数据挖掘装置,其特征在于,所述装置包括:
用于执行以下操作的模块:在至少一个目标用户执行操作行为的过程中,统计所述至少一个目标用户的操作行为,以及每次操作行为的至少一个操作对象,所述操作行为构成一个事务,所述操作行为的至少一个操作对象构成所述事务中的至少一个项目,得到多个事务以及每个事务包括的至少一个项目,构成事务数据库;
扫描模块,用于扫描所述事务数据库,得到所述事务数据库中的所述多个事务以及所述每个事务包括的至少一个项目;
候选项集获取模块,用于根据所述事务数据库中的至少一个项目,获取多个候选项集;
第一计算模块,用于对于每个候选项集,根据所述候选项集中每个项目的权重以及包括所述候选项集的指定事务的数目,计算所述候选项集的加权支持度;
第二计算模块,用于根据每个指定事务的发生时间,计算所述候选项集的时效值;
判断模块,用于判断所述候选项集的时效值是否大于第一阈值;
所述判断模块,还用于判断所述候选项集的加权支持度是否大于第二阈值;
确定模块,用于当所述时效值大于所述第一阈值且所述加权支持度大于所述第二阈值时,将所述候选项集确定为近期高权重频繁项集;
用于执行以下操作的模块:基于用户当前选择的项目,将所述项目所属的近期高权重频繁项集中所述用户未选择的项目推荐给所述用户;
所述第一计算模块包括:
权重计算单元,用于计算所述候选项集中每个项目的权重平均值,作为所述候选项集的权重;
支持度计算单元,用于计算所述事务数据库中包括所述候选项集的指定事务的数目,作为所述候选项集的支持度;
加权支持度计算单元,用于计算所述候选项集的权重与支持度的乘积,作为所述候选项集的加权支持度。
8.根据权利要求7所述的装置,其特征在于,所述第二计算模块用于根据每个指定事务的发生时间,计算每个指定事务的时效值;将计算出的每个指定事务的时效值之和作为所述候选项集的时效值。
9.根据权利要求8所述的装置,其特征在于,所述第二计算模块还用于对于每个指定事务,根据所述指定事务的序号,应用以下公式,计算所述指定事务的时效值:
R(Tq)=(1-δ)|D|-q;
其中,Tq用于表示所述指定事务,R(Tq)用于表示所述指定事务Tq的时效值,δ用于表示预设时间衰减因子,0≤δ<1,D用于表示所述事务数据库,|D|用于表示所述事务数据库的事务数目,q用于表示所述指定事务Tq的序号,所述指定事务Tq的序号由所述指定事务Tq的发生时间确定。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
高估权重计算模块,用于将每个指定事务中项目权重的最大值作为对应指定事务的事务高估权重;
累积计算模块,用于计算每个指定事务的事务高估权重之和,作为所述候选项集的事务累积高估权重;
所述判断模块,还用于判断所述候选项集的事务累积高估权重是否大于所述第二阈值;
高估确定模块,用于当所述时效值大于所述第一阈值且所述候选项集的事务累积高估权重大于所述第二阈值时,将所述候选项集确定为近期高权重频繁高估项集。
11.根据权利要求10所述的装置,其特征在于,所述候选项集获取模块还用于当第一候选项集的时效值大于所述第一阈值且所述第一候选项集的事务累积高估权重大于所述第二阈值时,将所述第一候选项集的真超集作为近期高权重频繁高估项集的第二候选项集。
12.根据权利要求10所述的装置,其特征在于,所述高估确定模块还用于当所述候选项集的时效值不大于所述第一阈值或者所述候选项集的事务累积高估权重不大于所述第二阈值时,过滤所述候选项集和所述候选项集的真超集。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至6任一权利要求所述的数据挖掘方法中所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510106336.0A CN106033424B (zh) | 2015-03-11 | 2015-03-11 | 数据挖掘方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510106336.0A CN106033424B (zh) | 2015-03-11 | 2015-03-11 | 数据挖掘方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106033424A CN106033424A (zh) | 2016-10-19 |
CN106033424B true CN106033424B (zh) | 2020-04-21 |
Family
ID=57149771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510106336.0A Active CN106033424B (zh) | 2015-03-11 | 2015-03-11 | 数据挖掘方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106033424B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009180B (zh) * | 2016-10-28 | 2021-09-21 | 哈尔滨工业大学深圳研究生院 | 一种高质量模式项集挖掘方法、装置及数据处理设备 |
CN107092668B (zh) * | 2017-04-10 | 2021-12-10 | 宏脉信息技术(广州)股份有限公司 | 一种数据分析方法 |
CN109711912A (zh) * | 2017-10-25 | 2019-05-03 | 贵州师范学院 | 一种融合FP-growth算法和Slope-One算法的混合推荐模型 |
CN108346085A (zh) * | 2018-01-30 | 2018-07-31 | 南京邮电大学 | 基于加权频繁项集挖掘算法的电商平台个性化推荐方法 |
CN108805755B (zh) * | 2018-07-04 | 2021-11-23 | 浪潮卓数大数据产业发展有限公司 | 一种旅游套餐生成方法及装置 |
CN109582714B (zh) * | 2018-12-03 | 2023-07-25 | 中电万维信息技术有限责任公司 | 一种基于时间衰减关联的政务事项数据处理方法 |
CN110096629B (zh) * | 2019-05-15 | 2023-07-28 | 重庆大学 | 一种用于事务处理的内存优化方法 |
CN110442623B (zh) * | 2019-08-08 | 2021-08-27 | 厦门久凌创新科技有限公司 | 大数据挖掘方法、装置及数据挖掘服务器 |
CN113850410B (zh) * | 2021-08-03 | 2022-11-22 | 望海康信(北京)科技股份公司 | 病种控费项目优化方法、系统及相应设备和存储介质 |
CN115617881B (zh) * | 2022-12-20 | 2023-03-21 | 山东科技大学 | 一种不确定交易数据库中多序列的周期频繁模式挖掘方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9489360B2 (en) * | 2013-09-05 | 2016-11-08 | Audible, Inc. | Identifying extra material in companion content |
CN103995882B (zh) * | 2014-05-28 | 2017-07-07 | 南京大学 | 基于MapReduce的概率频繁项集挖掘方法 |
-
2015
- 2015-03-11 CN CN201510106336.0A patent/CN106033424B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106033424A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033424B (zh) | 数据挖掘方法和装置 | |
CN103440335B (zh) | 视频推荐方法及装置 | |
CN107391692A (zh) | 一种推荐效果的评估方法及装置 | |
US20130024167A1 (en) | Computer-Implemented Systems And Methods For Large Scale Automatic Forecast Combinations | |
US11875368B2 (en) | Proactively predicting transaction quantity based on sparse transaction data | |
EP3371764A1 (en) | Systems and methods for pricing optimization with competitive influence effects | |
CN110971659A (zh) | 推荐消息的推送方法、装置及存储介质 | |
US20070233532A1 (en) | Business process analysis apparatus | |
US20120310697A1 (en) | Variance management | |
Chan et al. | Continuous model selection for large-scale recommender systems | |
US9697275B2 (en) | System and method for identifying groups of entities | |
CN108427756A (zh) | 基于同类用户模型的个性化查询词补全推荐方法和装置 | |
CN112925978A (zh) | 一种推荐系统评测方法、装置、电子设备和存储介质 | |
US11321359B2 (en) | Review and curation of record clustering changes at large scale | |
US20150088789A1 (en) | Hierarchical latent variable model estimation device, hierarchical latent variable model estimation method, supply amount prediction device, supply amount prediction method, and recording medium | |
JP5993273B2 (ja) | 意思決定支援システム及び方法 | |
CN113570437A (zh) | 一种产品推荐方法和装置 | |
CN103713990A (zh) | 一种用于软件缺陷预测的方法和装置 | |
Al-Sabaawi et al. | A novel overlapping method to alleviate the cold-start problem in recommendation systems | |
GB2576663A (en) | Validation of search query in data analysis system | |
EP2541409B1 (en) | Parallelization of large scale data clustering analytics | |
Zhang et al. | Comparison of the number of nodes explored by cyclic best first search with depth contour and best first search | |
CN105824976A (zh) | 一种优化分词库的方法和装置 | |
Bala et al. | Use of the multiple imputation strategy to deal with missing data in the ISBSG repository | |
JP2015187773A (ja) | データ解析装置、データ解析プログラム及びデータ解析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Lin Junwei Inventor after: Gan Wensheng Inventor after: Wang Juhong Inventor after: Chen Wei Inventor before: Lin Junwei Inventor before: Wang Juhong Inventor before: Chen Wei Inventor before: Gan Wensheng |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |