一种基于关联规则分类的改进方法

掣业业业业业簟簟业躲鬻・数据库与信息处理・弗

凑习降习降习ls习,s习l}铆s习s习降赤

一种基于关联规则分类的改进方法

查金水宋良图刘现平

(中科院合肥智能机械研究所,合肥230031)

E-mail:chajinshui@126.corn

要论文首先对一种基于关联规则分类的算法做出了分析。然后对算法中的类关联规则的提取方法进行了改进,得

到了一种新的基于关联规则分类的算法。并结合棉花病虫害数据运行的结果对两种算法的运行效率和实用性进行了比较。关键词

关联规则

类关联规则FP-树分类

文献标识码A

中图分类号TPl81

文章编号1002—8331一(2006)10—0155—03

AnImproved

Method

Based

on

ClassificationofAssociationRules

LiuXianping

ZhaJinshui

SongLiangtu

(InstituteofIntelligentMachines.ChineseAcademyofSciences。Hefei230031)

Abstract:Fromextractionin

this

concrete

analysis

oftheclassified

algorithm

based

on

associationrule,weclassificationbetween

the

make

forimprovementof

methodin

classassociationcomparison

rulesand

newalgorithmbasedpracticability

is

on

ofassociation

two

rulesis

acquired

to

paper.Then

ofefficiency

and

made

algorithmsaccording

the

operationresultof

cottondiseasedata.

Keywords:associationrule,classassociationrules,Frequent-patterntree,classification

引言

对于一些大的数据库来说,建立一个精确而又有效的分类

(2)产生所有的类关联规则。

(3)基于已经产生的类关联规则建立一个分类器。(4)利用分类器对未知类别数据进行分类。

如图1所示,我们首先假设数据集是一个正常的关系表。这个表中包含了带有£个不同属性值的Ⅳ个案例,这,v个案例已经被划分为q个已知的类。属性值可以是离散的也可以是连续的。对于一个连续的属性值,我们首先将其值的区间离散化成许多小区间。然后再将这些小的区间映射到一系列连续的整型值。

器是数据挖掘和机器学习的一个重要任务——给定一个带有

