CN106294494B - 项集挖掘方法及装置 - Google Patents
项集挖掘方法及装置 Download PDFInfo
- Publication number
- CN106294494B CN106294494B CN201510310487.8A CN201510310487A CN106294494B CN 106294494 B CN106294494 B CN 106294494B CN 201510310487 A CN201510310487 A CN 201510310487A CN 106294494 B CN106294494 B CN 106294494B
- Authority
- CN
- China
- Prior art keywords
- item set
- utility
- item
- transaction
- discount
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种项集挖掘方法及装置,属于数据挖掘技术领域。所述方法包括:获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含各个数据项对应的折扣类型和折扣参数;对于数据库中的各个项集,根据项集中包含的数据项对应的成本价、售价、折扣类型和折扣参数,计算项集的实际效用值,该项集包含至少一个数据项;当实际效用值≥最低效用阈值时,确定项集为高效用项集。本发明达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
Description
技术领域
本发明实施例涉及数据挖掘技术领域,特别涉及一种项集挖掘方法及装置。
背景技术
数据库中通常包括有至少一个事务(英文:Transaction),每个事务中包括至少一个数据项(英文:item),比如,一条关于购物记录的事务中,包括商品名称和购买数量等数据项。
为了发现不同数据项之间的关联规则,需要进行目标数据项集的挖掘。项集(英文:Itemsets)是由至少一个数据项构成的集合,用于表征数据库中内在的一种关联规则。HUIM(High-Utility Itemsets Mining,高效用项集挖掘)作为一种常见的数据挖掘方式,用于从数据库中挖掘出由不同数据项组成的效用值较高的项集。在现有的基于HUIM的算法中,根据不同数据项各自对应的效用值,计算数据库中各个项集对应的效用值,当该项集对应的效用值大于或等于预设效用值时,确定该项集为高效用项集并进行挖掘,从而实现从数据库中挖掘出高效用的项集。
在实现本发明实施例的过程中,发明人发现上述技术至少存在以下问题:在现有的基于HUIM的算法中,数据项对应的效用值被认为是固定不变的,而在实际情况中,数据库中的数据项对应的效用值通常是变化的,导致计算得到的项集的效用值不准确,挖掘出的高效用项集的实际使用价值较低。比如,当数据库中的数据项对应商品时,该数据项的效用值即为商品的利润,而商品的利润又通常与商品的成本价、售价和打折情况有关,即商品的利润是变化的。
发明内容
为了解决上述技术的问题,本发明实施例提供了一种项集挖掘方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种项集挖掘方法,该方法包括:
获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含各个数据项对应的折扣类型和折扣参数;
对于数据库中的各个项集,根据项集中包含的数据项对应的成本价、售价、折扣类型和折扣参数,计算项集的实际效用值;项集包含至少一个数据项;
当实际效用值≥最低效用阈值时,确定项集为高效用项集。
根据本发明实施例的第二方面,提供一种项集挖掘装置,该装置包括:
获取模块,用于获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含数据项对应的折扣类型和折扣参数;
计算模块,用于对于数据库中的各个项集,根据项集中包含的数据项对应的成本价、售价、折扣类型和折扣参数,计算项集的实际效用值;项集包含至少一个数据项;
确定模块,用于当实际效用值≥最低效用阈值时,确定项集为高效用项集。
本发明实施例提供的技术方案带来的有益效果是:
通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明一个实施例提供的项集挖掘方法的方法流程图;
图1B是本发明一个实施例提供的项集挖掘方法的方法流程图;
图2A是本发明另一实施例提供的项集挖掘方法的方法流程图;
图2B是本发明另一实施例提供的项集挖掘方法的方法流程图;
图3A是本发明再一实施例提供的项集挖掘方法的方法流程图;
图3B是本发明再一实施例提供的项集挖掘方法中生成的第1-PNU表的结构示意图;
图3C是本发明再一实施例提供的项集挖掘方法所涉及的生成EUCS表过程的方法流程图;
图4是本发明一个实施例提供的项集挖掘装置的结构方框图;
图5是本发明另一实施例提供的项集挖掘装置的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于对本发明实施例进行说明,预先对本发明实施例涉及的基本概念进行如下介绍:
1、事务(英文:Transaction):指数据库中的一条记录。比如,在表一所示的数据库中,该数据库中共包含10条记录,即数据库中包含10个事务,且每条记录分别对应一条购买记录,该购买记录中包含购买商品的名称等信息。
表一
TID | 事务数据 |
1 | (A,3),(C,2),(E,4) |
2 | (D,1),(F,2) |
3 | (A,1),(B,3),(C,1),(D,3),(F,1) |
4 | (B,1),(D,1),(F,3) |
5 | (B,1),(C,4) |
6 | (A,2),(B,6),(C,3),(D,4),(F,1) |
7 | (C,1),(D,2),(E,5) |
8 | (B,2),(E,1) |
9 | (B,2),(D,1),(F,1) |
10 | (A,4),(B,1),(D,1),(E,3) |
该数据库中,每个事务中还记录有各个数据项各自对应的数量。比如,在事务1中,数据项A对应的数量为3,数据项C对应的数量为2,数据项E对应的数量为4,该条记录的实际意义可以为:一位顾客购买了3件A商品,2件C商品以及4件E商品。
2、事务编号(英文:TID):数据库中不同事务的编号。
3、数据项:事务中记录的每条信息项目,且一个事务中包含至少一个数据项。比如,在表一所示的数据库中,事务中的数据项则可以是购买记录中,购买商品的名称。
4、项集:至少一个数据项构成的集合,用于表征数据库内在的一种关联规则。事务与项集的不同的点是,事务通常是由实际的事件所触发生成的数据库中的记录;而项集通常是从数据库挖掘而出的,并不一定有实际的含义。
5、k-项集:包含有k个数据项的集合。比如,项集A为1-项集,即该项集中只包含数据项A;项集AB为2-项集,即该项集中包含数据项A和数据项B。
6、价格表(英文名:ptable):用于记录数据库中各个数据项对应的成本价及售价。比如,在表一所示的数据库中,包含数据项A、B、C、D、E和F,各个数据项对应的成本价和售价可以示意性的如表二所示。
表二
数据项 | 成本价 | 售价 |
A | 25 | 35 |
B | 8 | 10 |
C | 70 | 128 |
D | 5 | 10 |
E | 38 | 50 |
F | 10 | 18 |
7、折扣表(英文名:stable):用于记录数据库中各个数据项各自对应的折扣类型和折扣参数。其中,各个数据项对应的折扣类型可以相同或者不同,同一折扣类型对应的折扣参数可以相同或者不同。比如,结合上述表一和表二,该折扣表可以示意性的如表三所示。
表三
数据项 | 折扣类型Sg<sub>i</sub> | 折扣参数v<sub>1</sub> | 折扣参数v<sub>2</sub> |
A | 1 | 0.75 | - |
B | 1 | 1.0 | - |
C | 2 | 2 | 1 |
D | 1 | 0 | - |
E | 3 | 2 | 0.6 |
F | 1 | 0.8 | - |
其中,折扣类型1即Sg1所指示的折扣策略为:顾客以(售价×v1)购得商品X。比如,当顾客购买商品A时,对应的v1为0.75,即以售价的75%出售该商品,即用户以35×0.75=26.25购得商品A;
折扣类型2即Sg2所指示的折扣策略为:顾客每购买v1个商品X,可免费获赠v2个商品X。比如,当顾客购买2个商品C时,即可免费获赠1个商品C;
折扣类型3即Sg3所指示的折扣策略为:顾客购买商品X的数量到达v1后,后续购买商品X时,以(售价×v2)购得商品X。比如,当顾客购买商品E的数量达到2个后,后续购买商品E时,可以按照50×0.6=30的价格购得商品E。
8、效用值:数据库中各个数据项对应的效用或利益,表示为效用值。该效用值与数据项对应的成本价、售价、折扣类型和折扣参数有关,且数据项对应的效用值可以为正,也可以为负。结合表二和表三可知,数据项A对应的效用值为35×0.75-25=1.25>0;数据项D对应的效用值即为10×0-5=-5<0。
需要说明的是,结合上述表二和表三,能够发现,数据项对应的单位效用可能会发生改变。比如,当数据项E在事务中对应的数量为1或2时,数据项E的单位效用为50-38=12;当数据项E在事务中对应的数量大于2时,数据项E的单位效用即变为50×0.6-38=-8。
9、ubtu(upper-bound transaction utility,事务效用上限):事务对应的ubtu指事务中效用值为正的数据项对应的效用值之和,即事务中数据项的正效用之和。结合上述表一、表二和表三,该数据库中各个事务对应的ubtu可以如表四所示。
表四
比如,事务1中,由于各个数据项对应的效用值均为正,所以事务1对应的ubtu即为3.75+116+8.0=127.75;又比如,事务2中,由于数据项D对应的效用值为负,所以事务2对应的ubtu除数据项D以外的其它数据项的效用值之和,即数据项D的效用值8.8。显而易见的,事务对应的ubtu大于等于事务中所有数据项对应的效用值之和。
10、ubtwu(upper-bound transaction-weighted utility,事务加权效用上限):k-项集对应的ubtwu指包含k-项集的事务对应的ubtu之和。比如,结合表四所示,包含项集A的事务的TID为1、3、6和10,项集A对应的ubtwu即为事务1、3、6和10对应ubtu之和=127.75+69.65+64.9+23=285.3。
11、HTWUI(High Transaction-Weighted Utility Itemset,高事务加权效用项集):指ubtwu≥最低效用阈值的项集。比如,以最低效用阈值为100为例,项集C对应的ubtwu=426.3>100,即项集C为HTWUI。
12、HUI(High Utility Itemset,高效用项集):指实际效用值≥最低效用阈值的项集。比如,项集C的实际效用值为116+58+104+46+58=382>100,即项集C为HUI;又比如,项集ABCF的实际效用值1.25+6+58+4.4+2.5+12+46+4.4=134.55>100,即项集ABCF也为HUI。
13、HUID(mining High Utility Itemset with various Discount strategy,基于多折扣策略的高效用数据挖掘):用于根据数据库中各个数据项各自对应的折扣类型、折扣参数、售价及成本价,从数据库中挖掘出实际效用值大于等于最低效用阈值的项集的方法。
14、第k-TID表:包含k-项集与包含该k-项集的事务的TID的对应关系。结合表一,第1-TID表可以示意性的如表五所示。
表五
项集 | TIDs |
A | 1、3、6、10 |
B | 3、4、5、6、8、9、10 |
C | 1、3、5、6、7 |
D | 2、3、4、6、7、9、10 |
E | 1、7、8、10 |
F | 2、3、4、6、9 |
15、项集效用(英文:Iutility):指定项集在指定事务中对应的效用值。比如,结合表一、表二和表三,指定项集F在指定事务2中的项集效用为2×(18×0.8-10)=8.8。
16、项集负效用(英文:Nutility):指定项集在指定事务中的负效用,即项集中包含的数据项的负效用之和。比如,结合表一、表二和表三,指定项集D在事务4中的项集负效用即为1×(10×0-5)=-5;且项集BD、DF、BDF在事务中的项集负效用均为-5。
17、项集正效用(英文:Putility):指定项集在指定事务中项集效用与项集负效用之差,即项集中包含的数据项的正效用之和。比如,结合表一、表二和表三,项集CD在事务3中的项集效用为58-15=43,项集CD在事务3中的项集负效用为-15,项集CD在事务3中的项集正效用则为43-(-15)=58。
18、项集剩余效用(英文:Rutility):在指定事务中,除指定项集的项集效用之外,且排序在指定项集后面的所有项集的正效用之和。需要说明的是,在计算指定项集的项集效用之前,需要根据项集的ubtwu大小,按照升序对项集进行排序,在计算指定项集的项集剩余效用时,仅计算排序在该指定项集之后的所有项集的正效用之和。比如,结合表一、表二和表三,首先根据1-项集的ubtwu大小排序,得到的序列为F<E<D<A<B<C,在计算事务3中,项集B的项集剩余效用时,由于仅项集C排序在项集B之后,所以项集B的项集剩余效用=项集C的效用值=58;而在计算事务3中,项集C的项集剩余效用时,由于项集C之后不存在其他的项集,所以项集C的项集剩余效用值为0。
19、PNU表(英文:Positive-and-Negative Utility List):包含项集所在事务的TID、项集对应的Iutility、项集对应的Nutility以及项集对应的Rutility的表。比如,结合表一、表二和表三,项集F对应的PNU表可以如表六所示。
表六
20、EUCS表(英文:Estimated Utility Co-occurrence Strategy List):包含k项集和其对应的ubtwu。结合表一、表二和表三,2-项集对应的EUCS表可以如表七所示。
表七
项集 | A | B | C | D | E | F |
B | 157.55 | - | - | - | - | - |
C | 262.3 | 240.55 | - | - | - | - |
D | 157.55 | 181.15 | 192.55 | - | - | - |
E | 150.75 | 39.0 | 185.75 | 81.0 | - | - |
F | 134.55 | 158.15 | 134.55 | 166.95 | 0 | - |
比如,2-项集AB对应的ubtwu即为157.55;2-项集AF对应的ubtwu为134.55。
为了方便理解,本文中的所有实施例均结合表一至表七中的数据进行举例说明。
请参考图1A,其示出了本发明一个实施例提供的项集挖掘方法的方法流程图。该方法包括:
步骤101,获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含各个数据项对应的折扣类型和折扣参数。
步骤102,对于数据库中的各个项集,根据项集中包含的数据项对应的成本价、售价、折扣类型和折扣参数,计算项集的实际效用值;项集包含至少一个数据项。
步骤103,当实际效用值≥最低效用阈值时,确定项集为高效用项集。
综上所述,本实施例提供的项集挖掘方法,通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
可选地,如图1B所示,上述步骤102可以包括步骤102A、步骤102B和步骤102C:
步骤102A,对于包含该项集的事务,获取该项集中包含的各个数据项在事务中各自对应的数量。
在计算数据库中某个项集的实际效用值时,由于并非数据库中的所有事务均包含该项集,所以需要预先确定包含该项集的事务。比如,结合表一所示的数据库,当计算项集AC的实际效用值时,由于仅事务1、事务3和事务6中同时包含数据项A数据项C,所以,计算项集AC的实际效用值即计算项集AC在事务1、事务3和事务6中的效用值之和。
另外,由于项集中包含的数据项在不同事务中出现的数量也不同,所以在确定包含该项集的事务后,需要进一步获取该项集中包含的各个数据项在事务中各自对应的数量。
比如,计算项集AC的实际效用值时,获取到数据项A和数据项C在事务1、事务3和事务6中各自对应的数量,即数据项在A在事务1中对应的数量为3,数据项C在事务1中对应的数量为2;数据项在A在事务3中对应的数量为1,数据项C在事务3中对应的数量为1;数据项在A在事务6中对应的数量为2,数据项C在事务6中对应的数量为3。
步骤102B,根据项集中各个数据项对应的成本价、售价、折扣类型、折扣参数和数量,计算项集在事务中的效用值。
根据从自定义的价格表中获取项集中包含的各个数据项各自对应的成本价和售价,从自定的折扣表中获取项集中包含的各个数据项各自对应的折扣类型和折扣参数,以及获取到的项集中各个数据项在事务中各自对应的数量,计算该项集在事务中的效用值。
结合表一、表二以及表三中涉及的三种折扣类型Sg1、Sg2和Sg3,数据项ij在事务Tq中的效用值u(ij,Tq)可以分别表示为:
Sg1:u(ij,Tq)=q(ij,Tq)×(tp(ij)×v1-cp(ij))
其中,q(ij,Tq)表示数据项ij在事务Tq中对应的数量,tp(ij)表示数据项ij的售价,v1表示数据项ij对应的折扣参数,cp(ij)表示数据项ij的成本价。
比如,数据项A在事务1中对应的数量为3,且数据项A的售价为35,成本价为25,折扣参数为0.75,数据项A在事务1中的效用值即为3×(35×0.75-25)=3.75。
其中,q(ij,Tq)表示数据项ij在事务Tq中对应的数量,tp(ij)表示数据项ij的售价,v1和v2表示数据项ij对应的折扣参数,cp(ij)表示数据项ij的成本价。
比如,数据项C在事务6中对应的数量为3,且数据项C的售价为128,成本价为70,采用的折扣类型为“买2赠1”,数据项C在事务6中的效用值即为(3/(2+1))×2+3mod(2+1)×128-3×70=46。
Sg3:u(ij,Tq)=(v1+(q(ij,Tq)-v1)×v2)×tp(ij)-q(ij,Tq)×cp(ij),q(ij,Tq)>v1
Sg3:u(ij,Tq)=q(ij,Tq)×(tp(ij)-cp(ij)),otherwise
其中,q(ij,Tq)表示数据项ij在事务Tq中对应的数量,tp(ij)表示数据项ij的售价,v1和v2表示数据项ij对应的折扣参数,cp(ij)表示数据项ij的成本价。
比如,数据项E在事务10中对应的数量为3>2,且数据项E的售价为50,成本价为38,数据项E在事务10中的效用值即为(2+(3-2)×0.6)×50-3×38=16;又比如数据项E在事务8中对应的数量为1>2,数据项E在事务8中的效用值即为1×(50-38)=12。
将计算得到的项集中各个数据项在事务中的效用值相加,即可得到该项集在事务中的效用值,即项集X在事务Tq中的效用值即可表示为:
比如,数据项A在事务1中的效用值为3.75,数据项C在事务1中的效用值为116,项集AC在事务1中的效用值即为3.75+116=119.75。
步骤102C,将项集在不同事务中对应的效用值相加,得到项集的实际效用值。
即项集X在数据库中的实际效用值u(X)可以表示为:
比如,包含项集AC在事务1中的效用值为119.75,在事务3中的效用值为59.25,在事务6中的效用值为48.5,则项集AC的实际效用值为119.75+59.25+48.5=227.5。
最后,比较数据库中各个项集对应的实际效用值与自定义的最低效用阈值的大小关系,当项集对应的实际效用值≥最低效用阈值时,确定该项集为高效用项集。
比如,自定义的最低效用阈值为100,由于项集AC的实际效用阈值为227.5>100,即可确定项集AC为高效用项集。
由于计算数据库中所有项集的实际效用值,需要耗费大量的计算资源,且需要耗费大量时间,造成数据挖掘效率较低。为了减少数据挖掘过程中消耗的计算资源,从而提高挖掘的速度,本发明提出了两种优化挖掘的方法,分别为HUID-tp算法和HUID-Miner算法。下面采用两个实施例分别进行说明。
请参考图2A,其示出了本发明另一实施例提供的项集挖掘方法的方法流程图,该方法包括:
步骤201,获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含各个数据项对应的折扣类型和折扣参数。
该价格表可以示意性的如表二所示,折扣表可以示意性的如表三所示,且最低效用阈值可以由用户根据实际挖掘需要进行自定义设置,比如,该最低效用阈值可以为100。
比如,当需要挖掘的数据库中记录的是超市商品的购买记录,即数据库中每一个事务包含的数据项可以是用户购买商品的名称及数量。相应的,该价格表包含有各个商品各自对应的成本价和售价,折扣表中包含有各个商品所采用的折扣类型和折扣参数。用户自定义的最低效用阈值即为卖出商品所能够带来的利润。
下述步骤中,均以表一、表二和表三中示出的数据进行举例说明。
需要说明的是,本实施例仅以该数据库中记录的内容为超市商品的购买记录为例进行说明,并不对本发明构成限定。
步骤202,扫描数据库,获取数据库中各个事务的事务效用上限;事务效用上限指事务中数据项的正效用之和。
结合上述表二和表三可以看出,数据项在事务中的效用值可能为正,也可能为负。比如,数据项A在事务中的效用值一直为正;数据项D在事务中的效用值一直为负;数据项E在事务中的数量小于3时,数据项E对应的效用值为正;而数据项E在事务中的数量大于3时,数据项E对应的效用值变为负。
所以,可以定义数据库中各个事务中数据项的正效用之和,即事务效用上限ubtu为:
由于事务对应的ubtu为事务中所有效用值为正数的数据项对应的效用值之和,所以可以进一步推断出事务对应的ubtu大于等于该事务中任一项集的效用值。
根据获取到的数据库中各个事务的ubtu,建立的各个事务的ubtu与事务编号TID的对应关系可以示意性的如表四所示。
步骤203,构建第k-TID表,第k-TID表包含k-项集与包含k-项集的事务的事务编号TID的对应关系,k为正整数。
在对数据库进行扫描时,可以根据1-项集与包含该1-项集的事务的TID的对应关系,构建如表五所示的第1-TID表。
当后续需要构建第2-TID表,即建立2-项集与包含该2-项集的事务的TID的对应关系时,不再需要扫描在此扫描该数据库,只需要根据构建的第1-TID表,将该2-项集中2个数据项各自对应的TID集合进行求交,即可获得包含该2-项集的事务的TID。
比如,根据表五所示的第1-TID表,获取包含项集AC的事务的TID时,只需要获取第1-TID表中数据项A对应的TID集合{1,3,6,10}以及数据项C对应的TID集合{1,3,5,6,7},并将这两个TID集合求交,即获得包含项集AC的事务的TID集合为{1,3,6}。
后续构建第k-TID表时,只需要根据之前构建的第(k-1)-表进行构建即可,从而避免了重复扫描数据库。
需要说明的时,上述步骤202和步骤203不存在严格的先后关系,即步骤202和步骤203可以同时进行,或步骤203在步骤202之前进行,本实施例中,仅以步骤202在步骤203之前执行为例进行说明,并不对本发明构成限定。
步骤204,根据k-项集对应的TID,计算各个k-项集对应的事务加权效用上限,事务加权效用上限是包含k-项集的事务对应的事务效用上限之和。
在这里定义k-项集对应的事务加权效用上限ubtwu为数据库中包含该k-项集的事务对应的ubtu之和,表示为:
由于第k-TID表中记录有包含该k-项集的事务的TID,所以在计算k-项集对应的ubtwu时,首先根据第k-TID表确定包含k-项集的事务的TID,再将该TID对应的事务的ubtu相加,即得到该k-项集对应的ubtwu。
比如,以k-项集为1-项集为例,当计算项集A对应的ubtwu时,根据第1-TID表确定包含项集A的事务的TID为1、3、6和10,且事务1对应的ubtu为127.75,事务3对应的ubtu为69.65,事务6对应的ubtu为64.9,事务10对应的ubtu为23,计算得到项集A对应的ubtwu为127.75+69.65+64.9+23=285.3。
又比如,以k-项集为2-项集为例,当计算项集AC对应的ubtwu时,根据第2-TID表确定包含项集AC的事务的TID为1、3和6,且事务1对应的ubtu为127.75,事务3对应的ubtu为69.65,事务6对应的ubtu为64.9计算得到项集AC对应的ubtwu为127.75+69.65+64.9=262.3。
步骤205,当事务加权效用上限≥最低效用阈值时,将k-项集确定为候选项集。
当项集对应的ubtwu≥最低效用阈值时。可以将该项集确定为高事务加权效用项集,记为HTWUI,根据上述对ubtu以及ubtwu的定义,存在如下定理:
定理1:如果项集X是HTWUI,那么它的所有子集均是HTWUI,表示为ubtwu(Xk)≤ubtwu(Xk-1)。
即ubtwu(Xk)≤ubtwu(Xk-1),定理1得证。
显而易见地,根据定理1,可以得到推论1:如果项集X不是HTWUI,那么它的所有超集均不是HTWUI。
由于事务中的数据项对应的效用值可能为负,且事务的ubtu为事务中所有数据项
的正效用之和,所以由u(X,Tq)≤ubtu(Tq)可以进一步得到即结合上述推论
1,可以得到推论2:如果项集X不是HTWUI,那么它的超集均不是HUI。
所以,根据上述推论2,当k-项集对应的事务加权效用上限≥最低效用阈值时,即该k-项集及其超集可能为HUI,将该k-项集确定为候选项集;当k-项集对应的事务加权效用上限<最低效用阈值时,即该k-项集及其超集均不可能为HUI,并将该k-项集过滤。显而易见的,在计算数据库中各个项集的实际效用值之前,通过建立候选项集,将部分没有前途的项集进行过滤,能够有效缩小项集挖掘的范围,从而提高挖掘的速度。
结合上述推论,作为一种可能的实现方式,如图2B所示,本步骤可以包括如下步骤。
步骤205A,获取事务加权效用上限≥最低效用阈值的k-项集,并将k项集添加到第k候选项集。
根据计算得到的k-项集对应的ubtwu,比较该ubtwu与最低效用阈值的大小关系,并将ubtwu≥最低效用阈值的k-项集添加到第k候选项集,同时对ubtwu≤最低效用阈值的k-项集进行过滤。
比如,计算得到项集A对应的ubtwu为285.3,项集B对应的ubtwu为303.15,项集C对应的ubtwu为426.3,项集D对应的ubtwu为247.95,项集E对应的ubtwu为224.75,项集F对应的ubtwu为166.95,均大于最低效用阈值100,所以将项集A、B、C、D、E和F均添加到第1候选项集中。
步骤205B,当第k候选项集不为空时,根据第k候选项集中的k-项集自连接生成(k+1)-项集,(k+1)-项集是k-项集的超集,(k+1)-项集是包含k+1个数据项的项集。
当第k候选项集不为空时,按照第k候选项集中项集的排列顺序,将每个项集与排在该项集之后的项集进行合并且去重后,生成一个(k+1)-项集。
比如,当第1候选项集中包含的项集为A、B、C、D、E和F,且排列顺序为A-B-C-D-E时,自连接生成的2-项集即为AB、AC、AD、AE、AF、BC、BD、BE、BF、CD、CE、CF、DE和DF。
又比如,假设第2候选项集为AC、AD、AE、BE、CD和CE时,生成的3-项集即为ACD、ACE。
显而易见的,通过对没有前途的k-项集进行过滤,在根据第k-候选生成的(k+1)项集的数量远小于数据库中(k+1)-项集的总数,从而达到了缩小挖掘范围的效果。
步骤205C,获取(k+1)-项集中事务加权效用上限≥最低效用阈值的项集,并将项集添加到第k+1候选项集。
根据上述步骤中生成的第(k+1)-TID表,计算得到(k+1)-项集的ubtwu,并将ubtwu≥最低效用阈值的(k+1)-项集添加到第(k+1)候选项集。
重复上述步骤205A至步骤205C,直到不再生成候选项集。
步骤206,再次扫描数据库,计算候选项集中各个项集的实际效用值。
由于项集对应的ubtwu≥项集的实际效用值,所以在生成候选项集后,还需要在此扫描数据库,获取候选项集中各个项集对应的实际效用值。
步骤207,将候选项集中,实际效用值≥最低效用阈值的候选项集确定为高效用项集。
候选项集中,实际效用值≥最低效用阈值的候选项集即为最终的HUI,结合上述表一、表二和表三,数据库中的高效用项集与其实际效用值的对应关系可以如表八所示。
表八
项集 | 实际效用值 |
C | 382.0 |
AC | 227.5 |
BC | 228.0 |
CD | 117.0 |
CE | 182.0 |
CF | 112.8 |
ABC | 125.75 |
ACE | 127.75 |
ACF | 116.55 |
BCF | 130.8 |
ABCF | 134.55 |
综上所述,本实施例提供的项集挖掘方法,通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
本实施例还通过构建候选项集,在计算数据库中项集的实际效用值时,仅计算候选项集中各个项集的实际效用值,并将实际效用值≥最低效用阈值的候选项集确定为高效用项集,达到了加快挖掘速度,节约计算资源的效果。
本实施例提供的项集挖掘方法,可以通过HUID-tp算法实现,该算法的伪代码可以如下所示。
请参考图3A,其示出了本发明再一实施例提供的项集挖掘方法的方法流程图,该方法包括:
步骤301,获取自定义的最低效用阈值、价格表和折扣表;价格表中包含各个数据项对应的成本价和售价;折扣表中包含各个数据项对应的折扣类型和折扣参数。
本步骤具体实现方式与上述步骤201相似,在此不再赘述。且为了方便描述,下述步骤中,均以上述表一、表二和表三进行举例说明,且用户自定义的最低效用阈值为100。
步骤302,构建第k-正负效用PNU表,第k-PNU表中包含k-项集所在事务的事务编号TID、k-项集在事务中的项集效用Iutility、k-项集在事务中的负效用Nutility以及k-项集在事务中的项集剩余效用Rutility;项集剩余效用Rutility表示事务中除k-项集以外的其它数据项的正效用之和,k-项集包含k个数据项,k为正整数。
使用HUID-Miner算法进行数据挖掘时,只需要扫描一次数据库,生成第1-PNU表,即可根据该第1-PNU表生成后续的第k-PNU表,而不再需要重复扫描该数据库,从而节省计算资源,提高挖掘效率。
作为一种可能的实现方式,步骤302可以包括步骤302A和302B。
步骤302A,扫描数据库,并构建第1-PNU表,第1-PNU表包括1-项集对应的TID、Iutility、Nutility和Rutility。
在进行数据挖掘的初始阶段,需要对数据库进行扫描,计算该数据库中1-项集对应的ubtwu,并将ubtwu≥最低效用阈值的1-项集确定为HTWUI1。确定1-项集中HTWUI1的步骤与上述步骤205A中,生成第1候选项集的步骤相似,在此不再赘述。
在确定了1-项集中的HTWUI1后,还需要按照1-项集对应ubtwu的大小,按照升序进行排列,并递归生成1-项集各自对应的第1-PNU表。
其中,第1-PNU表中的TID表示包含该1-项集的事务的事务编号,Iutility表示为该1-项集在该事务中的效用值,Nutility表示为该1-项集在该事务中的负效用值,Rutility则表示该事务中,除了该1-项集外,其他数据项的正效用之和。需要说明的是,由于在生成第1-PNU表的过程中,需要先根据各个1-项集对应的ubtwu大小,按照升序进行排序,并在排序后递归生成各自对应的第1-PNU表,所以1-项集在指定事务中对应的Rutility,还需要减去排列在该1-项集的左边的1-项集在该事务中对应的Iutility。
比如,对如表一所示的数据库进行挖掘时,可以得到各个1-项集对应的ubtwu分别为:项集A对应的ubtwu为285.3,项集B对应的ubtwu为303.15,项集C对应的ubtwu为426.3,项集D对应的ubtwu为247.95,项集E对应的ubtwu为224.75,项集F对应的ubtwu为166.95,均大于最低效用阈值100,所以将项集A、B、C、D、E和F均确定为HTWUI1。根据1-项集对应的ubtwu的大小,按照升序进行排列,得到的序列为F<E<D<A<B<C。按照该序列的顺序依次构建F对应的第1-PNU表,E对应的第1-PNU表,D对应的第1-PNU表,A对应的第1-PNU表,B对应的第1-PNU表,C对应的第1-PNU表。其中,F对应的第1-PNU表如表九所示。
表九
由于首先构建F对应的第1-PNU表,所以F的左边不存在其他1-项集,对应的Rutility即为事务中除F以外的其它数据项的正效用之和。
在构建完F对应的第1-PU表后,构建E对应的第1-PNU表。由于E的左边存在1-项集F,所以Rutility为除了F和E以外,其他数据项的正效用之和。生成的项集E对应的第1-PNU表可以如表十所示。
表十
根据上述构建PNU表的方法,依次构建1-项集对应的第1-PNU表,合并为如图3B所示的第1-PNU表。
步骤302B,在第k-PNU表中,当(X.IU-X.NU+X.RU)≥最低效用阈值时,根据第k-PNU表递归生成第(k+1)-PNU表,第(k+1)-PNU表中的(k+1)-项集为k项集的超集。
根据PNU表中记录的Iutility、Nutility和Rutility,可以定义k-项集在不同事务中的Iutility之和为X.IU,k-项集在不同事务中的Nutility之和为X.NU,k-项集在不同事务中的Rutility之和为X.RU,即:
其中,X.iu(Tq)表示项集X在事务Tq中的Iutility,X.nu(Tq)表示项集X在事务Tq中的Nutility,X.ru(Tq)表示项集X在事务Tq中的Rutility。
由于k-项集的Iutility中既包括项集中数据项的正效用,又包括项集中数据项的负效用(当该项集中存在效用值为负数的数据项时),结合上述定义,可以得到k-项集在不同事务中的正效用(英文:Putility)之和为X.PU=X.IU-X.NU。
根据上述定义,在第k-PNU表中,存在如下定理3:项集X的X.PU与X.RU之和,大于等于项集X的任一超集的X.IU。
证明:设Xk-1为一个(k-1)-项集,k-项集Xk为Xk-1的超集。可以将Xk-1认为是枚举树中的一个节点,Xk则是Xk-1对应节点的子节点,Xk-1为Xk的前缀。定义属于Xk但不属于Xk-1的数据项为(Xk-Xk-1)=(Xk\Xk-1)。证明过程如下:
∴Xk.iu<Xk-1.pu+Xk-1.ru
∴Xk.IU≤Xk-1.PU+Xk-1.RU
定理3得证。
根据上述定理3,可以得到如下推论3:对于项集X,如果X.PU+X.RU≥最低效用阈值,那么项集X的超集可能是HUI,即项集X的被认为是有前途的项集。
根据上述推论3,在第k-PNU表中,当(X.IU-X.NU+X.RU)≥最低效用阈值时,根据第k-PNU表递归生成第(k+1)-PNU表,第(k+1)-PNU表中的(k+1)-项集为k项集的超集。
比如,如图3B所示的第1-PNU表中,所有1-项集对应的X.IU-X.NU+X.RU均大于最低效用阈值,即认为所有1-项集均为有前途的项集,则根据第1-PNU表递归生成各个2-项集对应的第2-PNU表。
步骤303,根据第k-PNU表,计算k-项集的项集效用和X.IU;X.IU表示k-项集在不同事务中的Iutility之和。
在第k-PNU表中,当(X.IU-X.NU+X.RU)≥最低效用阈值时,仅能够确定该项集的是有前途的项集,而并不能确定该项集是否为HUI,所以进一步的,需要根据第k-PNU表中k-项集对应的X.IU,确定该k-项集是否为HUI。
比如,根据图3B所示的第1-PNU表,计算得到1-项集F对应的X.IU为35.2,1-项集E对应的X.IU为36,1-项集D对应的X.IU为-65,1-项集A对应的X.IU为12.5,1-项集B对应的X.IU为32,1-项集C对应的X.IU为382。
步骤304,当第k-PNU表中,(X.IU-项集负效用和X.NU+项集剩余效用和X.RU)<最低效用阈值时,确定k-项集及其超集均不是高效用项集,并对k-项集进行过滤;X.NU表示k-项集在不同事务中的Nutility之和;X.RU表示k-项集在不同事务中的Rutility之和。
根据步骤302B中得到的推论3,还可以进一步得到,对于项集X,当(X.IU-X.NU+X.RU)<最低效用阈值时,该项集的任一超集均不是HUI,所以,为了减少生成PNU表的数量,从而减轻计算压力,对(X.IU-X.NU+X.RU)<最低效用阈值的k-项集进行过滤,使得在后续生成(k+1)-项集的过程中,不再需要生成该k-项集对应的(k+1)-项集。
步骤305,当k-项集的X.IU≥最低效用阈值时,确定该项集为高效用项集。
由于k-项集的X.IU即该项集在数据库中的实际效用值,所以根据上述步骤303中计算得到的k-项集对应的X.IU,当k-项集的X.IU≥最低效用阈值时,即可确定该项集为HUI。
比如,根据图3B所示的第1-PNU表,计算得到仅1-项集C对应的X.IU大于最低效用阈值,即数据库中的1-项集中,仅项集C为HUI。
重复执行上述步骤302至步骤305,当不再生成PNU表时,即表示挖掘结束,停止挖掘,而在生成PNU表的过程中确定的HUI即该数据库中的所有HUI。
需要说明的是,为了进一步减少生成的PNU表的数量,如图3C所示,在扫描数据库之后,还可以进一步构建如表七所示的EUCS表,从而对没有前途的k-项集及其超集进行过滤。
步骤306,构建估计效用共同出现策略EUCS表,EUCS表中包含k-项集与k-项集对应的事务加权效用上限,k≥2;事务加权效用上限指包含k-项集的事务对应的事务效用上限之和,事务效用上限指事务中数据项的正效用之和。
在扫描数据库后,在构建第1-PNU表的同时,可以构建如表七所示的2-项集对应的EUCS表,该EUCS表中包括各个2-项集各自对应的ubtwu。计算各个2-项集的ubtwu的过程可参考上述步骤204,在此不再赘述。
步骤307,根据EUCS表,对事务加权效用上限<最低效用阈值的k-项集及其超集进行过滤。
根据表七所示的2-项集对应的EUCS表可以发现,2-项集BE、DE和EF对应的ubtwu均小于最低效用阈值,即可确定BE、DE和EF及各自的超集均不是HTWUI,进一步的,由于BE、DE和EF及各自的超集均不是HTWUI,可以确定BE、DE和EF及各自的超集均不是HUI。所以,在根据第1-PNU表递归生成第2-PNU表时,不再需要构建BE、DE和EF对应的第2-PNU表,相较于直接根据A、B、C、D、E和F对应的第1-PNU表构建第2-PNU表,能够显著减少构建的第2-PNU表的数量,从而进一步减轻计算压力,加快挖掘速度。
需要说明的,生成EUCS表的步骤可以与生成PNU表同时进行,本实施例仅以生成EUCS表在生成PNU表之后执行为例进行说明,并不对本发明构成限定。
综上所述,本实施例提供的项集挖掘方法,通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
本实施例还通过对生成的PNU表中的没有前途的项集进行过滤,并根据剩余的有前途的项集生成对应超集的PNU表,从而减少后续生成的PNU表的数量,达到了节约计算资源,提高挖掘速度的效果。
本实施例还通过构建EUCS表,并根据该EUCS表对事务加权效用上限<最低效用阈值的k-项集及其超集进行过滤,从而进一步缩小了项集挖掘的挖掘范围,提高挖掘速度。
本实施例提供的项集挖掘方法,可以通过HUID-Miner算法实现,该算法的伪代码可以如下所示。
另外,在实现本实施例的过程中,还包括根据k-项集对应的第k-PNU表生成(k+1)-项集对应的第(k+1)-PNU表的过程,对应上述步骤302B。该过程对应算法的伪代码如下。
请参考图4,其示出了本发明一个实施例提供的项集挖掘装置的结构方框图,该项集挖掘装置,包括:
获取模块401,用于获取自定义的最低效用阈值、价格表和折扣表;所述价格表中包含各个数据项对应的成本价和售价;所述折扣表中包含各个数据项对应的折扣类型和折扣参数;
计算模块402,用于对于数据库中的各个项集,根据所述项集中包含的数据项对应的所述成本价、所述售价、所述折扣类型和所述折扣参数,计算所述项集的实际效用值;所述项集包含至少一个所述数据项;
确定模块403,用于当所述实际效用值≥所述最低效用阈值时,确定所述项集为高效用项集。
综上所述,本实施例提供的项集挖掘装置,通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
请参考图5,其示出了本发明另一实施例提供的项集挖掘装置的结构方框图,该项集挖掘装置,包括:
获取模块501,用于获取自定义的最低效用阈值、价格表和折扣表;所述价格表中包含各个数据项对应的成本价和售价;所述折扣表中包含各个数据项对应的折扣类型和折扣参数;
计算模块502,用于对于数据库中的各个项集,根据所述项集中包含的数据项对应的所述成本价、所述售价、所述折扣类型和所述折扣参数,计算所述项集的实际效用值;所述项集包含至少一个所述数据项;
确定模块503,用于当所述实际效用值≥所述最低效用阈值时,确定所述项集为高效用项集。
可选地,计算模块502,包括:
第一获取单元502A,用于对于包含所述项集的事务,获取所述项集中包含的各个数据项在所述事务中各自对应的数量;
第一计算单元502B,根据所述项集中各个数据项对应的所述成本价、所述售价、所述折扣类型、所述折扣参数和所述数量,计算所述项集在所述事务中的效用值;
累加单元502C,用于将所述项集在不同事务中对应的所述效用值相加,得到所述项集的所述实际效用值。
可选的,计算模块502,包括:
第二获取单元502D,用于扫描所述数据库,获取所述数据库中各个事务的事务效用上限;所述事务效用上限指所述事务中所述数据项的正效用之和;
第一构建单元502E,用于构建第k-TID表,所述第k-TID表包含k-项集与包含所述k-项集的所述事务的事务编号TID的对应关系,k为正整数;
第二计算单元502F,用于根据所述k-项集对应的所述TID,计算各个k-项集对应的事务加权效用上限,所述事务加权效用上限是包含所述k-项集的所述事务对应的所述事务效用上限之和;
确定单元502G,用于当所述事务加权效用上限≥所述最低效用阈值时,将所述k-项集确定为候选项集;
第三计算单元502H,用于再次扫描所述数据库,计算所述候选项集中各个项集的所述实际效用值。
可选地,确定单元502G,包括:
第一添加子单元502Ga,用于获取所述事务加权效用上限≥所述最低效用阈值的所述k-项集,并将所述k项集添加到第k候选项集;
生成子单元502Gb,用于当所述第k候选项集不为空时,根据所述第k候选项集中的所述k-项集自连接生成(k+1)-项集,所述(k+1)-项集是所述k-项集的超集,所述(k+1)-项集是包含k+1个数据项的项集;
第二添加子单元502Gc,还用于获取所述(k+1)-项集中所述事务加权效用上限≥所述最低效用阈值的项集,并将所述项集添加到第k+1候选项集。
可选的,计算模块502,包括:
第二构建单元502I,用于构建第k-正负效用PNU表,所述第k-PNU表中包含k-项集所在事务的事务编号TID、所述k-项集在所述事务中的项集效用Iutility、所述k-项集在所述事务中的负效用Nutility以及所述k-项集在所述事务中的项集剩余效用Rutility;所述项集剩余效用Rutility表示所述事务中除所述k-项集以外的其它数据项的正效用之和,所述k-项集包含k个数据项,k为正整数;
第四计算单元502J,用于根据所述第k-PNU表,计算所述k-项集的项集效用和X.IU;所述X.IU表示所述k-项集在不同事务中的所述Iutility之和;
过滤单元502K,用于当所述第k-PNU表中,(所述X.IU-项集负效用和X.NU+项集剩余效用和X.RU)<所述最低效用阈值时,确定所述k-项集及其超集均不是所述高效用项集,并对所述k-项集进行过滤;所述X.NU表示所述k-项集在不同事务中的所述Nutility之和;所述X.RU表示所述k-项集在不同事务中的所述Rutility之和。
可选的,第二构建单元502I,包括:
第一构建子单元502Ia,用于扫描所述数据库,并构建第1-PNU表,所述第1-PNU表包括1-项集对应的所述TID、所述Iutility、所述Nutility和所述Rutility;
或,
第二构建子单元502Ib,用于在第k-PNU表中,当(所述X.IU-所述X.NU+所述X.RU)≥所述最低效用阈值时,根据所述第k-PNU表递归生成第(k+1)-PNU表,所述第(k+1)-PNU表中的(k+1)-项集为所述k项集的超集。
可选的,确定模块503,还用于当所述k-项集的X.IU≥所述最低效用阈值时,确定所述项集为高效用项集。
可选的,该装置,还包括:
构建模块504,用于构建估计效用共同出现策略EUCS表,所述EUCS表中包含所述k-项集与所述k-项集对应的事务加权效用上限,k≥2;所述事务加权效用上限指包含所述k-项集的所述事务对应的所述事务效用上限之和,所述事务效用上限指所述事务中所述数据项的正效用之和;
过滤模块505,用于根据所述EUCS表,对所述事务加权效用上限<所述最低效用阈值的所述k-项集及其超集进行过滤。
综上所述,本实施例提供的项集挖掘装置,通过根据各个数据项各自对应的折扣策略计算数据库中项集的实际效用值,并挖掘出实际效用值大于最低效用阈值的高效用项集;解决了计算得到的项集的效用值不准确,影响挖掘出的高效用项集的实际使用价值的问题;达到了结合数据项对应的折扣策略,使得计算出的数据库中项集的实际效用值更加准确,从而提高挖掘出的高效用项集的实际使用价值的效果。
本实施例还通过构建候选项集,在计算数据库中项集的实际效用值时,仅计算候选项集中各个项集的实际效用值,并将实际效用值≥最低效用阈值的候选项集确定为高效用项集,达到了加快挖掘速度,节约计算资源的效果。
本实施例还通过对生成的PNU表中的没有前途的项集进行过滤,并根据剩余的有前途的项集生成对应超集的PNU表,从而减少后续生成的PNU表的数量,达到了节约计算资源,提高挖掘速度的效果。
本实施例还通过构建EUCS表,并根据该EUCS表对事务加权效用上限<最低效用阈值的k-项集及其超集进行过滤,从而进一步缩小了项集挖掘的挖掘范围,提高挖掘速度。
需要说明的是:上述实施例提供的项集挖掘装置在进行项集挖掘时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的项集挖掘装置与项集挖掘方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种项集挖掘方法,其特征在于,所述方法由计算机设备执行,所述方法包括:
获取自定义的最低效用阈值、价格表和折扣表;所述价格表中包含各个数据项对应的成本价和售价,所述数据项为商品,所述价格表用于指示商品的实际价格;所述折扣表中包含各个数据项对应的折扣类型和折扣参数,所述折扣表用于指示商品实际采用的折扣策略,所述最低效用阈值为卖出商品带来的最低利润;
扫描数据库,获取所述数据库中各个事务的事务效用上限,所述事务效用上限指事务中所述数据项的正效用之和;构建第k-TID表,第1-TID表在扫描所述数据库时构建得到,且所述第k-TID表基于第(k-1)-TID表构建得到,所述第k-TID表包含k-项集与包含所述k-项集的所述事务的事务编号TID的对应关系,k为正整数;根据所述k-项集对应的所述TID,计算各个k-项集对应的事务加权效用上限,所述事务加权效用上限是包含所述k-项集的所述事务对应的所述事务效用上限之和;当所述事务加权效用上限≥所述最低效用阈值时,将所述k-项集确定为候选项集;或,
构建第k-PNU表,第1-PNU表在扫描所述数据库时构建得到,且所述第k-PNU表基于第(k-1)-PNU表构建得到,所述第k-PNU表中包含k-项集所在事务的事务编号TID、所述k-项集在所述事务中的项集效用Iutility、所述k-项集在所述事务中的负效用Nutility以及所述k-项集在所述事务中的项集剩余效用Rutility;所述Rutility表示所述事务中除所述k-项集以外的其它数据项的正效用之和,所述k-项集包含k个数据项,k为正整数;根据所述第k-PNU表,计算所述k-项集的X.IU;所述X.IU表示所述k-项集在不同事务中的所述Iutility之和;当所述第k-PNU表中,(所述X.IU-X.NU+X.RU)<所述最低效用阈值时,确定所述k-项集及其超集均不是高效用项集,并对所述k-项集进行过滤;所述X.NU表示所述k-项集在不同事务中的所述Nutility之和;所述X.RU表示所述k-项集在不同事务中的所述Rutility之和;
对于各个候选项集,根据所述候选项集中包含的数据项对应的所述成本价、所述售价、所述折扣类型和所述折扣参数,计算所述候选项集的实际效用值;所述项集包含至少一个所述数据项,所述数据库中包括商品实际的购买记录,且所述购买记录中商品的卖出方式基于所述价格表和所述折扣表;
当所述实际效用值≥所述最低效用阈值时,确定所述候选项集为高效用项集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述候选项集中包含的数据项对应的所述成本价、所述售价、所述折扣类型和所述折扣参数,计算所述候选项集的实际效用值,包括:
对于包含所述候选项集的所述事务,获取所述候选项集中包含的各个数据项在所述事务中各自对应的数量;
根据所述候选项集中各个数据项对应的所述成本价、所述售价、所述折扣类型、所述折扣参数和所述数量,计算所述候选项集在所述事务中的效用值;
将所述候选项集在不同事务中对应的所述效用值相加,得到所述候选项集的所述实际效用值。
3.根据权利要求1所述的方法,其特征在于,所述当所述事务加权效用上限≥所述最低效用阈值时,将所述k-项集确定为所述候选项集,包括:
获取所述事务加权效用上限≥所述最低效用阈值的所述k-项集,并将所述k-项集添加到第k候选项集;
当所述第k候选项集不为空时,根据所述第k候选项集中的所述k-项集自连接生成(k+1)-项集,所述(k+1)-项集是所述k-项集的超集,所述(k+1)-项集是包含k+1个数据项的项集;
获取所述(k+1)-项集中所述事务加权效用上限≥所述最低效用阈值的项集,并将所述项集添加到第k+1候选项集。
4.根据权利要求1所述的方法,其特征在于,所述构建第k-PNU表,包括:
扫描所述数据库,并构建第1-PNU表,所述第1-PNU表包括1-项集对应的所述TID、所述Iutility、所述Nutility和所述Rutility;
或,
在第k-PNU表中,当(所述X.IU-所述X.NU+所述X.RU)≥所述最低效用阈值时,根据所述第k-PNU表递归生成第(k+1)-PNU表,所述第(k+1)-PNU表中的(k+1)-项集为所述k-项集的超集。
5.根据权利要求1所述的方法,其特征在于,所述当所述实际效用值≥最低效用阈值时,确定所述候选项集为高效用项集,包括:
当所述k-项集的X.IU≥所述最低效用阈值时,确定所述k-项集为高效用项集。
6.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
构建估计效用共同出现策略EUCS表,所述EUCS表中包含所述k-项集与所述k-项集对应的事务加权效用上限,k≥2;所述事务加权效用上限指包含所述k-项集的所述事务对应的所述事务效用上限之和,所述事务效用上限指所述事务中所述数据项的正效用之和;
根据所述EUCS表,对所述事务加权效用上限<所述最低效用阈值的所述k-项集及其超集进行过滤。
7.一种项集挖掘装置,其特征在于,所述装置包括:
获取模块,用于获取自定义的最低效用阈值、价格表和折扣表;所述价格表中包含各个数据项对应的成本价和售价,所述数据项为商品,所述价格表用于指示商品的实际价格;所述折扣表中包含各个数据项对应的折扣类型和折扣参数,所述折扣表用于指示商品实际采用的折扣策略,所述最低效用阈值为卖出商品带来的最低利润;
计算模块,用于扫描数据库,获取所述数据库中各个事务的事务效用上限,所述事务效用上限指事务中所述数据项的正效用之和;构建第k-TID表,第1-TID表在扫描所述数据库时构建得到,且所述第k-TID表基于第(k-1)-TID表构建得到,所述第k-TID表包含k-项集与包含所述k-项集的所述事务的事务编号TID的对应关系,k为正整数;根据所述k-项集对应的所述TID,计算各个k-项集对应的事务加权效用上限,所述事务加权效用上限是包含所述k-项集的所述事务对应的所述事务效用上限之和;当所述事务加权效用上限≥所述最低效用阈值时,将所述k-项集确定为候选项集;或,
构建第k-PNU表,第1-PNU表在扫描所述数据库时构建得到,且所述第k-PNU表基于第(k-1)-PNU表构建得到,所述第k-PNU表中包含k-项集所在事务的事务编号TID、所述k-项集在所述事务中的项集效用Iutility、所述k-项集在所述事务中的负效用Nutility以及所述k-项集在所述事务中的项集剩余效用Rutility;所述Rutility表示所述事务中除所述k-项集以外的其它数据项的正效用之和,所述k-项集包含k个数据项,k为正整数;根据所述第k-PNU表,计算所述k-项集的X.IU;所述X.IU表示所述k-项集在不同事务中的所述Iutility之和;当所述第k-PNU表中,(所述X.IU-X.NU+X.RU)<所述最低效用阈值时,确定所述k-项集及其超集均不是高效用项集,并对所述k-项集进行过滤;所述X.NU表示所述k-项集在不同事务中的所述Nutility之和;所述X.RU表示所述k-项集在不同事务中的所述Rutility之和;
对于各个候选项集,根据所述候选项集中包含的数据项对应的所述成本价、所述售价、所述折扣类型和所述折扣参数,计算所述候选项集的实际效用值;所述项集包含至少一个所述数据项,所述数据库中包括商品实际的购买记录,且所述购买记录中商品的卖出方式基于所述价格表和所述折扣表;
确定模块,用于当所述实际效用值≥所述最低效用阈值时,确定所述候选项集为高效用项集。
8.根据权利要求7所述的装置,其特征在于,所述计算模块,包括:
第一获取单元,用于对于包含所述候选项集的所述事务,获取所述候选项集中包含的各个数据项在所述事务中各自对应的数量;
第一计算单元,根据所述候选项集中各个数据项对应的所述成本价、所述售价、所述折扣类型、所述折扣参数和所述数量,计算所述候选项集在所述事务中的效用值;
累加单元,用于将所述候选项集在不同事务中对应的所述效用值相加,得到所述候选项集的所述实际效用值。
9.根据权利要求7所述的装置,其特征在于,所述计算模块,用于:
获取所述事务加权效用上限≥所述最低效用阈值的所述k-项集,并将所述k-项集添加到第k候选项集;
当所述第k候选项集不为空时,根据所述第k候选项集中的所述k-项集自连接生成(k+1)-项集,所述(k+1)-项集是所述k-项集的超集,所述(k+1)-项集是包含k+1个数据项的项集;
获取所述(k+1)-项集中所述事务加权效用上限≥所述最低效用阈值的项集,并将所述项集添加到第k+1候选项集。
10.根据权利要求7所述的装置,其特征在于,所述计算模块,用于:
扫描所述数据库,并构建第1-PNU表,所述第1-PNU表包括1-项集对应的所述TID、所述Iutility、所述Nutility和所述Rutility;
或,
在第k-PNU表中,当(所述X.IU-所述X.NU+所述X.RU)≥所述最低效用阈值时,根据所述第k-PNU表递归生成第(k+1)-PNU表,所述第(k+1)-PNU表中的(k+1)-项集为所述k-项集的超集。
11.根据权利要求7所述的装置,其特征在于,所述确定模块,还用于当所述k-项集的X.IU≥所述最低效用阈值时,确定所述k-项集为高效用项集。
12.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
构建模块,用于构建估计效用共同出现策略EUCS表,所述EUCS表中包含所述k-项集与所述k-项集对应的事务加权效用上限,k≥2;所述事务加权效用上限指包含所述k-项集的所述事务对应的所述事务效用上限之和,所述事务效用上限指所述事务中所述数据项的正效用之和;
过滤模块,用于根据所述EUCS表,对所述事务加权效用上限<所述最低效用阈值的所述k-项集及其超集进行过滤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序由硬件执行以实现如权利要求1至6任一所述的项集挖掘方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510310487.8A CN106294494B (zh) | 2015-06-08 | 2015-06-08 | 项集挖掘方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510310487.8A CN106294494B (zh) | 2015-06-08 | 2015-06-08 | 项集挖掘方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106294494A CN106294494A (zh) | 2017-01-04 |
CN106294494B true CN106294494B (zh) | 2022-11-15 |
Family
ID=57659336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510310487.8A Active CN106294494B (zh) | 2015-06-08 | 2015-06-08 | 项集挖掘方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294494B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460424A (zh) * | 2018-10-18 | 2019-03-12 | 哈尔滨工业大学(深圳) | 高效用序列模式处理方法、装置和计算机设备 |
CN110471960B (zh) * | 2019-08-21 | 2022-04-05 | 桂林电子科技大学 | 一种含负效用的高效用项集挖掘方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678530A (zh) * | 2013-11-30 | 2014-03-26 | 武汉传神信息技术有限公司 | 一种频繁项集快速检出的方法 |
CN103744904A (zh) * | 2013-12-25 | 2014-04-23 | 北京京东尚科信息技术有限公司 | 一种提供信息的方法及装置 |
CN103995882A (zh) * | 2014-05-28 | 2014-08-20 | 南京大学 | 基于MapReduce的概率频繁项集挖掘方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265289A (ja) * | 2006-03-29 | 2007-10-11 | Fujitsu Ltd | チェックリスト管理装置、管理方法およびそのプログラム |
US7921071B2 (en) * | 2007-11-16 | 2011-04-05 | Amazon Technologies, Inc. | Processes for improving the utility of personalized recommendations generated by a recommendation engine |
-
2015
- 2015-06-08 CN CN201510310487.8A patent/CN106294494B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678530A (zh) * | 2013-11-30 | 2014-03-26 | 武汉传神信息技术有限公司 | 一种频繁项集快速检出的方法 |
CN103744904A (zh) * | 2013-12-25 | 2014-04-23 | 北京京东尚科信息技术有限公司 | 一种提供信息的方法及装置 |
CN103995882A (zh) * | 2014-05-28 | 2014-08-20 | 南京大学 | 基于MapReduce的概率频繁项集挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106294494A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11972228B2 (en) | Merging database tables by classifying comparison signatures | |
CN104598439B (zh) | 信息对象的标题修正方法及装置和推送信息对象的方法 | |
CN104951468A (zh) | 数据搜索处理方法和系统 | |
US11669301B2 (en) | Effectively fusing database tables | |
US20180307722A1 (en) | Pattern mining method, high-utility itemset mining method, and related device | |
CN108733705A (zh) | 一种高效用序列模式挖掘方法及装置 | |
CN102129431A (zh) | 应用于网上交易平台的检索方法和系统 | |
CN106033447B (zh) | 项集挖掘方法及装置 | |
CN106294494B (zh) | 项集挖掘方法及装置 | |
CN111625561A (zh) | 一种数据查询方法及装置 | |
CN106445975B (zh) | 项集挖掘方法及装置 | |
CN106775962A (zh) | 一种规则执行方法及装置 | |
CN111340578B (zh) | 一种商品关联关系的生成方法、装置、介质及电子设备 | |
CN110765100A (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN113592529B (zh) | 债券产品的潜在客户推荐方法和装置 | |
CN110706049A (zh) | 数据处理方法及装置 | |
CN111984698B (zh) | 一种信息预测方法、装置及存储介质 | |
CN108509531A (zh) | 一种基于Spark平台的不确定数据集频繁项挖掘方法 | |
US8290913B2 (en) | Techniques for multi-variable analysis at an aggregate level | |
CN106033449B (zh) | 项集挖掘方法及装置 | |
CN114564914A (zh) | 表格数据的展示方法、装置、电子设备及介质 | |
CN112948447A (zh) | 一种基于网状结构的用户信息高效检索方法 | |
Lan et al. | Enhancing the efficiency in mining weighted frequent itemsets | |
CN117974009B (zh) | 任务拆分率的确定方法、装置、电子设备及存储介质 | |
CN117273834B (zh) | 一种基于物流场景可配置账单的计费引擎及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Lin Junwei Inventor after: Gan Wensheng Inventor after: Guan Gang Inventor after: Liu Tingting Inventor before: Lin Junwei Inventor before: Guan Gang Inventor before: Liu Tingting Inventor before: Gan Wensheng |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |