关联加权

2024-05-28

关联加权(精选7篇)

关联加权 篇1

摘要:随着Internet的迅速发展和普及, 网络系统中的信息“超载”现象越来越严重。面对众多信息的“海洋”, 用户经常会迷失在其中, 无法顺利找到自己需要的信息。本文针对网络信息推荐系统面临的主要问题, 依据Apriori算法思想, 提出一种加权关联规则算法, 并应用于基于大众标签的推荐系统, 进行bookmark, user, tag三元实验分析, 通过对tag的相似性来挖掘用户的喜好。实验结果表明:通过加权tag聚类在一定程度上解决了tag冗余的问题, 进一步优化了推荐结果。

关键词:数据挖掘,加权关联规则,Apriori算法,改进

1、引言

针对关相互关联的规则进行挖掘的话, 研究者就会提出一整套的的挖掘算法。在所有的关联规则的挖掘算法中Apriori算法应该算是最经典的算法之一。这一算法的核心方法在于频集理论的递推。由于Apriori这个算法是基于两阶段的频集思想方法进行的, 因此可以将关联规则挖掘算法相应的设计分成两个子问题来研究:

首先:研究者必须找到一个支持度相对来说大于最小支持度的阈值的一个所谓的项集 (Itemset) , 也就是所谓的频集 (Frequent Itemset) 。

然后就是, 由第一步的频集进行相互的关联规则。

关于第一步所表现出的基本中心思想就是如何以一个长度为k的频集来根据Lk连接操作并且产生一个长度为k+1的候选频集集合Ck+1, 最后通过所有的扫描交易相关的数据库, 通过验证相关的候选频集将集合Ck+1中的所有候选频集进行相关的整合, 从而生成相应的一个长度大约为k+1的频集Lk+1。但是研究发现这一步是需要不断地反复扫描相关的交易数据库, 因此可以看出这一步是制约整个算法性能的关键因素所在。但是第二步相对来说简单易行, 只需要给定一个频集Y={I1, I2, …, Ik}就可以了, 并且将频级赋予相关的数值, k2, IjI, 根据上面的来产生一个仅仅包含集合{I1, I2, …, Ik}中的所有项的相关规则就可以了 (但最多只能是k条) , 只要生成了所有的这些规则, 那么所有的只要是比最小置信度阈值大的所有关联规则就会被相应的保留下来。

但是我们应该清楚Apriori算法并不十全十美, 也同样会存在着效率低下的相关问题, 所以, 不断有研究者进行改进, 他们往往会以Apriori挖掘算法为基础进而提出了其他的相应算法。比如研究者会利用修剪技术 (Pruning) 及其方法[1]来降低所有的候选集的内容大小, 或者是利用杂凑树 (HashTree) [41]这种先进的方法改进每个项集的支持度并且提高生成所有频集算法的速度以及相对的性能。但是无论如何改进, 由于他们的基础不变, 仍然存在着一下各种缺陷:

一是容易产生大量的候选集, 如当要生成一个很长的规则的时候, 产生的中间元素也是巨大量的。

二是由于频集使用了参数m i n s u p p, 所以就无法对小于minsupp的事件进行分析;而如果将minsupp设成一个很低的值, 那么算法的效率会降低。

2、基于Apriori算法的改进思路描述

早在1998年Brin等人就提出了有关动态项集进行计数的DIC方法。这个算法的主要思想是通过扫描不同时刻来添加相关的候选项集, 同时动态项集的计数技术又将数据库整体内容划分为所谓的标记开始点的块。这个算法不同于Apriori算法的每次仅仅在完整的数据库进行扫描前确定相关的候选项的问题, 同时这种变形也是可以在任何开始点的地方添加新的候选项集。但是该种结果算法所需要的数据库相对Apriori来说很少的。

推论1推演出来的Fp-树, 是能够删除支持度比wminsup这一项目小的的项目类型, 同时还不会影响到加权频繁集生成的过程的。因此我们在创建所谓的Fp-树的头表的过程中, 只要我们相对保留那些支持度比wminsup要大的的项目就可以了。同时还要根据它们支持度的大小, 他们各自的权值从小到大进行排列.最后才是根据这个头表进行创建Fp-树的过程。

3、基于大众标签的加权关联规则算法实现

3.1 基于大众标签的加权关联规则算法模型

大众标签系统是4种典型社会性软件之一。下面的就是表明用户是怎样应用tag的.而Free Tags则是用来标注用户发表的信息, 系统通过把所有相同的标签信息进行归类整理, 但这样做的弊端在于抹煞了信息所具有的的主观性.但对于信息提供者来说他们比其他的外来用户更加明确自己表述所具有的含义, 所以即便是Free Tags所用的一些词语可能在全文中的应用的频率不高, 但却比一些词频高的其他相关类型的关键字更加能够反映出整提的信息特征出来。

所谓的Social Tags (社会性标签) 是对Free Tags (自由标签) 的进一步延伸的结果, 但它们之间也有点差别, 体现在使用范围上。所以假如Free Tags不只是单个用户所拥有的, 而是在能够被大众群体所关注的信息关联使用, 那么Free Tags标签就会成为社会性标签从而被赋予了社会性意义。

3.2 算法实现的步骤

不同用户对同一网页使用的tag频率

3.2.1 获取数据

图2显示只是一个关于书签系统的的典型的抽象数据模型.同时在这个模型中存在着3类有关联关系的对象 (即是用户、网页和tag三个) .出现在tag T与网页P连接线上的相关的数字能够表示出所有不同用户根据P使用相关的T的一个频率.研究者根据下图做出相关的定义:

(1) w (P, T) :这主要是表示tag T与网页P之间的相关数字。

(2) bookmark (A) :我们将其定义为用户A所做的一个关于bookmark的集合。

3.2.2 如何计算用户与tag算法之间的相互关联度

所谓关联度被赋予理解是对某一关系所度量的数值。就好像某一用户John做了汽车 (car) 很多的相关的bookmark, 那么我们就可以认为John以及tag“car”之间存在很高关联度值.并且在此系统中, 如果某一tag T很小的时候, 但是关联度往往是很高水平。作如下定义:

3.2.3 计算tag之间的相似度

我们能够根据步骤2来计算出每个相关的tag中的相似度.因此应该将rel (T1, T2) 定义为T2较之T1的相似度, 这个相似度的计算公式应该为:

3.2.4 关于tag聚类的计算

之所以进行Tag聚类依赖就主要是根据步骤3来进行相应的的计算而得到的数值.研究者可以通过相关的聚类, 能够将系统中间大多数的tags进行划分, 并分为不同的主题进行相关的计算.我们还可以利用Tag的聚类来解决tag中所存在的有关数据冗余的所有问题.我们可以推算出tag聚类的整体算法:第一步要在tags中计算出最重要的tag, 就是我们所说的‘父这个概念tag’ (parenttag) ;第二步, 由系统计算出一个仅有的tag的tag聚类;第三步, 将2个相互临近的tag聚类进行整合, 这个过程通过不断的迭代直至没有完全的聚类从而使之符合续合并条件。

3.2.5 如何计算出用户与聚类tag之间所存在的关联度

根据上面的步骤2以及步骤4我们可以得出以下结论定义rel (A, C) 为用户那么A与tag聚类C之间所具有的的关联度为:

3.2.6 对每个tag聚类产生相应的推荐网页

这个步骤系统主要是为每个tag聚类来产生相关的推荐网页, 也就是每个不同主题的相关关联网页.我们应该先定义point (C, P) 为表示在网页P在tag聚类C推荐进行的分值, 那么它的计算公式应该标书为

根据以上公式所计算出得结果推荐出来的分值越高的网页就是所谓的被推荐的网页。

3.2.7 应该为每个用户都产生相关的推荐网页

我们通过步骤5可以得到用户与tag聚类之间所具有的关联度, 通过步骤6我们可以得出相关网页基于tag聚类所具有的推荐分值, 并且应该为每个用户都产生相关的推荐网页。为每个客户产生的推荐网页的计算公式为:

上面的计算结果应该被推荐为客户所用的网页。并且分值越高的网页就应该是最佳的推荐网页。

4、实验分析及讨论

4.1 实验大纲

使用改进的Apriori算法, 构建基于Fp-树的推荐系统, 可以将实验5中的不同的聚类大小表示出来, 其内容主要是:A没有任何相关聚类合并的所有情况.因此在这种情况下, 所有相关的聚类的大小都可以看做是1, 但是加权聚类的数量以及tag的数量是相同的.并且不同于上面的情况, 所以E是上面5个平均聚类大小中的一个最大的。在这里研究者同时列出了进行每种情况计算所需要花费的所有时间。

4.2 实验A

4.2.1 根据实验A来进行评估

在相关的系统中将用户随机的分为“训练组”以及“测试组”两个方面。在上面提及的第1步中, 系统虽然保存了有关“训练组”用户相关数据, 并且更新到了数据库.同时根据第二步到第六步中也是根据这些相关的数据进行计算而得到的。同时在系统中还应该针对所有的测试用户进行相关的技术处理.系统将每个测试组用户的bookmark都分为相关的“查询网页”以及“测试网页”两种。同时将查询网页当做上面的第7步来输入, 研究者可以根据评估来推算出推荐网页的准确精度。我们在这里用下面的公式来解释精确度:

4.2.2 实验A的结果

根据具体实验结果可以得出结论:用户的bookmark数目以及系统推荐的精度之间是成比例的.但是如果输入的网页数目大的话, 那么系统就可以自动的精准分析用户之间的可能性, 这是一个极为自然的结果.同时在下面的5个聚类中, 所以B的精度总体上应该是以下所有中的最好的并且始终大于A.也许是因为在B中必须进行相应的轻微聚类同时还应, 解决相应tag的冗余问题.通过相应聚合“同义tag”的, 并且还要根据用户的喜好来做一定的改动。在另一个方面, 虽然D和E相比较A来说不一定是最好的。同时我们还可以在这个实验中可看出相关的, tag聚类应该中等水平。

5、结语

为了解决标签系统中存在的“信息过载”、“搜索精度”、“垃圾标签”等问题, 本文针对网络信息推荐系统面临的主要问题, 提出了一种基于基于大众标签的加权关联规则算法, 并应用于基于大众标签的推荐系统, 进行bookmark, user, tag三元实验分析, 通过对tag的相似性来挖掘用户的喜好。实验结果表明:通过加权tag聚类在一定程度上解决了tag冗余的问题, 进一步优化了推荐结果。

参考文献

[1]李丹丹.基于混合算法的个性化电子商务推荐系统研究[D].天津财经大学, 2008.5.

[2]刘旭东, 张津铭.电子商务推荐系统研究综述[J].商场现代化, 2008, 第553期.

[3]陶启萍.基于Web数据挖掘的电子商务推荐系统研究[D].辽宁工程技术大学, 2003.

[4]盖亮.电子商务推荐系统的研究与实现[D].天津大学计算机科学与技术学院, 2006.12.

[5]曾子明, 徐小鹏.电子商务推荐系统与智能谈判技术[M].武汉大学出版社, 2008.

[6]欧立奇.协同过滤在电子商务推荐系统中的应用研究[D].西北大学, 2006.5.

[7]施华.基于项目和用户双重聚类的协同过滤推荐算法[D].东北师范大学, 2009.6.

一种改进的加权关联规则挖掘算法 篇2

关键词:数据挖掘,Apriori算法,加权关联规则,频繁项集

0 引 言

数据挖掘是从大量的数据中抽取未知的、可信的、新颖的、有效的及有潜在应用价值的信息或模式的高级处理过程[1]。这些被挖掘出来的有用的信息可以帮助决策者做出更好的决策。数据挖掘更强调的是过程[2,3,4]。1993年,R.Agrawal等人首先提出了挖掘交易数据库中的项目间的关联规则,最初的目的是为了解决购物篮分析 (Basket Analysis)问题。随着研究的深入,文献[5]中首先提出了适用于布尔行关联规则挖掘的经典Apriori算法。Apriori算法的优点是推导过程简单易懂,但在实际应用中,Apriori算法的缺点也很明显:

(1) 需要多次扫描数据库。多次扫描数据库带来巨大开销,使得算法效率大大降低。

(2) 可能产生大量候选集。Apriori算法在迭代过程中会产生中间元素,这个数量有时候是非常巨大的。

另外Apriori挖掘算法追求的是挖掘普通的平凡的规则,实际生活中,每个项目集的重要程度是不一样的。对决策者而言, 他们一般都更倾向于优先考虑利润较高的产品而忽略利润较低的产品。但是利润高的产品并不总是频繁出现的,这就造成了运用经典算法会忽略决策者认为重要的项目。针对这个问题,有学者将权重的概念引入了关联规则挖掘,提出了加权关联规则挖掘算法,New-Apriori算法[6]就是其中的代表。

1 New-Apriori算法分析

1.1 算法定义

首先给出New-Apriori算法中水平加权支持度的定义:

给定项集合X={i1,i2,…,ik},ij的权值设为hj,其中0≤hj≤1,j={1,2,…,k}。项集X的水平加权支持度suph为:

suph(X)=max{h1,h2,,hk}×sup(X)

式中:sup(X)是X的传统支持度计数;max{h1,h2,…,hk}称为X的权值,记为hx,显然0≤hj≤1。最小支持度表示为minsup。

1.2 算法思想

该算法基于Apriori算法,主要是2步实现步骤:首先找出满足加权支持度不小于用户指定的最小支持度minsup的所有加权频繁项集,记为Lk。然后利用频繁项集Lk产生满足最小置信度minconf约束的所有关联规则。这里剪枝的步骤与Apriori算法相比发生了变化,是用水平加权支持度和给定的最小支持度比较。

1.3 算法描述Begin

C1=Generate_C1(D);

L1= {c C1| suph(c) minsup};

K = 1;

While (>0) do {

K++;

Ck= Generate_Ck(Lk-1);

Lk= {c Ck| suph(c) minsup};

L = Lk;

R = Generate_Rule(L); }

End

函数Generate_Ck扫描数据库生成k项候选项集Ck,计算ij的水平加权支持度suph(ij),并根据水平加权支持度从大到小给项目排序。再由判断条件suph(c)minsup对Ck进行筛选,删除Ck中非频繁项集,得到一项频繁项集Lk

1.4 算法不足

(1) 因为New-Apriori算法是基于Apriori算法的,所以仍需要多次扫描数据库。

(2) 根据其权值的定义,该定义能够突出权重大的项集,但是会忽略出现频繁但权值小的项集。另外经过计算后的水平加权支持度的值可能会大于1,这不符合实际中人们的理解。

(3) 因为权值的引入,使得Apriori两个基本性质不再成立,但该算法在生成频繁项集的过程中,仍采用Apriori算法的思想进行连接和剪枝,就不能保证LkCk一定成立。

2 改进算法

本文对New-Apriori算法进行了改进,首先引入矩阵,大大降低了数据库的扫描次数。其次本文给出的权值的定义即考虑到权重大但不频繁出现的项集,也考虑到权重小但频繁出现的项集。最后引入了k-项支持期望方法来进行剪枝,解决了该算法加权频繁项集不存在普通关联规则中频繁项集所具有单调性的问题。其中权值的设定将直接影响到挖掘结果的好坏,对于如何确定权值的问题,一般是根据实际情况来设定[7],也可以采用层次分析法(AHP)来确定对应指标的权值[8]。

2.1 权值的定义

给定项集合I={i1,i2,…,im},是m个不同项的集合,给定事务数据库D,其中每个事务TI中项的集合,使得T。每个事务有一个标识符,称作TID。该事务数据库D中的交易总数为n表示不同项目的重要性,为每一个项目ij赋以权值wj,其中,0≤wj≤1,j={1,2,…,n},即W(ij) = wj

定义1 对于某一项集合 X,定义其权值W(X)为:

W(X)=12(ijXjWk+maxijX{wj})

式中:k表示X中所含项目的个数,0<km

在定义1中,既考虑到了权重大的项目,同时也没有忽略频繁出现而权重小的项目。

定义2 对形如XY的加权关联规则,定义其支持度为:

Wsup=W(X)×support(XY)

定义3 定义加权关联规则的可信度为:

Wconf=support(XY)support(X)

定义4 同时满足最小加权支持度(Wmin_sup)和最小加权可信度(Wmin_conf)称为加权关联规则。

定义5 定义其实际加权支持数SR(X)为:

SR(X)=Wmin_sup×nW(X)

2.2 K-项支持期望

由如上定义可知,对任意k项集X,若X为加权频繁集,其加权支持数SC(X)应满足下式:

SC(X)Wmin_sup×nW(X)

I为所有项的集合,Y为一个q-项(q<k),在剩余项目集(I-Y)中,权重最大的前(k-q)项为{wr1,wr2,…,wr(k-q)}。那么包含项目集Y的任一k-项目集的最大权的可能值为:

W(Y,k)=12(ijYWj+j=1k-qwrjk+maxijX{Wj})

若包含Yk-项集X是频繁集,那么必然有:

这里是向上取整数。取:

B(Y,k) 为Yk-项支持数的期望,它意味着如果包含Yk-项项集是加权频繁的,那么k-项集的支持计数必须不小于B(Y,K),即有支持期望SE=B(Y,k),这是改进算法中剪枝步骤的依据。

2.3 算法描述

首先给出算法描述如下:

输入:具有权重事务数据库D,权重集W;最小加权支持度Wmin_sup,最小置信度Wmin_conf。输出:权重关联规则:

Scan(D):该函数用来扫描一次数据库D,发现其中频繁项目集的最大可能长度,并返回该数值和对应的0-1矩阵。

Count(M,W):该函数根据权值和和当前项目集的矩阵,采用位串逻辑与运算去计算每个当前项目集的支持数,并计算得到k-支持期望和实际需要达到的支持数。

Join(Mk-1):对Mk-1中相关项目做与运算,将结果赋给Ck,并计算每行结果作为该项的支持计数。其中Mk-1中相关项目做与运算的连接方法,与Aproiri的Gen函数相同。C2中有{A,B}和{B,D},那么将连接生成{A,B,D}。

Prune(Ck,SEk,SCk,Mk-1): 通过前一步得到的k-项目集的支持数和对应的k-项支持期望比较,删除不符合条件的min(SEk)≤SCk的所有候选子集。最后构建矩阵Mk和候选集Ck

Check(SCk,SRk):该函数负责遍历TID,更新Ck中所有项目集的支持计数和对应的实际支持支持数,比较当前k-项集的支持计数和对应的k-项实际支持数,删除掉SCk<SRk的候选集,最终剩下的就是k-项频繁集。

Rules-Gen (L):与文献[9]相同,根据L中的频繁项目集生成符合最低置信阈值的关联规则。

2.4 算法过程

例1:设有表1和表2所示的数据库。表1表示某家电商城中热销商品的的主要信息,如条形码,商品名和总利润等;表2对应的交易数据库,对每一笔交易都有一个交易表示符TID以及所购各商品的条形码。

按定义可得到一个模式矩阵:

Μ=Τ1Τ2Τ3Τ4Τ5Τ6Τ7Τ8ABCD[01111010101110011100010011010101]

式中:每行表示项集是否存在。具体来说,0表示当前项集不存在,1表示当前项集存在。由数据库直接扫描得到的项目向量权称为元向量[10]。

接下来利用该矩阵模式M进行计算。在本例中,size=4,从矩阵M中可以得出每个项集的支持数SC1={5,5,3,5}。并且每个项的权值已经在表1中给出,W={0.1,0.3,0.7,0.9}。利用Count (M1,W) 计算每个项集的支持期望:

SE({A},2)=upper(0.25*8/[(0.1+0.9)/2+0.9]/2)=3;

SE({A},3)=upper(0.25*8/[(0.1+0.7+0.9)/3+0.9]/2)=3;

因为SE(A)<SC(A),所以{A}可能是某一频繁项的子集,将其保留在C1中。同理对其他项进行计算,最终得到:

C1= {{A},{B},{C},{D}},将C1转化为矩阵M1:

Μ1=Τ1Τ2Τ3Τ4Τ5Τ6Τ7Τ8ABCD[01111010101110011100010011010101]

通过M1比较候选集C1每项的支持数和实际要达到的支持数。对于项目集{A}有:

SR(A)=(0.25*8)/0.1= 20;

SC(A)=5<SR(A),所以{A}不符合,将其删掉。对C1中其他项进行分析,最终项集{C}…和{D}符合要求,保留在L1中,既有L= L1={{C},{D}},然后需要用矩阵M1连接得到候选集C2={{AB},{AC},{AD},{BC},{BD},{CD}}。

再通过对矩阵M1的各行做与运算,得到对应候选集C2的支持数SC2={3,1,2,1,3,3}。 通过比较SC2与其各项集对应的支持期望得到矩阵M2:

最终得到L2={{B,D},{C,D}},所以L=LL2={{C},{D},{B,D},{C,D}},接下来重复以上步骤,直到再也没有符合要求的项。最终得到的频繁项集为{{C},{D},{B,D},{C,D}}。

3 结 语

本文立足实际,对加权关联规则挖掘算法New-Apriori进行了改进,引入矩阵来表示数据库的数据,只需扫描一次数据库,大大降低了系统开销。改进的权值定义综合考虑到了权值大但出现不频繁和出现频繁但权值小的项目。同时引入了k-项支持期望来解决New- Apriori加权关联规则挖掘算法中加权频繁项集不存在普通关联规则中频繁项集所具有的反单调性的问题。

参考文献

[1]HAN Jia wei,KAMBER Micheline.数据挖掘:概念与技术[M].2版.范明,孟小峰,译.北京:机械工业出版社,2007.

[2]陈文伟,黄金才.数据仓库与数据挖掘[M].北京:人民邮电出版社,2004.

[3]朱明.数据挖掘[M].合肥:中国科技大学出版社,2002.

[4]HAND David,MANNILA Heikki,SMYTH Padhraic.Principles of data mining[M].北京:机械工业出版社,2003.

[5]JAIN A K,MUTRAY M N,FLYNN P J.Data clustering:a review[J].ACM Computting Surveys,1999,31(3):264-323.

[6]张智军,方颖,许云涛.基于Apriori算法的水平加权关联规则挖掘[J].计算机工程与应用2003,39(14):197-199.

[7]JAIN A K,MURTAY M N,FLYNN P J.Data clustering:a review[J].ACM Com-putting Surveys,1999,31(3):264-323.

[8]贾桂霞,张永,陈思睿.一种基于关联模式的完全决策规则的提取方法[J].兰州理工大学学报,2006,32(5):104-107.

[9]HAN J,KAMBER M.Data mining:concepts and techniques[M].San Francisco:Morgan Kaufmann Publishers,2001.

关联加权 篇3

关键词:数据挖掘,时态数据库,生命周期,时态关联规则

1 引言

现实世界数据库中我们可以发现各种各样的时态数据, 例如超市交易记录中的交易时间, 病历中的检查和诊断时间, 天气数据日志文件中的标记?时间等。时态数据库的出现必然要求在知识发现过程中考虑时间因素, 附加上某种时态特征的规则能更好地描述实际情况, 这样的规则就称为时态关联规则, 它能有效挖掘出一些全局支持度较低, 但在某些时段却有较高支持度和信任度的规则, 如中秋节的月饼、圣诞节礼品等容易在传统关联规则挖掘中被忽略但对用户有重要价值的规则。目前国内外研究的主要内容有:序列模式挖掘, 周期关联规则挖掘, 日历关联规则挖掘等。

文献[1]中提出了生命周期的概念, 其主要思想是数据库中每一项X都有一个生命周期, 项目X的支持度等于X的生命周期内包含X的事务数与该段时间内总的事务数的比值。但该算法直接利用Apriori算法中频繁 (k-1) 项集进行连接生成候选k项集, 这种做法存在不合理之处[3]。

文献[2]在考虑关联规则成立的时间区域的同时, 对交易事务进行垂直加权, 使规则的发现体现了一种时间趋势, 但是该文提出的算法并没有对项目进行加权以区分项目的不同重要性, 而且该算法存在和文献[1]中的算法同样的不合理性。

文献[3]提出的算法该进了以上算法的不合理之处, 既考虑了项目的权重, 又考虑了项目的时态性。但在该算法中, 并没有考虑交易记录的权重, 而且该算法中每生成一个候选项集或频繁项集均需通过扫描数据库来计算其加权支持度, 且算法是基于Apriori算法思想设计而成的, 其复杂性与Apriori算法的复杂性相似。

本文对文献[3]中的算法进行了改进, 同时改进了文献[1, 2]的不合理之处, 提出一种新算法来挖掘加权时态关联规则, 算法既考虑了项目的权重, 又考虑了交易的权重, 同时还体现了数据的时态性。算法采用了树和矩阵的数据存储结构, 挖掘过程中只需扫描一次数据库, 且该算法利用向量之间的交集计算加权支持度, 通过对上三角矩阵按支持度计数升序排序, 使得数据尽可能均匀细化, 降低了树的高度, 减少了遍历候选项集树生成的候选项集数量, 提高了时态关联规则的挖掘效率。

2 相关概念

为I中每个项目ij赋以权值wj, 其中0≤wj≤1, j={1, 2, …, n}。当项目具有权重后, 数据项所属的交易也具有了相应的权重。

定义1交易记录Di的权重记为W (Di) :

其中, Di表示交易记录Di中包含的项目个数。

定义2设项集X∩I, X在D内从最初出现到最后出现的时间区域为[T1, T2] (T1<T2) , 称[T1, T2]为项集X的生命周期。|X[T1, T2]|表示时间[T1, T2]内包含项集X的事务个数, |D[T1, T2]|表示D在时间[T1, T2]内的事务总数。

如果项集X和Y成立的有效时间区域分别是[T1, T2]、[T3, T4], 则X∪Y成立的时间区域就是[T1, T2]∩[T3, T4]。

定义3项目集X在其生命周期[T1, T2]内的加权支持度WS (X[T1, T2]) 为:

τ表示时态阈值, |τ|表示τ时间区间内包含的事务个数[7]。