类别标签的测试数据集,用它来建立一个分类器,然后预测那些未知类别的数据对象。现在的许多分类方法都是基于启发式的搜索技术,比如决策数算法[1】、Bayes网络和一些统计学的方法。还有一些在商业化的数据挖掘领域内很少用到的方法,诸如k一最近邻分类、基于案例的推理、遗传算法等。

分类规则的挖掘和关联规则脚的挖掘是两种重要的数据挖掘技术。分类规则挖掘的目标就是找出数据库中的一些规则,组成一个精确的分类器。而关联规则的挖掘就是找出数据库中满足最小支持度与最小确信度约束的规则。对关联规则来说,它的目标是没有预先确定的。而对分类规则的挖掘来说,它有一个预先确定的唯一的目标,即类别标签。分类规则和关联规则的挖掘在实际中都是不可缺少的。因此,数据挖掘技术也已将关联规则挖掘用于分类问题[31。将两种挖掘技术结合起来对使用者来说既节省时间又方便很多。这两种技术的结合可以产生一种新的分类方法:基于关联规则的分类。在关联规则分类中,规则的右侧固定为类别的属性。我们将这些规则称为类关

联规则(classassociationrules,CARs)[41。

鲞墨鍪塑查,主磊丽网查登塑型苎塑竺差

离散化

产生类关联规则

选择

测试结果分析r

分类

、输入测试数据

建立分类器

优化分类器

●r

_--●

图l基于关联规则分类的流程图

设D为事务集.,是D中所有项目的集合、l,是类别标签的集合。如果X∈d,我们称一个数据项d∈D包含X∈,,,是数

据项D的子集。一个类关联规则(CAR)就是下面的形式X—

y,其中X∈,、Y∈Y。它的支持度与确信度的定义如下:规则R:

数据挖掘中类关联规则的挖掘主要包括下面几个步骤(如

图1所示):

X—y的支持度sup是指D中有s%的案例包含有带有类别标

签y的项目X。sup与D中的含有X的案例数之比称为确信度

(1)如果是连续的属性值,需要将其离散化。

基金项目:国家863高技术研究发展计划资助项目(编号:2003AAl18070)

作者简介:查金水(1978一),男,硕士研究生,主要研究方向:数据挖掘,复杂系统。宋良图(1963一),男,副研究员,主要研究方向:智能化农业信息系

统。刘现平(1979一),男,硕士研究生,主要研究方向:图像检索系统,图形与图像处理。

计算机工程与应用2006.10

155

万方数据 

confo我们的目标就是根据使用者给定的最小支持度minsup和最小置信度minconf阀值来产生所有的CARs集,然后根据产生的CARs建立一个分类器。

CBA算法的描述

CBA算法阁包含两个步骤:类关联规则的产生和分类器的

建立。2.1

基本概念

产生规则的首要条件就是要找出所有大于最低支持度阀

值的规则。一个规则项ruleitem的形式如下:<condset,y>。这里的condset是一项集.YEY是一个类别标签。Condset的支持度(condsupCount)是指D中包含condset的数。规则项ruleitem的支持度(rulesupCount)是指D中类别标签是Y的condset的数。每一个ruleitem可以表示一条规则:condset---*y。它的支持度是(rulesupCount/IDI)4100%,这里lDI是数据集的大小。它的确信度是(rulesupCount/condsupCount)4100%。

对于有同样condset的项集来说。确信度最高的将被选为可能的规则PR(possiblerules)来代表这个项集。如果有超过一个的项集具有相同的最高的确信度,我们将随机的选择一个项集。如果一条规则的确信度大于最低确信度阀值,我们说这条规则是精确的。而类关联规则集就是包含那些既频繁又精确的

所有的PR。

2.2产生类关联规则

CBA产生类关联规则的算法CBA—RG如下:

1FI={large1-ruleitems};2CARl=gemRules(‘);

3prCARl=pruneRules(CARl);

4for(k=2;R—l≠∥;^++)do5G=candidateGen(疋一1);

6foreachdata

case

d∈D

do

7Q=ruleSubset(q,d);

8foreachcandidate

c∈qdo

9c.condsupCount++;

10ifd.class=c.classthenc.rulesupCount++11end

12end13E=(c∈QIc.rulesupCount≥minsup);

14CAR女=genRules(E);15

prCAR^=pruneRules(CARI);16end17

CARs=L)kCAR^;

18prCARs=UIprCARI;

由上述的算法可以看出,在算法的每个循环中都要进行四个主要的操作。如在第k循环中,首先通过第南一1循环中的频繁项集疋一。来产生频繁候选k项集Ck,这一步主要是通过使用了candidateGen函数来实现。接着扫描数据库来更新C。中各个候选集的支持度计数,然后这些新的频繁项组成新的E。算

法使用genRules函数来产生规则CAR。。最后使用对这些CAR。

规则进行剪枝。

2.3建立分类器

为了在已经获得的规则上面建立一个最好的分类器,需要选择那些错误最少的规则。设R是所有已经产生的规则,D是

156

2006.10计算机工程与应用

万 

方数据训练数据。算法的基本目的就是从R中选择一些优先度比较高的规则来替代D。在这里优先度的定义为:给定两条规则,r.和‘,■>rJ(即■的优先度比l高)需满足下列条件:

(1)如果t的确信度比一的高,或

(2)两者的确信度相同,但是一的支持度比‘的大,或(3)两者的确信度和支持度相同,但r,产生的比ri早(也就是在规则的左手边r.有更少的属性);

我们建立的分类器的形式如下:

口1,1"2,…,r,default_class>,这里‘eR,如果b>a,则L>r6。default_class是默认的类。在对一条未知类别的案例进行分类时,第一条满足这个案例的规则即可以分类这个案例。如果没有规则满足。则将这个案例归为默认的类。

分类器的建立有三个步骤:

(1)对所有R中的规则根据关系按降序排列。这确保我们的分类器可以选到优先度最高的规则。

(2)对于每条规则r∈R,我们到D中去寻找可以被r替代(即它们满足规则r的左手边属性值)的案例,如果r至少可以正确分类,即可以替代,一个案例,它将是我们分类器的一条潜在的规则。对于那些可以被分类的案例将其从D中移出来。对于D中那些不能被规则r替代的案例.我们用default_class来标识。然后来计算由分类器和默认的类别号分类的错误的案例数。这里的default_class是指D中剩余案例中大部分案例所属

的那个类。

(3)将分类器中那些不能增加分类器准确率的规则抛弃,剩下的未被抛弃的规则和default_class一起组成我们的分类器。具体的算法参见[5]。

3改进的基本措施

由上述对CBA算法的描述我们可以看出.类关联规则的产生算法与Apriofi算法类似。与Apriori不同的是在算法过程中要对两项进行支持度的计算,即condset和ruleitem。这个主要是为了后面可以计算ruleitem的确信度。以前针对CBA算法的一些改进主要是集中在CBA—RG阶段.为了使数据库可以一次性的载入到内存中,对数据库进行划分,每部分采用单独的支持度计数。它对于数据库的划分和规则的产生采用不同的算法,选择效率最高的一个[61。

在类关联规则的挖掘过程中,由于采用了Apriori算法同,需要不断地产生候选集,虽然利用Apriori性质,可以对候选集进行缩减以达到提高挖掘效率的目的,仍然存在两个问题:(1)产生的候选集过多;(2)需要对数据库进行反复扫描,通过一定的模式匹配的方式对大量候选集进行检验。为了避免产生的候选集过多.以及提高挖掘的效率,我们提出了一个新的基于关

联规则分类的算法——NCBA。

为了发现分类规则,NCBA首先挖掘训练数据,通过支持度和置信度阀值来发现所有的频繁项集。这也是一个典型的频繁模式关联规则挖掘任务。为了使挖掘的效率更高,NCBA算法使用FP一树[81算法。FP一树的频繁模式生成方法比Apriori类的方法更快,特别是对于大数据集、低的支持度阀值、长模式来说效率更高。通过使用FP一树挖掘类关联规则来改进CBA算法的主要思想通过如下的例子来说明:

给定一个如表1所示的训练数据集r。假定设最小支持度阀值是2,确信度阀值是50%。我们首先对数据集r进行扫描

一次,然后找出那些支持度大于2的那些项,项集肚k,d∥k}

称为频繁项集。其它的支持度小于最小支持度的项不能在关联规则中起到作用。所以将被剪枝。

表l调练数据集

然后对F中的项,按照支持度计数的降序排列,排列的结果是F—list=a—d一户k。然后再扫描一次训练数据集来构建一棵FP一树(如图2所示)。先创建树的根结点,用Null表示。接着我们按照F—list中出现的项和项的顺序对训练数据集中的每个元组进行选取。例如:在第一个元组中,只有(a,,)出现在F—list中.将其选取出来,作为最左边的一个分枝插入到树中。类别标签放在路径的最后一个节点上。

在训练集中的元组将会在树中分享一个共同的前缀。例如,第二个元组的属性值(n,d;,)。这样在F—list中将会和第一个元组分享同一个前缀a。因此在FP一树中也同时分享最左边分枝的a的子路。所有相同属性值的节点作为一个队列从头节点开始连起来。

根据F—list.我们可以将类关联规则集划分为无重复的四个子集:(1)含有k的集;(2)含有厂但是不含有k的集;(3)含有d但不含有k和厂的集;(4)只含有a的集。

图2FP一树

图3合并节点k之后的FP-树

为了找到含有k的子集的规则,我们观察FP一树,遍历含有k指针的节点组成一个后一db数据库.我们可以发现危一db含有三个元组:(a,d,厂,k):C,(a,d,k):C,k:A,这就是所有含有k的元组。在训练集中找出所有含有的频繁模式的问题就简化为在詹一db数据库中挖掘频繁模式。

由上述可知.在||}一db中,a和d都是频繁的属性值,因为它们都大于或等于支持度的门槛值。又因为在|j}一db中,k在每一个元组中都出现,因此必定是频繁的。所以我们也不需要计算k的支持度。我们可以通过循环的构造FP一树和db数据库来挖掘db数据库中的类关联规则。

在七一db数据库中,a和d正好都是同时出现,因此nd是一个频繁模式。a和d是以的两个子集,与甜有相同的支持

度。基于类别标签的信息,我们可以产生三条规则:ⅡJ}一C,幽一