定义4给定一个最小支持度minsup, 时间阈值τ, 当项目集X的加权支持度WS (X[T1, T2]) ≥minsup, 且|[T1, T2]|≥τ时, 我们称项目集X在其生命周期[T1, T2]内是加权时态频繁的。

定理1若项目集X的生命周期小于时间阈值τ, 则X的所有超集都不是加权时态频繁项集。

证明假设项目集X的生命周期是[T1, T2], 所以|[T1, T2]|<τ, 项目集Y是X的超集, 其生命周期为[T3, T4], 有|[T3, T4]|≤|[T1, T2]|, 所以|[T3, T4]|<τ, 根据定义4可知, Y是非频繁项集。

3 优化算法描述

3.1 算法思想

1) 扫描时态数据库D, 得到C1, 并将D转换成布尔矩阵 (BM) 表示形式, 其中行向量表示项集, 列向量表示交易事务。计算I中各个项目的生命周期, 存放在数组L[]中;计算每条交易的权重, 将其放在数组W[]中。

2) 将C1中的各项按其支持度计数递增顺序排列, 并按该顺序生成L1。

3) 根据C1生成C2, 利用定理1对C2中的候选项集进行剪枝。然后扫描布尔矩阵BM, 计算C2中每个候选项集在其各自生命周期内的加权支持度, 得到L2。同时, 利用C1和L2生成上三角矩阵 (ATM) :若C1中的两个项目可组成2项频集, 则将ATM中相应位置填1;否则, 填0。这里, 我们约定主对角线上的元素为0。

4) 根据上三角矩阵ATM生成候选项集树CIT:

1) 创建根节点root, 依次将C1中各项添加到树中, 作为root的子节点。

2) 对第一层的每个节点i, 找到上三角矩阵ATM中该节点对应的行。扫描该行, 若存在项j使得ATMij=1, 则在i节点下建立一个儿子节点j。

3) 对每层的节点按第 (3) 步的方法进行同样的操作, 直到所有的节点都没有子节点。

最后, 从第三层开始遍历该候选项集树CIT, 得到相应的候选项集, 之后根据定理1更新候选项集, 然后计算候选项集的加权支持度, 生成加权时态频繁K (K>=3) 项集。

3.2 算法描述

输入:时态数据库D, 最小支持度minsup, 时间阈值τ, 项目集合I

输出:加权时态频繁项集L

算法说明:

1) C2=Generate_C2 (C1) :C1中的每个项目进行如下的连接:

然后根据定理1对C2进行更新。

2) ATM=Generate_ATM (C1, L2) :根据C1和L2建立上三角矩阵ATM:

1) For each item i in C1

2) For each item j in C1that after i

3) If{i, j}L2{ATMij=1;}∩

4) Else{ATMij=0;}

4 仿真实验

仿真实验的运行环境是Window XP操作系统, AMD Athlon (tm) II X2 255 Processor (3.10 GHz) CPU, 2G内存, 用Java语言编写。对比算法是文献[6]中算法 (以下简称原算法) 。实验数据来自著名的人工合成数据集T40I10D100K, 共有46873条交易记录, 63个数据项, 将记录的产生序号作为该记录的产生时间, 这样数据集就有了时态特征, 项目权值分配采用文献[5]中权值分配方式。

1) 最小支持度不变 (设为0.02) , 时态阈值变化时, 仿真结果对比如下图1。

2) 时态阈值不变 (设为60) , 支持度变化时仿真结果对比如下图2。

从图1、图2的仿真结果对比可以看出, 最小支持度不变时, 时态阈值越大, 产生的候选频繁项集越少, 算法运行所需时间越小;时态阈值不变时, 最小支持度越小, 产生的候选频繁项集越多, 算法运行时间越大。无论时态阈值或者支持度变化, 改进算法性能明显优于原算法性能, 因为改进算法在挖掘过程中只需扫描一次数据库, 并且利用集合交集来计算项集加权支持度, 提高了挖掘效率。

5 结束语

在时态数据库挖掘过程中, 以项目的生命周期作为时间特征, 根据项目不同的重要性, 引入项目权重, 提出了一种加权时态关联规则的挖掘方法。本方法采用树和矩阵的数据存储结构, 挖掘过程中只需扫描一次数据库, 利用高效的数字运算计算加权支持度, 提高了挖掘效率。采用本方法挖掘出的关联规则既体现了数据固有的时间特性, 又体现了项目和交易记录的权重, 更具有实际意义。

参考文献

[1]Ale J M, Rossi G H.An approach to discovering temporal as-sociation rules[C]//Proc.of the 2000 ACM Symposium on Ap-plied Computing[S.1.]:ACM Press, 2000:294-300

[2]朱建平, 乐燕波.数据挖掘中加权时态关联规则的构造[J].计算机工程, 2008, 34 (6) :51-53.

[3]戴月明, 李彦伟, 王金鑫.一种加权时态关联规则挖掘算法[J].计算机工程与应用, 2011, 47 (26) :156-159

[4]张令杰, 徐维祥.基于时态约束的关联规则挖掘算法[J].计算机工程, 2012, 38 (5) :50-52

关联加权 篇4

1异步航迹同步化方法

多传感器融合跟踪系统的信息结构通常分为两类:一类为同步信息结构,在这种结构中,各传感器数据采样严格同步,有相同的采样率且没有通信延迟,融合中心严格按照每步获得的信息进行融合估计;另一类为异步信息结构,各传感器送至融合中心的数据不同步,融合中心按异步获得的信息进行融合估计。在实际应用中,融合中心接收到的各局部航迹往往是异步的。因此,在对各局部航迹进行关联与融合之前,必须将它们统一到融合中心的时间点上,这个过程就是异步航迹的同步化。

以下均假设多传感器信息融合系统中局部节点的个数为2,结果可以直接推广到多局部节点的情况。假设2个局部节点的采样周期分别为T1和T2,融合中心的采样间隔为T,两节点均采用Kalman滤波方法给出各时刻的目标状态估计值及其误差协方差。如果两局部节点采样周期相差较大,即融合中心一个采样间隔内接收到某一节点的多个估计值时,融合中心总将离融合时刻最近的局部估计值外推作为待融合值。

这里利用Kalman滤波器的状态预测及其误差协方差方程将多传感器异步航迹同步到融合中心的时间上来[4]。

状态估计的同步方程为:

误差协方差同步方程为:

其中分别是节点i的航迹j在ti时刻的状态估计及其误差协方差,分别是外推到融合中心时间kT上的校准值,Φi(kT,ti)和Gi(kT,ti)是节点i的航迹从ti时刻到kT时刻的状态转移矩阵和过程噪声分布矩阵,Qi(ti)是过程噪声协方差矩阵。由于各节点的局部跟踪采用线性Kalman滤波器,因此上述预测方程并不引入任何误差。

2改进加权航迹关联算法

加权和修正航迹关联法是最早提出的两种基于统计的航迹关联算法。这两种方法都是采用两条被检验的航迹当前时刻的状态估计量之差形成检验统计量,其多义判决逻辑也很简单,因此当目标密集,或交叉、分岔航迹较多时,其关联性能将严重下降。本文将良好的航迹关联质量管理和多义性处理技术[5]引入加权法中,给出改进的加权航迹关联算法,不仅使航迹关联性能获得了很大的改善,而且其计算量相比加权法增加很少,明显小于修正法。

2.1加权航迹关联算法

该方法将航迹关联问题转化为如下假设检验问题。

H0———是同一目标的航迹估计;

H1———不是同一目标的航迹估计。其中分别为节点1对目标i和节点2对目标j的状态估计值。

当过程噪声较小时,可忽略不同节点间由于过程噪声的影响带来的状态估计误差的互相关现象,即k时刻的检验统计量为:

式(3)中,αij(0)=0,tij(k)=,P1i(k|k)是节点1在k时刻对目标i的估计误差协方差,而P2j(k|k)是节点2在k时刻对目标j的状态估计误差协方差。在H0假设下,αij(k)服从nx自由度的χ2分布,nx是状态估计向量的维数。如果

则接受H0,否则接受H1。其中阈值满足

阈值大小的确定运用了概率统计的思想,根据其分布和所要求的置信度查表所得。

2.2航迹关联质量设计与多义性处理

将参考文献[5]中序贯航迹关联算法的航迹关联质量设计与多义性处理引入加权法中,得出改进的加权法。相比序贯法,由于它在关联检验时没有考虑航迹历史信息,所以它的计算量比序贯法小,但其关联性能却与序贯法接近,明显好于加权法。因此也可得出结论,相比在关联检验时考虑航迹历史信息,关联算法的性能好坏较大地依赖于航迹关联质量设计与多义性处理。

3航迹顺序融合算法

根据是否利用系统航迹的状态估计,航迹融合通常有两种处理结构:一种是局部航迹与局部航迹融合结构;另一种是局部航迹与系统航迹融合结构。在局部航迹与局部航迹融合结构中,来自不同传感器的局部航迹外推到融合中心公共时间上进行关联与融合,得到系统航迹的状态估计。R.Singer提出的简单航迹融合算法(SF)、Y.Bar-Shalom提出的协方差加权航迹融合算法(WCF)以及C.Beugnon等人提出的自适应航迹融合算法[6]都属于这种融合结构好。这种结构运算简单,但由于没有利用系统航迹融合结果的先验信息,其性能不如局部航迹与系统航迹融合结构好。因此,本文基于局部航迹与系统航迹融合结构,给出一种航迹顺序融合算法。

当融合中心接收到两局部节点送来的异步航迹时,利用式(1)和式(2)将异步航迹同步校准到融合中心采样时刻,同时把前一时刻系统航迹的状态外推到该时刻;然后以节点1的局部航迹为基准,依次与节点2的局部航迹进行关联检验和多义判决,系统航迹的延续性与节点1的局部航迹相对应。如果该时刻节点1的局部航迹i和节点2的局部航迹j成为最终关联对,则将航迹i(或j)与外推到该时刻的系统航迹进行融合,融合后的航迹再与航迹j(或i)融合,形成最终的系统航迹。具体计算流程如下:

在融合中心校准时刻kT,节点1的航迹i和节点2的航迹j的状态估计及其误差协方差同步方程为:

系统航迹从上一融合时刻(k-1)T外推到kT时的状态估计及其误差协方差为:

节点1的局部航迹i与系统航迹在kT时刻的融合状态估计及其误差协方差为:

然后用相同的融合方法将融合,得到最终的系统航迹状态估计。

4算法仿真与性能分析

为了验证算法的性能,本文用Monte Carlo方法在Matlab环境下进行300次仿真,每次仿真跟踪持续时间30 s,仿真环境如图1所示,17批目标交叉匀速飞行,初速350 m/s,圆圈表示目标的起始位置。

这里仅考虑2个局部节点,并且每个局部节点配有一部2D雷达。雷达1和雷达2的测距和测角均方根误差分别为σρ1=150 m,σθ1=0.013 rad,σρ2=180 m,σθ2=0.01 rad;采样起始时间t1=0.3 s,t2=0.6 s,采样周期T1=T2=0.6 s;融合中心采样时刻Tf(k)=0.6 k(k叟1)。

图2和图3分别给出了仿真300次后三种航迹关联算法的正确关联概率和错误关联概率曲线,仿真中置信度取0.05,此时的检验门限δ为9.448。可以看出,在L=25附近,加权法和修正法的正确关联概率下降,这是由于多批目标在此对应时间段内交叉飞行所造成的,而改进加权法由于引入了航迹关联质量设计和多义性处理,其关联性能并未受到影响。总之,改进后的加权法的性能较传统加权法和修正法得到很大的改善,且由于没有计算不同局部节点航迹之间的互协方差,其计算量明显小于修正法。

图4、图5和图6分别是传感器1、传感器2以及采用SF算法和本文给出的顺序融合算法跟踪目标1的均方根误差(RMSE)曲线,目标1的起始位置已在图1中标出。在航迹融合前,采用本文给出的方法进行时间校准与航迹关联。可以看出,当航迹跟踪稳定后,本文给出的算法对目标的跟踪精度既好于单个传感器又好于SF算法。

本文基于分布式多传感器融合结构,对异步情况下的航迹关联与融合问题进行了研究,提出了一种基于改进加权航迹关联的异步航迹顺序融合算法。仿真分析表明,异步航迹同步化方法是有效的,改进加权法较传统加权法在计算量没有明显增加的条件下大大提高了关联性能,顺序融合算法则改善了航迹融合的精度。总之,该算法有效地解决了多传感器异步航迹的关联与融合问题。

摘要:在分布式多传感器信息融合系统中,来自各传感器的局部航迹往往是不同步的。针对分布式多传感器异步航迹关联与融合问题,文中提出一种基于改进加权航迹关联的异步航迹顺序融合算法。把多传感器异步航迹外推校准到同一时刻,实现异步航迹的同步化,再用改进的加权航迹关联算法进行航迹关联,并利用顺序融合算法对已关联航迹进行融合。仿真结果表明了该算法的有效性。

关键词:多传感器,异步航迹,同步化,航迹关联,航迹融合

参考文献

[1]朱洪艳,韩崇昭,韩红,等.异步航迹关联算法与仿真[J].系统仿真学报,2004,16(4):685-688.

[2]ALOUANI A T,RICE T R.Asynchronous fusion of corre-lated tracks[A].In Proc.SPIE[C].1998,3365:113-118.

[3]徐毓,金以慧.多传感器异步关联航迹融合[J].系统工程与电子技术,2003,25(11):1318-1320.

[4]杨万海.多传感器数据融合及其应用[M].西安:西安电子科技大学出版社,2004:64-65.

[5]何友,陆大金,彭应宁,等.多传感器数据融合系统中两种新的航迹相关算法[J].电子学报,1997,25(9):10-14.

关联加权 篇5

最早的关联规则算法是由美国IBM公司的Rakesh Agrawal等人提出的Apriori Gen算法[1],之后又有人基于Apriori Gen算法提出了一系列改进算法。此类算法假设每个项目具有相同的重要性,而现实中,决策者会更加关心利润高的项目,却忽略一些利润低的项目;而且随着时间的推移,数据库中已经积累了一些时间跨度比较大的事务,虽然这些事务的出现次数在所有事务中占了相当大的比例,但其中的很多事务却已不再受到决策者的关注。按照传统的Apriori Gen算法进行挖掘,会产生大量用户不感兴趣冗余规则,挖掘效率也因此受到较大影响。为此,文献[2]提出了一种水平加权关联规则的挖掘方法MINWAL(O)算法,该算法根据用户感兴趣的程度的不同为不同的项目设定了不同的权值,解决了项目重要程度不一致的问题。然而每次生成新的候选集后,要判定候选集是否为频繁项集还需要重新对整个数据库进行扫描,这大大增加了算法运行时间。为进一步提高挖掘效率,本文在MINWAL(O)的基础上提出了一种基于BUC的水平加权挖掘算法。

1水平加权关联规则

设有事务数据库D,I={i1,i2,…,in}表示数据库中的所有项的集合,权重集W={w1,w2,…,wn},其中wj(0≤wj≤1, 1≤jn)为项集I中项的对应权值,令X={x1,x2,…,xp},Y={y1,y2,…,yq}分别为I的两个不相交的子集,Support(X)为X在D中的出现次数,被称为支持计数,wminsup为最小加权支持度,我们以关联规则模式“XY”为例进行讨论。

定义1 定义项集X的加权支持度

Wsup=(ijXwj)Support(X)/n

定义2 定义规则XY的加权支持度

Wsup=(ij(XY)wj)Support(XY)/n

定义3 若有项集X满足(ijXwj)Support(X)/n≥wminsup,则称X为加权频繁项集。

性质1 给定包含T个事务的数据库,对于任意频繁k项集X,其在数据库中的出现次数记为SC(X),若X为加权频繁集,则SC(X)满足以下条件:

SC(X)≥wminsup×ΤijXwj

定义4 设I为所有项目的集合,假设Y为一个q项集,q<k,在剩余项目集合(I-Y)中,记前(k-q)个最大的权值为wr1,wr2,…,wrk-q,则包含项集Yk项集的最大可能权值为:

W(Y,k)=ijYwj+j=1k-qwrj

其中,第一个累加式为项集Y中所有项目的权值之和,第二个累加式为项集(I-Y)中权值最大的前(k-q)个权值之和。

根据以上两式,我们给出了如下定义。

定义5 若包含项集Yk项集是频繁的,则其最低支持记数为:

B(Y,k)=[wminsup×ΤW(Y,k)]

我们称B(Y,k)为Yk项支持期望,并规定B(Y,k)向上取整。

将MINWAL(O)的算法流程描述如下:

输入:事务数据库D,最小加权支持度wminsup, 最小可信度minconf,每个项的权重wi以及项的总数。

输出:用户感兴趣的关联规则。

为方便描述,我们引入以下记号,用Lk表示频繁k项集,用Ck表示有可能成为频繁j项集的k项集的集合(jk)。

针对以上算法作如下说明:

(1) Search(D):扫描数据库中每个事务所包含的项,求出所包含项的最大个数s。

(2) Count(D,W):计算所有1项集的出现次数,并根据1项集的出现次数计算出相应的s项支持期望,若1项集的出现次数大于s项支持期望,则此1项集作为候选集并入C1。

(3) Join(Ck- 1):利用候选集Ck- 1生成Ck,其方法与经典Apriori Gen算法中的连接方法一致。