C,觎一C。它们三个的支持度皆为2、确信度皆为100%。

在搜寻到所有的含有k的规则之后.所有的k的节点都分

万 

方数据别和它们各自的父节点合并。也就是说在k结点中的类别标签将在其父节点的标注。缩减之后的树如图3所示。余下的规则的提取同上述的类似。

由此我们可以看出,在对树的挖掘过程中.将原有的发现较长频繁模式的问题转化为反复寻找较短的模式而后再连接其前缀的过程。因此和CBA中采用的Apriofi算法相比,不必重复扫描数据库。可以降低搜索成本,极大的提高效率。

由于FP一树在扫描数据库的过程中,需要将数据库一次性装入内存中来构建树。因此对机器的内存有一定的要求,如果数据库比较大的话,我们可以首先对数据库进行分割,然后再对每一个分割后的数据库用FP一树算法提取类关联规则。

4实验结果及分析

我们采用了某一地区的棉花病虫害数据为例测试算法的效果。本实验以Delphi6,0为开发环境,数据存储在access数据库中,即为分类的样本空间。部分数据如图4所示。

图4棉花病虫害数据

由图4可以看出,我们将前面四个属性:病斑颜色、病害部位、病害形状、病害特征作为condset集,最后的一个属性:病的种类作为类别标签y。然后我们对数据进行转化,将这些文本数据转化为布尔型数据,以方便规则的挖掘。接着选定min—得到的类关联规则建立分类器。我们使用样本中的90%的数据为训练数据。其余的为测试数据。图5即为得到的分类器中的类关联规则。

图5

训练样本为90%时得到的分类器中的类关联规则

我们分别使用了三组数据进行了测试,样本数分别为40、

000个。两种算法测试比较的结果如表2所示。

表2两种算法运行时间比较s

由实验结果可以看出,随着样本数目的增加,NCBA算法(下转203页)

计算机工程与应用2006.10

157

sup=15%,minconf=80%来进行类关联规则的挖掘,然后对挖掘的运行时间明显比CBA算法少,效率增加。随着数据库的不断增大,CBA算法运行效率低的瓶颈就暴露出来了。因此改进后

200和1

表l几种方法的检测结果比较

图像序号实有目标数目CA—CFAR结果G0一CFAR结果本文方法结果

117171517

214131414

323212023

(a)原始图象

(b)CA—CFAR检测结果

6结论

本文提出了一种在SAR图像中检测目标的方法。该方法采用基于weibull分布模型的CFAR检测技术,对背景区域分块,根据每个子块的统计参数和空间分布,确定子块类型,根据各子块类型不同,选择不同的参考单元确定阈值。同时根据目标灰度、方差特征剔除明显不可能为目标的像素,利用多数滤

(e)本文CFAR方法检测结果

(d)本文方法最终结果

波器和目标形状特征,进一步排除虚警。相比于CA—CFAR方法.本文方法保留了算法简单、同质区检测性能好的优点,同时.对存在杂波边缘或多目标干扰的情况,也能有很好的检测效果。实验证明本文方法检测性能好,自适应性强,适应于大多数SAR图像的目标检测。(收稿日期:2005年9月)

图5实验结果图像

检测结果中,CA—CFAR方法有2个虚警、2个漏警,本文方法有1个虚警,无漏警,且轮廓的完整性保持更好。可以看出,本文方法相比CA—CFAR方法,具有更好的检测效果,说明该方法是有效的。对检测结果进一步判别。虚警目标被滤除,得

到目标的ROI。

参考文献

1.Quoo

Pham,TimothyMBmsnan,Mark

Targetsin

SAR

JTSmith.MultistageAlgo-