(4) Prune(Ck):在以下情况下,项集将被修剪:

(a) 项集Ck中的子集不在Ck- 1中;

(b) 估算候选k项集X的出现次数Support(X)的边界,它是其k个(k-1)子项集中出现次数的最小值,若边界值小于所有已计算出的X的s项支持期望,则X不可能成为频繁项集,可以修剪掉。

(5) Check (Ck ):扫描数据库,得到Ck中项集的出现次数,若其中某项集的出现次数小于其s项支持期望,则被修剪掉。剩余的项集保存在Ck中,然后再计算Ck中项集的加权支持度,最后得出频繁k项集Lk。

(6) Rules- Gen (L ):与Apriori Gen算法相同,根据最小可信度产生关联规则。

从算法流程我们可以看到,在MINWAL(O)算法中,每次生成新的候选集都要重新扫描整个数据库,这使得算法的效率受到很大局限。针对以上缺点,我们提出了一种改进加权算法。

2基于BUC水平加权关联规则算法

BUC算法最早在1999年由K.Beyer等人在文献[3]中提出,这种算法可以用于在数据仓库中进行多维关联规则挖掘。与基于Apriori Gen的算法相比,BUC算法采用了深度优先的策略。它根据(k-1)项集(i1,i2,…,ik-1)生成k项集(i1,i2,…,ik-1,ik),图1说明了它的处理过程。

所有项集都是自底向上生成。首先,计算每个维A、B、C和D中不同的项的出现次数,在左分支A的取值结果的基础上,依次计算维组合AB,ABC,ABCD中不同项集的出现次数。在包含AB维中某项集事务的ID已知的情况下,计算包含ABC的事务的出现次数变得容易很多,因为我们只需要从这些包含AB维中项集的事务中检查维C中的某个项的出现次数是否满足最小支持度minsup即可。当项集的出现次数不满足minsup或者根据k项集(i1,i2,…,ik)无法再生成(k+1)项集(i1,i2,…,ik,ik+1)时,递归算法结束。

我们将这种针对多维数据挖掘的BUC算法的思想,用于布尔型的水平加权关联规则挖掘,提出了一种基于BUC水平加权关联规则的算法BUC-MINWAL。首先我们给出递归函数部分的算法实现过程。函数BUC-MINWAL(tuple, rowids, values, attpos)中的参数的含义依次为:项集.,一列记录的id,集合I中满足s项支持期望的1项集集合,项在集合values中的顺序。attribute表示在集合values中的项。

在上述递归函数中,第(5)行到第(9)行在记录中找出包含某个特定项的事务,第(11)行到第(14)行判断包含当前项集的事务出现次数是否满足s项支持期望和最小加权支持度,若两个条件都满足则将项集归入到频繁集results,只要当前项集满足s项支持期望,则继续生成一个新的项集。第(15)行到第(18)行利用递归函数产生新的项集。

整个BUC-MINWAL算法实现如下所示:

算法首先扫描数据库,从中找出事务所包含项的个数的最大值s,然后对所有的1项集进行扫描,计算出其出现次数,检查出现次数是否满足其对应的s项支持期望B(a, s)。从第(7)行开始,算法循环将满足s项支持期望的1项集赋值给参数value,从第(8)行起调用递归函数产生频繁集。

3算法示例

下面给出一个简单的例子说明本文提出算法的执行过程。设有事务数据库如表1所示,项集{x1, x2, x3, x4, x5}对应的权值集为{0.9,0.2,0.4,0.3,0.1},最小加权支持度wminsup为0.57。

1) 首先,对数据库进行一次扫描,得到事务数据库中项集的最大长度为4。

2) 再次扫描数据库,求出所有1项集{{x1},{x2},{x3},{x4},{x5}}的出现次数为{4,5,2,6,7},然后分别计算各个1项集的4项支持期望。其中{x1}的4项支持期望为B({x1},4) = [4/(0.9+0.4+0.3+0.2)] = 3,同理依次计算其他1项集的4项支持期望,得到各个1项集对应的4项支持期望为{3,3,3,3,3,3}。将其与出现次数相比较,将出现次数大于4项支持期望的1项集加入到集合values中,得到values{{x1},{x2},{x4},{x5}}。1项集{x3}的出现次数为2,小于其4项支持期望,所以被删除。

3) 接下来,我们以1项集{x1}这条分支进行说明。首先,项集{x1},{x2}进行连接生成2项集{x1,x2},然后计算得到其4项支持期望为3,而项集{x1,x2}的实际出现次数为2,小于其4项支持期望,则项集{1,2}被剪枝。接着,项集{x1},{x4}进行连接生成2项集{x1,x4},经计算得到其4项支持期望为3,而其项集出现次数为3,等于其4项支持期望,算法继续向下执行。又因为项集{x1,x4}的加权支持度为3×(0.9+0.3)/7<0.57,所以不能归入到频繁集中。同理,接下来的项集{x1,x4,x5}和{x1,x5}的出现次数分别为3和4,都不小于其各自的4项支持期望3。项集{x1,x4,x5}的加权支持度小于wminsup,不能归入频繁集,而项集{x1,x5}的加权支持度大于wminsup,因此将{x1,x5}加入到频繁集中,到此,{x1}分支的递归算法结束。接下来算法从项集{x2}开始,运算过程与{x1}分支类似。当算法全部结束后,根据生成的频繁集results产生关联规则。

4算法的进一步讨论

BUC-MINWAL算法采用的这种深度优先的策略,可以在每一次生成新的项集时,都缩小数据库事务的搜索范围。然而我们发现,BUC算法对项集连接操作的工作量主要集中在左边的分支,连接操作的次数从左到右逐渐减少。如果能够在左边的分支中尽早地发现不满足s项支持期望的项集,那么就可以减少大量不必要的连接,而且可以减少对数据库中事务的扫描次数。

例如:事务数据库中的项集{A}、{B}的出现次数分别为5、10,首先给定{A}、{B}的s项支持期望均为6,我们按照先A后B的顺序进行扫描,当发现项集{A}的支持期望小于其s项支持期望,则没有必要再和项集{B}进行连接。若按照先B后A的顺序,则要经过连接后才发现,由于项集{A}不满足其s项支持期望导致项集{A,B}也不可能满足其s项支持期望,项集{A,B}被剪枝。其次,我们再假设{A}、{B}的s项支持期望均为5,我们按照先A后B的顺序进行扫描,则对项集{A,B}的扫描只需要限制在包含项集{A}的事务中即可,也就是说只需要扫描5次。若按照先B后A的顺序,则对项集{A,B}的扫描上升到10次。

基于以上思想,我们可以在找出所有满足s项支持期望的1项集后,按照其出现次数由小到大进行排序,这样就可以对那些不符合条件的项集尽早进行“剪枝”,以达到对BUC-MINWAL算法的进一步优化。

5实验结果

下面我们通过实验来对比BUC-MINWAL算法与MINWAL算法的性能。实验运行环境是P4 1.8G,内存512MB,操作系统为Windows XP,采用Java语言实现了两种算法。数据源使用合成数据,根据文献[1]的方法生成,共有10000条事务,100个不同的项,事物所包含项集的平均长度为10,潜在频繁集数目为2000。项的权重分配如文献[5]。

从图2的试验结果中可以看到,在采用了深度优先的策略之后,由于缩小了每次生成候选集后对数据库事务扫描的范围, BUC-MINWAL算法的执行效率有了明显的改进,证明改进算法是有效的。

6结束语

本文基于BUC算法思想提出了一种改进的水平加权关联规则算法BUC-MINWAL,其主要优点是可在包含k-1项集的事务中搜索包含k项集的事务,减少了搜索的范围,提高了算法的性能。然而,权值的选择对算法性能的影响较大,值得我们进一步研究。

摘要:关联规则挖掘可以从大量数据中发现项集间潜在而有趣的相互联系。针对用户对每个项目感兴趣的程度不同,一些学者提出了水平加权关联规则。然而每次生成新候选集后对整个数据库事物的扫描成为算法效率的一大瓶颈。为进一步提高加权关联规则的挖掘效率,在原有的水平加权关联规则算法的基础上,采取了深度优先的策略,提出了一种基于BUC的水平加权关联规则挖掘算法——BUC-MINWAL。改进算法可以大大减少对数据库的扫描范围。实验结果表明,改进的算法有更好的执行效率。

关键词:数据挖掘,加权关联规则,自底向上运算

参考文献

[1]Agrawal R,Srikant R.Fast Algorithm for Mining Association Rules[C].In Proceedings of1994International Conference of Very Large Data Base,1994:487.

[2]Cai C H,Ada W C Fu,Cheng C H.Mining association rules with weighted items[C].In Proceedings of the International Database Engi-neering and Applications Symposium,1998:68.

[3]Beyer K,Ramakrishnan R.Bottom-up computation of sparse and Ice-berg CUBE[C].In Proceedings of the ACM SIGMOD International Conference on Management of Data,1999:359.

[4]Thomas Legler,Wolfgang Lehner,Andrew Ross.Data Mining with the SAP NetWeaver BI Accelerator[C].In Proceedings of the31stInterna-tional Conference on Very Large Data Bases,2005:1059.

关联加权 篇6

在本文的研究中,我们用主题表示文档,将文档和主题间的关系描述成事务的形式,根据臻于成熟的关联规则挖掘算法初步划分文档类。然后依照类间耦合度和类的内聚性进行聚类确认。算法的基本思想是:首先利用向量空间模型对文档进行结构化处理,用文档主题特征向量形成文档主题事务矩阵。然后运用空间粒度分析的方法对样本事务矩阵实现最优聚类即关联规则的空间粒度聚类算法,并与经典的k-均值模糊算法进行比较,关联规则的空间粒度聚类算法的精度比k-均值模糊算法提高了很多,并用实验证明了其有效性和可行性。

1 文档结构矩阵加权关联规则

在向量空间模型中我们设T=是一个文档数据库,tj表示文档数据库中的第j个记录表示文档数据库的特征词项集,用于表示特征词项ip在文档数据库中的矩阵权值[2,3]。其中,若ip不在tj中,则。我们则有特征词项集(X,Y)的矩阵加权关联规则可以表示为X→Y[4]。设某数据库中有2个文档,第一个文档表示为,第二个文档表示为',用表示文档词语对文档'的关联度,则可以用矩阵表示为:

1.1 矩阵加权关联规则支持度和可信度

支持度表示规则的频度。若文档数据集T中包含项目集K的事务数称为项目集K的支持数,可用公式表示为:

其中,k为项集{X∪Y}的项目数,n为数据库的记录数。

可信度表示规则的强度,我们定义矩阵加权关联规则可信度为:

用minsupport表示最小矩阵加权支持度阈值,则有support(x,y)≥minsupport。同理用minconf表示最小矩阵加权可信度阈值,则有conf(x,y)≥minconf。令Il奂I是q-项集。Il项集在文档数据库中的出现次数为SC(Il),若包含q-项集Il的k-项集是频繁的,那么包含项集Il的k-项集最大权值之和为max w(Il,k)可表示为:

由公式(3)和(4)可以推导出包含q-项集Il的k-项集权值阈值我们用kiwt(Il,k)表示即可以得出以下公式:

若q-项集Il的k-项集权值之和大于等于k-项集权值阈值,则包含Il的k-项集很有可能是频繁项集。对于矩阵加权k-项集的任何子集,只要至少存在一个子集的权值之和小于其k-权值阈值,则该k-项集一定是非频繁项集。

1.2 矩阵加权关联算法

矩阵加权关联算法思想为根据包含(k-1)-项集的k-权值阈值找出可能生成频繁k-项集的(k-1)-项集组成新的项集C(k-1)并进行剪枝候选项集。经过剪枝后的矩阵候选项集将大幅度减少。再由C(k-1)产生矩阵加权频繁k-项集L(k-1)并进行剪枝候选项集。重复运用k-权值阈值逐层迭代。直到矩阵加权候选项集集合为空时结束。最后根据矩阵加权可信度由矩阵加权频繁项集生成文档词语之间的相关度(相似度)。其算法描述如下:

1)扫描文档数据库T,找出可能的最大项目集的项目个数(Item_Maxsize)、项目总数(Item_count)和事务记录总数(record_count)。

2)扫描文档数据库T,累加各个1-项集的权值(SumWeight(C1)和支持数(SC(C1)),找出各1-项集的最大权值(MaxWeight[C1])以及计算包含l-项集的2-权值阈值(Kiwt(C1,2)),最后产生C1,C1,L1。

3)根据Apriori连接相似算法,由Ck-1连接生成Ck。累加候选项集Ck在数据库T中出现的频度。

4)统计Ck中所有候选项集的权值之和SumWeight(Ck)和包含Ck的(k-1)-权值阈值(Kiwt(Ck,k+1)),进行剪枝。

5)生成频繁项目集,并入库。

6)输出繁项目集,产生文档词语之间的相关度(相似度)。

相似度得出后,根据计算结果就可以执行聚类空间粒度聚类算法。

2 基于空间粒度的聚类算法

2.1 空间粒度分析理论及粒度分析

在文档的归类的问题上将所研究的问题用一个三元组(X,F,T)进行描述[6],其中X表示主题的论域,即考虑基本元素的集合。若F为属性函数,则可以定义为F:X→Y,其中Y表述基本元素的属性集合。T表示论域的结构,我们把它定义为论域中各个基本元素之间的关系。从一个较“粗”的角度看问题,实际上是对X进行简化,把性质相近的元素看成是等价的,把它们归入一类,整体作为一个新元素,这样就形成一个粒度较大的论域,从而把原问题(X,F,T)可以转化成新层次上的问题([X],[Y],[T])。可以单独进行处理关系。

聚类算法是一种有效的数据分析方法,从划分角度来看,聚类算法事实上每一种聚类结果都是对应该数据集上的一种划分,而一个等价关系就定义了数据集合的一个划分。在不同的聚类阈值处得出不同的聚类结果。即使在某一次具体的聚类过程中簇内部的粒度是相同的,但簇间的粒度可能很相似。本文所需要的结果应该是划分后的各个簇,其粒度差别大于一定的阈值,即簇间的粒度差异明显,而簇内的粒度相同。此时的关键就是选择合适的簇间相似度,这是粒度基本思想在簇间的表现。

本文采用粒度分析方法即一个不断分析比较的动态过程,合并和分解法选择来调整粒度。对于给定的相似度函数,取不同的阈值,必然得到一聚类,这些聚类一般是不同的。当采用较大的阈值时,展现在我们面前的是样本点集比较“粗’的轮廓,一些细枝末节被忽略掉了;而采用较小的阈值时,就能够比较精细地刻画样本点之间一些细微差别。当阈值R>R1时,所有样本被聚一类,称粗粒度聚类,而R

因此在进行聚类分析时,以“最优”相似度函数为基础,在所有可能的粒度中,寻找出一个“最优”合适粒度。

2.2 基于关联规则的空间粒度聚类算法

根据矩阵加权关联算法的计算结果,把空间粒度原理应用到聚类中,就可以设计出相应的聚类算法:

1)求所有文档样本的重心,并以离该重心最近的样本作为中心点。

2)求出其它未聚类的所有样本与中心点的平均距离D。

3)以平均距离为初始聚类,求出球形圆环。

4)求当前球形的重心,获得新的球形,直到球形的样本数不再增加为止。

5)找离当前球形的重最远的点作为下一步球形的圆心。

6)重复2)~5)直到球形包含所有的样本为程序结束条件。

7)采用粒度分析法对得到的聚类结果进行分析。根据矩阵加权关联算法得出的相似度、人对文档感兴趣情况及结合实际情况判断聚类结果。若粒度偏大即平均距离偏大,重新选择新的D,返回(3);若粒度偏小转步骤(8),若粒度合适,则转到步骤(4)。

8)求出聚类结果中簇与簇两两之间的相似度,并对所有相似度值中求出最大的相似度值MAXSIM。

9)初始化一个相似度阈值S。如果最大相似度MAXSIM

10)根据矩阵加权关联算法得出的相似度、人对文档感兴趣情况及结合实际情况调整确定合适的粒度,再次对聚类结果进行分析并适当调整相似度阈值S,得到最后的聚类结果。该文的聚类算法在矩阵的初始构造和关联算法计算机相似的结果上都应用到。再用粒度的粗细阀值进行空间粒度聚类,进一步对文档的精确度进行提高。

4 实验和结论

在实验中我们采用聚类准确率来表示聚类精确度,即在一个类别中的正确分类与算法在该类上的所有分类的百分比。准确率越高表明聚类算法在该类上出错的概率越小。则聚类精确度可定义为:

其中fpi是错分到簇Ci且属于其他簇的文档数。tpi是正确分到簇Ci中的文档数。

为了对本文提出的算法进行分析、评价,我们将它和K-Means算法及Apriori算法进行比较。实验中采用文档集从Internet上搜索得到的。整个实验在Windows 2003 server上进行,计算机CPU为Inte3.5GHZ。从Internet上搜索的文档由历史、地理、数学、科技、文物、计算机、体育、生物、艺术、文化等10个大类,每类30篇文章。通过加权矩阵关联规则来构造文档的空间矩阵,并根据式(3)计算词频及文档矢量矩阵中各个元素的权值,我们以3个特征词项为例(对多个特征词项也一样构造),然后利用式(1)和式(2)计算支持度support和可信度conf,得到表1的关联规则表。其中support1表示特征词项1对特征词项2的支持度,support2表示特征词项2对特征词项3的支持度,同理conf1示特征词项1对特征词项2的可信度,conf2示特征词项2对特征词项3的可信度。