表l给出了三种方法在其他几幅图像的检测结果,比较得出:CA—CFAR和GO—CFAR分别只对部分图像有较好的检测效果,本文方法对所有图像都有较好检测效果。在背景平稳区域,本文方法性能接近CA—CFAR;在杂波边缘,CA—CFAR虚警增多,而本文方法较好地抑制了虚警,检测性能接近G0一CFAR;在多目标区域,CA—CFAR由于目标间的相互干扰,检测出目标轮廓不完整甚至漏警,本文方法由于自动排除了干扰目标影响,比CA—CFAR和GO—CFAR具有更好的检测效果。在一幅图像中.杂波边缘和多目标情况经常可能同时存在,CSS0一CFAR或CSGO—CFAR方法只是单纯地选大或者选小,不能对图象灰度分布变化自适应,当图像复杂时难以有好的效果。本方法的最大优势在于结合了各种方法的优点,智能判定区域类型。在各种复杂环境下都具有较好的检测性能。

(上接157页)

rithmforDetectionof

Image

Data[j].SPIE,1997;3070

2.王世锦,孟健青.单元筛选后作最小选择的CFAR自适应检测器【J】.雷达与对抗.2004;(4)

3.贾承丽.计科峰,匡纲要等.利用GammaCFAR进行SAR图像目标检测[J】.系统工程与电子技术,2005;(1)

4.何友,关键,孟祥伟.雷达自动检测和CFAR处理方法综述忉.系统工程与电子技术,2001;23(1)

5.MichaelBased

Elect

on

ESmith.Pramod

Data

Varshney.Intelligent

Transactions

on

CFARProcessor

and

Variability[J】.IEEE

Aerospace

tonicMing

Systems,2000Wong,Chee

Hang

Chang,Weixian

International

Liu

et

6.Char

in

a1.CA—CFAR

on

weibull

Background[C].In:2nd

ConferenceMi—

crowave7.M

andMillimeterWave

TechnologyProceedings,2000

Skolnik.Radar

Handbook[M].2ndedn.,McGrawHill,l990

Databases[C].In:ProcoftheACMSIGMOD

on

SetsofItems

in

Large

的NCBA算法的实际应用性也较CBA有了很大的提高。

Internationalconference

Management

of

Data,Washington

C,

1993:207~216

结论

本文通过对基于关联规则的分类方法CBA的分析,指出

3.HanJW,KamberM.数据挖掘:概念与技术【M].北京:机械工业出版

社.200l

4.LentB,SwamiA,WidomJ.Clustering

the

13“International

Conference

on

association

rules[C].In:Procof

它的效率不足之处:它需要反复扫描数据库,而且会产生大量的候选集,通过一定的模式匹配方法对大量候选集进行检验。我们新的NCBA算法通过使用FP一树来提取类关联规则,由于FP一树算法比较简单.只需扫描一遍数据库,可以将较长的频繁模式转化为先寻找较短的模式而后再连接其前缀的过程。有效的降低了搜索成本。通过对算法的改进使运行效率有了很大的提高,并举例说明了获取类关联规则的具体过程。最后通过一个实际的例子说明两种算法的效果,证明了改进后算法的实用性和效率都有了很大的提高。(收稿日期:2005年11月)

Data

Engineering,Birmingham,

1997:220~2315.Liu

B,Hsu

W,MaY.IntegratingClassificationand

AssociationRule

on

Mining[C].In:Procofthe4thInternationalConference

Discovery

Knowledge

andData

Mining,NewYork,1998

K.Improving

an

6.LiuB.Ma

Y,Wong

AssociationRule

on

BasedClassi—Principles

tier[C].In:Procofthe4thEuropeanConference

Practice

ofR

and

KnowledgeDiscovery

in

Databases,Lyon,2000

Mining

on

7.Agrawal

2SrikantR.FastAlgorithmsfor

Association

Rules[C】.

In:Procofthe20thInternationalConference

VeryLargeDatabases.

参考文献

1.QuinlanJ—R.C4.5:Programs

for

Santiago,Chile,1994;9:487~499

8.Han

MachineLearning.California:Morgan

W.PeiJ,YinY.MiningFrequentPatternswithoutCandidate

Kaufmann,1993

2.Agrawal

R,ImielinskiT,Swami

A.MiningAssociationRulesbetween

Generation[C].In:Procof19“ACMSIGMODInternationalConference

on

ManagementofData,Dallas,2000:207-216

计算机工程与应用2006.10

203

万方数据 

掣业业业业业簟簟业躲鬻・数据库与信息处理・弗

凑习降习降习ls习,s习l}铆s习s习降赤

一种基于关联规则分类的改进方法

查金水宋良图刘现平

(中科院合肥智能机械研究所,合肥230031)

E-mail:chajinshui@126.corn

要论文首先对一种基于关联规则分类的算法做出了分析。然后对算法中的类关联规则的提取方法进行了改进,得

到了一种新的基于关联规则分类的算法。并结合棉花病虫害数据运行的结果对两种算法的运行效率和实用性进行了比较。关键词

关联规则

类关联规则FP-树分类

文献标识码A

中图分类号TPl81

文章编号1002—8331一(2006)10—0155—03

AnImproved

Method

Based

on

ClassificationofAssociationRules

LiuXianping

ZhaJinshui

SongLiangtu

(InstituteofIntelligentMachines.ChineseAcademyofSciences。Hefei230031)

Abstract:Fromextractionin

this

concrete

analysis

oftheclassified

algorithm

based

on

associationrule,weclassificationbetween

the

make

forimprovementof

methodin

classassociationcomparison

rulesand

newalgorithmbasedpracticability

is

on

ofassociation

two

rulesis

acquired

to

paper.Then

ofefficiency

and

made

algorithmsaccording

the

operationresultof

cottondiseasedata.

Keywords:associationrule,classassociationrules,Frequent-patterntree,classification

引言

对于一些大的数据库来说,建立一个精确而又有效的分类

(2)产生所有的类关联规则。

(3)基于已经产生的类关联规则建立一个分类器。(4)利用分类器对未知类别数据进行分类。

如图1所示,我们首先假设数据集是一个正常的关系表。这个表中包含了带有£个不同属性值的Ⅳ个案例,这,v个案例已经被划分为q个已知的类。属性值可以是离散的也可以是连续的。对于一个连续的属性值,我们首先将其值的区间离散化成许多小区间。然后再将这些小的区间映射到一系列连续的整型值。

器是数据挖掘和机器学习的一个重要任务——给定一个带有

类别标签的测试数据集,用它来建立一个分类器,然后预测那些未知类别的数据对象。现在的许多分类方法都是基于启发式的搜索技术,比如决策数算法[1】、Bayes网络和一些统计学的方法。还有一些在商业化的数据挖掘领域内很少用到的方法,诸如k一最近邻分类、基于案例的推理、遗传算法等。

分类规则的挖掘和关联规则脚的挖掘是两种重要的数据挖掘技术。分类规则挖掘的目标就是找出数据库中的一些规则,组成一个精确的分类器。而关联规则的挖掘就是找出数据库中满足最小支持度与最小确信度约束的规则。对关联规则来说,它的目标是没有预先确定的。而对分类规则的挖掘来说,它有一个预先确定的唯一的目标,即类别标签。分类规则和关联规则的挖掘在实际中都是不可缺少的。因此,数据挖掘技术也已将关联规则挖掘用于分类问题[31。将两种挖掘技术结合起来对使用者来说既节省时间又方便很多。这两种技术的结合可以产生一种新的分类方法:基于关联规则的分类。在关联规则分类中,规则的右侧固定为类别的属性。我们将这些规则称为类关

联规则(classassociationrules,CARs)[41。

鲞墨鍪塑查,主磊丽网查登塑型苎塑竺差

离散化

产生类关联规则

选择

测试结果分析r

分类

、输入测试数据

建立分类器

优化分类器

●r

_--●

图l基于关联规则分类的流程图

设D为事务集.,是D中所有项目的集合、l,是类别标签的集合。如果X∈d,我们称一个数据项d∈D包含X∈,,,是数

据项D的子集。一个类关联规则(CAR)就是下面的形式X—

y,其中X∈,、Y∈Y。它的支持度与确信度的定义如下:规则R:

数据挖掘中类关联规则的挖掘主要包括下面几个步骤(如

图1所示):

X—y的支持度sup是指D中有s%的案例包含有带有类别标

签y的项目X。sup与D中的含有X的案例数之比称为确信度

(1)如果是连续的属性值,需要将其离散化。

基金项目:国家863高技术研究发展计划资助项目(编号:2003AAl18070)

作者简介:查金水(1978一),男,硕士研究生,主要研究方向:数据挖掘,复杂系统。宋良图(1963一),男,副研究员,主要研究方向:智能化农业信息系

统。刘现平(1979一),男,硕士研究生,主要研究方向:图像检索系统,图形与图像处理。

计算机工程与应用2006.10

155

万方数据 

confo我们的目标就是根据使用者给定的最小支持度minsup和最小置信度minconf阀值来产生所有的CARs集,然后根据产生的CARs建立一个分类器。

CBA算法的描述

CBA算法阁包含两个步骤:类关联规则的产生和分类器的

建立。2.1

基本概念

产生规则的首要条件就是要找出所有大于最低支持度阀

值的规则。一个规则项ruleitem的形式如下:<condset,y>。这里的condset是一项集.YEY是一个类别标签。Condset的支持度(condsupCount)是指D中包含condset的数。规则项ruleitem的支持度(rulesupCount)是指D中类别标签是Y的condset的数。每一个ruleitem可以表示一条规则:condset---*y。它的支持度是(rulesupCount/IDI)4100%,这里lDI是数据集的大小。它的确信度是(rulesupCount/condsupCount)4100%。

对于有同样condset的项集来说。确信度最高的将被选为可能的规则PR(possiblerules)来代表这个项集。如果有超过一个的项集具有相同的最高的确信度,我们将随机的选择一个项集。如果一条规则的确信度大于最低确信度阀值,我们说这条规则是精确的。而类关联规则集就是包含那些既频繁又精确的

所有的PR。

2.2产生类关联规则

CBA产生类关联规则的算法CBA—RG如下:

1FI={large1-ruleitems};2CARl=gemRules(‘);

3prCARl=pruneRules(CARl);

4for(k=2;R—l≠∥;^++)do5G=candidateGen(疋一1);

6foreachdata

case

d∈D

do

7Q=ruleSubset(q,d);

8foreachcandidate

c∈qdo

9c.condsupCount++;

10ifd.class=c.classthenc.rulesupCount++11end

12end13E=(c∈QIc.rulesupCount≥minsup);

14CAR女=genRules(E);15

prCAR^=pruneRules(CARI);16end17

CARs=L)kCAR^;

18prCARs=UIprCARI;

由上述的算法可以看出,在算法的每个循环中都要进行四个主要的操作。如在第k循环中,首先通过第南一1循环中的频繁项集疋一。来产生频繁候选k项集Ck,这一步主要是通过使用了candidateGen函数来实现。接着扫描数据库来更新C。中各个候选集的支持度计数,然后这些新的频繁项组成新的E。算

法使用genRules函数来产生规则CAR。。最后使用对这些CAR。

规则进行剪枝。

2.3建立分类器

为了在已经获得的规则上面建立一个最好的分类器,需要选择那些错误最少的规则。设R是所有已经产生的规则,D是

156

2006.10计算机工程与应用

万 

方数据训练数据。算法的基本目的就是从R中选择一些优先度比较高的规则来替代D。在这里优先度的定义为:给定两条规则,r.和‘,■>rJ(即■的优先度比l高)需满足下列条件:

(1)如果t的确信度比一的高,或

(2)两者的确信度相同,但是一的支持度比‘的大,或(3)两者的确信度和支持度相同,但r,产生的比ri早(也就是在规则的左手边r.有更少的属性);

我们建立的分类器的形式如下:

口1,1"2,…,r,default_class>,这里‘eR,如果b>a,则L>r6。default_class是默认的类。在对一条未知类别的案例进行分类时,第一条满足这个案例的规则即可以分类这个案例。如果没有规则满足。则将这个案例归为默认的类。

分类器的建立有三个步骤:

(1)对所有R中的规则根据关系按降序排列。这确保我们的分类器可以选到优先度最高的规则。

(2)对于每条规则r∈R,我们到D中去寻找可以被r替代(即它们满足规则r的左手边属性值)的案例,如果r至少可以正确分类,即可以替代,一个案例,它将是我们分类器的一条潜在的规则。对于那些可以被分类的案例将其从D中移出来。对于D中那些不能被规则r替代的案例.我们用default_class来标识。然后来计算由分类器和默认的类别号分类的错误的案例数。这里的default_class是指D中剩余案例中大部分案例所属

的那个类。

(3)将分类器中那些不能增加分类器准确率的规则抛弃,剩下的未被抛弃的规则和default_class一起组成我们的分类器。具体的算法参见[5]。

3改进的基本措施

由上述对CBA算法的描述我们可以看出.类关联规则的产生算法与Apriofi算法类似。与Apriori不同的是在算法过程中要对两项进行支持度的计算,即condset和ruleitem。这个主要是为了后面可以计算ruleitem的确信度。以前针对CBA算法的一些改进主要是集中在CBA—RG阶段.为了使数据库可以一次性的载入到内存中,对数据库进行划分,每部分采用单独的支持度计数。它对于数据库的划分和规则的产生采用不同的算法,选择效率最高的一个[61。

在类关联规则的挖掘过程中,由于采用了Apriori算法同,需要不断地产生候选集,虽然利用Apriori性质,可以对候选集进行缩减以达到提高挖掘效率的目的,仍然存在两个问题:(1)产生的候选集过多;(2)需要对数据库进行反复扫描,通过一定的模式匹配的方式对大量候选集进行检验。为了避免产生的候选集过多.以及提高挖掘的效率,我们提出了一个新的基于关

联规则分类的算法——NCBA。

为了发现分类规则,NCBA首先挖掘训练数据,通过支持度和置信度阀值来发现所有的频繁项集。这也是一个典型的频繁模式关联规则挖掘任务。为了使挖掘的效率更高,NCBA算法使用FP一树[81算法。FP一树的频繁模式生成方法比Apriori类的方法更快,特别是对于大数据集、低的支持度阀值、长模式来说效率更高。通过使用FP一树挖掘类关联规则来改进CBA算法的主要思想通过如下的例子来说明:

给定一个如表1所示的训练数据集r。假定设最小支持度阀值是2,确信度阀值是50%。我们首先对数据集r进行扫描

一次,然后找出那些支持度大于2的那些项,项集肚k,d∥k}

称为频繁项集。其它的支持度小于最小支持度的项不能在关联规则中起到作用。所以将被剪枝。

表l调练数据集

然后对F中的项,按照支持度计数的降序排列,排列的结果是F—list=a—d一户k。然后再扫描一次训练数据集来构建一棵FP一树(如图2所示)。先创建树的根结点,用Null表示。接着我们按照F—list中出现的项和项的顺序对训练数据集中的每个元组进行选取。例如:在第一个元组中,只有(a,,)出现在F—list中.将其选取出来,作为最左边的一个分枝插入到树中。类别标签放在路径的最后一个节点上。

在训练集中的元组将会在树中分享一个共同的前缀。例如,第二个元组的属性值(n,d;,)。这样在F—list中将会和第一个元组分享同一个前缀a。因此在FP一树中也同时分享最左边分枝的a的子路。所有相同属性值的节点作为一个队列从头节点开始连起来。

根据F—list.我们可以将类关联规则集划分为无重复的四个子集:(1)含有k的集;(2)含有厂但是不含有k的集;(3)含有d但不含有k和厂的集;(4)只含有a的集。

图2FP一树

图3合并节点k之后的FP-树

为了找到含有k的子集的规则,我们观察FP一树,遍历含有k指针的节点组成一个后一db数据库.我们可以发现危一db含有三个元组:(a,d,厂,k):C,(a,d,k):C,k:A,这就是所有含有k的元组。在训练集中找出所有含有的频繁模式的问题就简化为在詹一db数据库中挖掘频繁模式。

由上述可知.在||}一db中,a和d都是频繁的属性值,因为它们都大于或等于支持度的门槛值。又因为在|j}一db中,k在每一个元组中都出现,因此必定是频繁的。所以我们也不需要计算k的支持度。我们可以通过循环的构造FP一树和db数据库来挖掘db数据库中的类关联规则。

在七一db数据库中,a和d正好都是同时出现,因此nd是一个频繁模式。a和d是以的两个子集,与甜有相同的支持

度。基于类别标签的信息,我们可以产生三条规则:ⅡJ}一C,幽一

C,觎一C。它们三个的支持度皆为2、确信度皆为100%。

在搜寻到所有的含有k的规则之后.所有的k的节点都分

万 

方数据别和它们各自的父节点合并。也就是说在k结点中的类别标签将在其父节点的标注。缩减之后的树如图3所示。余下的规则的提取同上述的类似。

由此我们可以看出,在对树的挖掘过程中.将原有的发现较长频繁模式的问题转化为反复寻找较短的模式而后再连接其前缀的过程。因此和CBA中采用的Apriofi算法相比,不必重复扫描数据库。可以降低搜索成本,极大的提高效率。

由于FP一树在扫描数据库的过程中,需要将数据库一次性装入内存中来构建树。因此对机器的内存有一定的要求,如果数据库比较大的话,我们可以首先对数据库进行分割,然后再对每一个分割后的数据库用FP一树算法提取类关联规则。

4实验结果及分析

我们采用了某一地区的棉花病虫害数据为例测试算法的效果。本实验以Delphi6,0为开发环境,数据存储在access数据库中,即为分类的样本空间。部分数据如图4所示。

图4棉花病虫害数据

由图4可以看出,我们将前面四个属性:病斑颜色、病害部位、病害形状、病害特征作为condset集,最后的一个属性:病的种类作为类别标签y。然后我们对数据进行转化,将这些文本数据转化为布尔型数据,以方便规则的挖掘。接着选定min—得到的类关联规则建立分类器。我们使用样本中的90%的数据为训练数据。其余的为测试数据。图5即为得到的分类器中的类关联规则。

图5

训练样本为90%时得到的分类器中的类关联规则

我们分别使用了三组数据进行了测试,样本数分别为40、

000个。两种算法测试比较的结果如表2所示。

表2两种算法运行时间比较s

由实验结果可以看出,随着样本数目的增加,NCBA算法(下转203页)

计算机工程与应用2006.10

157

sup=15%,minconf=80%来进行类关联规则的挖掘,然后对挖掘的运行时间明显比CBA算法少,效率增加。随着数据库的不断增大,CBA算法运行效率低的瓶颈就暴露出来了。因此改进后

200和1

表l几种方法的检测结果比较

图像序号实有目标数目CA—CFAR结果G0一CFAR结果本文方法结果

117171517

214131414

323212023

(a)原始图象

(b)CA—CFAR检测结果

6结论

本文提出了一种在SAR图像中检测目标的方法。该方法采用基于weibull分布模型的CFAR检测技术,对背景区域分块,根据每个子块的统计参数和空间分布,确定子块类型,根据各子块类型不同,选择不同的参考单元确定阈值。同时根据目标灰度、方差特征剔除明显不可能为目标的像素,利用多数滤

(e)本文CFAR方法检测结果

(d)本文方法最终结果

波器和目标形状特征,进一步排除虚警。相比于CA—CFAR方法.本文方法保留了算法简单、同质区检测性能好的优点,同时.对存在杂波边缘或多目标干扰的情况,也能有很好的检测效果。实验证明本文方法检测性能好,自适应性强,适应于大多数SAR图像的目标检测。(收稿日期:2005年9月)

图5实验结果图像

检测结果中,CA—CFAR方法有2个虚警、2个漏警,本文方法有1个虚警,无漏警,且轮廓的完整性保持更好。可以看出,本文方法相比CA—CFAR方法,具有更好的检测效果,说明该方法是有效的。对检测结果进一步判别。虚警目标被滤除,得

到目标的ROI。

参考文献

1.Quoo

Pham,TimothyMBmsnan,Mark

Targetsin

SAR

JTSmith.MultistageAlgo-

表l给出了三种方法在其他几幅图像的检测结果,比较得出:CA—CFAR和GO—CFAR分别只对部分图像有较好的检测效果,本文方法对所有图像都有较好检测效果。在背景平稳区域,本文方法性能接近CA—CFAR;在杂波边缘,CA—CFAR虚警增多,而本文方法较好地抑制了虚警,检测性能接近G0一CFAR;在多目标区域,CA—CFAR由于目标间的相互干扰,检测出目标轮廓不完整甚至漏警,本文方法由于自动排除了干扰目标影响,比CA—CFAR和GO—CFAR具有更好的检测效果。在一幅图像中.杂波边缘和多目标情况经常可能同时存在,CSS0一CFAR或CSGO—CFAR方法只是单纯地选大或者选小,不能对图象灰度分布变化自适应,当图像复杂时难以有好的效果。本方法的最大优势在于结合了各种方法的优点,智能判定区域类型。在各种复杂环境下都具有较好的检测性能。

(上接157页)

rithmforDetectionof

Image

Data[j].SPIE,1997;3070

2.王世锦,孟健青.单元筛选后作最小选择的CFAR自适应检测器【J】.雷达与对抗.2004;(4)

3.贾承丽.计科峰,匡纲要等.利用GammaCFAR进行SAR图像目标检测[J】.系统工程与电子技术,2005;(1)

4.何友,关键,孟祥伟.雷达自动检测和CFAR处理方法综述忉.系统工程与电子技术,2001;23(1)

5.MichaelBased

Elect

on

ESmith.Pramod

Data

Varshney.Intelligent

Transactions

on

CFARProcessor

and

Variability[J】.IEEE

Aerospace

tonicMing

Systems,2000Wong,Chee

Hang

Chang,Weixian

International

Liu

et

6.Char

in

a1.CA—CFAR

on

weibull

Background[C].In:2nd

ConferenceMi—

crowave7.M

andMillimeterWave

TechnologyProceedings,2000

Skolnik.Radar

Handbook[M].2ndedn.,McGrawHill,l990

Databases[C].In:ProcoftheACMSIGMOD

on

SetsofItems

in

Large

的NCBA算法的实际应用性也较CBA有了很大的提高。

Internationalconference

Management

of

Data,Washington

C,

1993:207~216

结论

本文通过对基于关联规则的分类方法CBA的分析,指出

3.HanJW,KamberM.数据挖掘:概念与技术【M].北京:机械工业出版

社.200l

4.LentB,SwamiA,WidomJ.Clustering

the

13“International

Conference

on

association

rules[C].In:Procof

它的效率不足之处:它需要反复扫描数据库,而且会产生大量的候选集,通过一定的模式匹配方法对大量候选集进行检验。我们新的NCBA算法通过使用FP一树来提取类关联规则,由于FP一树算法比较简单.只需扫描一遍数据库,可以将较长的频繁模式转化为先寻找较短的模式而后再连接其前缀的过程。有效的降低了搜索成本。通过对算法的改进使运行效率有了很大的提高,并举例说明了获取类关联规则的具体过程。最后通过一个实际的例子说明两种算法的效果,证明了改进后算法的实用性和效率都有了很大的提高。(收稿日期:2005年11月)

Data

Engineering,Birmingham,

1997:220~2315.Liu

B,Hsu

W,MaY.IntegratingClassificationand

AssociationRule

on

Mining[C].In:Procofthe4thInternationalConference

Discovery

Knowledge

andData

Mining,NewYork,1998

K.Improving

an

6.LiuB.Ma

Y,Wong

AssociationRule

on

BasedClassi—Principles

tier[C].In:Procofthe4thEuropeanConference

Practice

ofR

and

KnowledgeDiscovery

in

Databases,Lyon,2000

Mining

on

7.Agrawal

2SrikantR.FastAlgorithmsfor

Association

Rules[C】.

In:Procofthe20thInternationalConference

VeryLargeDatabases.

参考文献

1.QuinlanJ—R.C4.5:Programs

for

Santiago,Chile,1994;9:487~499

8.Han

MachineLearning.California:Morgan

W.PeiJ,YinY.MiningFrequentPatternswithoutCandidate

Kaufmann,1993

2.Agrawal

R,ImielinskiT,Swami

A.MiningAssociationRulesbetween

Generation[C].In:Procof19“ACMSIGMODInternationalConference

on

ManagementofData,Dallas,2000:207-216

计算机工程与应用2006.10

203

万方数据 


相关文章

  • 数据挖掘在中国的现状和发展研究
  • 管 理 工 程 学 报 Vol . 18, No . 3 Journal of Industrial Engineering Engineering Management 2004年第3期 数据挖掘在中国的现状和发展研究 李菁菁, 邵培基, ...查看


  • 数据挖掘算法研究与综述
  • 第26卷第9期 V01.26 No.9 计算机工程与设计 ComputerEngineeringandDesign 2005年9月 Sept.2005 数据挖掘算法研究与综述 邹志文, 朱金伟 (江苏大学计算机学院,江苏镇江212013) ...查看


  • 基于关联分析的网络数据可视化技术研究综述
  • 第42卷第6A期 2015年6月 计算机科学 Computer Science V01.42No.6A June2015 '基于关联分析的网络数据可视化技术研究综述 孙秋年饶元 (西安交通大学软件学院 摘要 西安710054) 当今万维网. ...查看


  • 基于云计算的数据挖掘的信息检索
  • 2012-2013学年度第 二 学期 信息检索与利用专题检索报告 课题: 基于云计算的数据挖掘 学号 手机 2013年 6月23日 一.课题分析 云计算(cloud computing)是基于的相关服务的增加.使用和交付模式,通常涉及通过互 ...查看


  • 在职研究生学位论文之数据挖掘技术在电子商务中的应用
  • 在职研究生学位论文之数据挖掘技术在电子商务中的应用 [摘要]本文论述数据挖掘技术在电子商务中的应用,提出选择数据挖掘技术的两个重要依据,以便开发出有效.实用的数据挖掘系统. [关键词]数据挖掘 电子商务 1.引言 目前,如何对网络上大量的信 ...查看


  • 2015数据挖掘导论期末论文题目
  • <数据挖掘导论>期末设计题目 说明: (1)每个学生只选一个题目, 两个同学的题目不要重复 (2)从网上下载或相互抄袭的一律不及格 (3)期末设计 封面格式: 正文包括:引言(或课题意义). 相关知识(所做题目涉及的文献综述). ...查看


  • 分类算法总结
  • 分类算法 数据挖掘中有很多领域,分类就是其中之一,什么是分类, 分类就是把一些新得数据项映射到给定类别的中的某一个类别,比如说当我们发表一篇文章的时候,就可以自动的把这篇文章划分到某一个文章类别,一般的过程是根据样本数据利用一定的分类算法得 ...查看


  • 聚类分析.数据挖掘.关联规则这几个概念的关系
  • 聚类分析和关联规则属于数据挖掘这个大概念中的两类挖掘问题, 聚类分析是无监督的发现数据间的聚簇效应. 关联规则是从统计上发现数据间的潜在联系. 细分就是 聚类分析与关联规则是数据挖掘中的核心技术: 从统计学的观点看,聚类分析是通过数据建模简 ...查看


  • 基于结构化属性集的规则学习
  • 第30卷第8期 2010年8月 计算机应用 JournalofComputerApplications V01.30No.8 Aug.2010 文章编号:1001-9081(2010)08-2010-03 基于结构化属性集的规则学习 时百胜 ...查看


热门内容