其中特征词项的“中国”,“人们”,“共产党”的平均支持度为Avgsupport为0.3146,可信度为:0.6058。然后根据矩阵加权关联算法进行相似度计算。根据计算结果可以得到聚类数目及聚类精确度,如表2所示。

从表2可以看出矩阵关联规则的空间粒度算法的执行时间比Apriori及K-均值算法的时间都要略长,影响时间的主要因数是迭代的次数增加及增加了矩阵关联规则算法。但我们从表(2)的结果上发现矩阵关联规则的空间粒度算法的正确率大大地提高,比Apriori提高了11.6%,比K-均值提高了9.1%,主要是因为进行了对矩阵的初始化进行聚类,然后利用了矩阵关联规则算法进行进一步分析,得到结果后再次根据计算结果的相似度进行聚类。使得正确率大大的提高。以上是针对小文档进行的关联聚类分析,接着我们分析针对大型文档数据库的文档数随时间的变化,由图1可以看出矩阵关联规则的空间粒度算法和K-均值算法在500-800之间的程序执行时间比较接近。但在900以上矩阵关联规则的空间粒度算法的时间明显比K-均值算法的时间要少很多,这主要由于新算法在执行剪枝后矩阵的元数变小的原因。实验表明该算法对于大文档的时间复杂度比较理想。

5 结束语

该文在原有的关联算法的基础上,提出了一种矩阵加权关联规则的空间粒度算法。该算法的核心是根据文档的特征向量提取文档的相似度,再在该关联规则算法上进行聚类来寻找相似关系的频繁项目集。在粒度空间中采用相似度阀值进行调整粒度的粗细问题。通过矩阵加权关联规则算法进行聚类,因此在精度上有较大的提高。该方法是一个新的思路,实验结果表明在解决多维数据有很好的效果。但在中小文档中的时间复杂度比以往的算法略高点,但在对混合数据的处理能力上有一定的欠缺,下阶段将继续进行算法的改进以期望能对混合数据进行处理。

参考文献

[1]HUANG M X,YAN X W,ZHANG S C.Review and perspective of query expansion techniques.Computer Applications and Software,2007,24(11):1-4(in Chinese with English abstract).

[2]KURAMOCHI M.Karypis G Frequent Subgraph Discovery//Pro-caedings of the2001IEEE International Conference on Data Mining.San Jose,Cali-fornia,USA,2001:313-320.

[3]BEBEL B,KROLIKOWSLD Z,WREMBL R.Formal Approach to Modeling a Multiversion Data Warehouse[J].Bulletin of the Polish Academy of Sci-ences,2006,54(1):51-62.

[4]AGRAWAL R,IMIELINSKI T,SWAMI A.Mining Association Rules between Sets of Items in Large Database[C]//Proceedings of the ACM SIGM OD Conference on Management of Data.Washington,USA:ACM Press,1993.

[5]MEIDLDI W,NIEDERREITER H.Counting functions and expected values for the k-error linear complexity[J].Finite Fields Appl,2002,8:142-154.

[6]MEIDLDI W,NIEDERREITER H.Linear complexity k-error linear complexity,and the discrete fourier transform[J].Complexity,2002,18:87-103.

[7]MULLER K,MIKA S,RATSCH G.An Introduction to Kernel-based Learning Algorithms[J].IEEE Trans.on Neural Networks,2001,12(2):181-201.

[8]王伦文.聚类的粒度分析[J].计算机工程与应用,2006,42(5):29-31,65.

[9]卜东坡,白硕,李国杰.聚类、分类中的粒度原理[J].计算机学报,2002,25(8):810-816.

关联加权 篇7

关键词:入侵检测系统,数据挖掘,关联规则算法,数据采集

在互联网技术普及的时代, 网络安全问题越来越多。由于互联网是开放式的网络, 并不能够对用户的网络安全进行维护和保障, 一旦用户的网络数据库遭到恶意入侵, 就会造成很大的影响。为了避免恶意入侵所带来的不良后果, 必须尽快采用一种切实可行的网络数据保护措施来维护人们的信息安全, 而入侵检测技术就是一种专为计算机系统打造的异常现象检测技术。随着网络环境的日渐复杂, 入侵检测系统在维护网络安全的同时, 也逐渐暴露出了自身的问题, 例如在运行过程中出现误报和漏报的现象;实际检测速度过于迟缓, 无法满足网络需求等。因此, 如何改进入侵检测系统应对网络异常的能力, 提高其对网络进行实时检测的精准性也是当前的研究热门。

1 改进加权关联规则挖掘算法

加权关联规则挖掘算法, 即WAFP算法, 其是基于MLNML算法和FP-Growth算法出现的, 充分结合MLNML算法中的加权概念和FP-Growth算法中的项目附加值, 使算法在产生加权频繁项目集时不产生Frequent Pattern Tree, 从而改进了原本MLNML算法中需要对数据库进行反复扫描计算的缺陷。WAFP算法特征在于能够将数据库中的加权频繁项目集在WAFP树中反映, 并保持各项目的联系。该算法便于系统直接从WAFP树中循环挖掘符合条件的加权关联项目集。在挖掘时, 以根节点为基础出发点, 并在每个路径中都循环挖掘, 直到找到所有满足条件的项目集。

WAFP算法需要首先通过WAFP树对输入的数据进行压缩, 并形成教育事务数据库, 再将数据库中的每个事务进行路径映射, 使WAFP能够表达出各项目之间的关系。WAFP树从初始值null根节点开始, 对入侵数据库D进行设置, 并将加权支持度的最小值设为Wmin sup。项目和列表与项目Ii的权值W设为输入, 且1<i<n.输出为已完成构造的WAFP树。将WAFP树视为空树进行运算, 并对事务数据库中的交易记录进行加权频繁项目集, 再将其作为WAFP树的节点植入, 从而扫描和计算整个数据库, 再完成WAFP数指针的反转处理, 并将同名称节点连接至Head Table, 完成WAFP树的生成。

2 入侵检测系统

由于数据挖掘具有可拓展性特征, 本系统的设计将分为四大模块进行, 分别为数据采集子系统、告警输出模块、核心拓展接口模块和动态模块管理。动态模块管理是该系统中最为核心的部分, 主要用于维持其他模块的运行, 例如动态载入数据和卸载等, 实现系统的动态性、动态模块与核心拓展接口模块互动和系统动态的拓展性。数据采集子系统包括数据预处理和网络数据包获取两大模块, 其中, 数据预处理模块能够对噪声数据和数据缺失值进行识别和处理, 从而保证系统数据的同一性。此外, 系统在数据采集模块中将会对所需的网络数据包进行分析, 在对数据包进行预处理后发送至协议分析模块, 从而完成整个数据的分析。

该系统由数据采集子系统、数据分析子系统和响应子系统三个系统构成。数据采集子系统包括数据预处理模块和网络数据包获取模块。其中, 网络数据包获取模块的作用在于获取网络传输的数据包, 在数据包中获取源地址、连接状态和传输数据等信息。数据分析子系统中包括了数据库、规则库、数据挖掘模块、规则解析模块和协议分析模块。

3 系统仿真测试

将本系统安装于某高校图书馆的检测服务器中进行试验, 该检测服务器基本配置为Inter酷睿2.4 GHz处理器, 基本内存为512 M, 硬盘容量为160 GB, 可搭载Windows 2003 SP4版本的操作系统进行作业。检测器已连接局域网, 并安装了相关证书服务和SQL Server 2000系统。

本实验通过使用Stick软件测试系统的应对压力和IDS逃避指数。经检测发现, 该系统最短可在2 s内对400以上的攻击作出反应, 而告警信息过快则会导致IDS逃避变得迟缓, 甚至出现滞后现象, 导致系统停止工作。Stick软件的攻击特征具有多样性, 且都由Snot的规则组包构成。其在IDS中运行时会导致系统发出告警信息。这些信息在网络管理者看来来源地并不明确, 因此, IDS无法作出正确的反应。当软件攻击表现的信息数据包大于IDS可处理的能力时, 将会使系统停止服务。而此时的Snot程序可将IDS的状态进行翻转, Snot的Rule输入后, Snot将成为任意包生成器, 同时将Snort Rule文件作为数据信息源。

测试表明, 采用Stick抗攻击性能测试的计算机CPU占有率达到了100%, 内存占有率也高达95%.而采用Snot抗攻击性能测试时, 计算机CPU的占有率仅达到82.5%, 内存占有率也相对较低, 只占了76.2%.

参考文献

上一篇:家族成员化下一篇:软件测试过程管理