数据挖掘关联技术浅析

时间:2022-09-20 01:50:20

数据挖掘关联技术浅析

数据挖掘(Data Mining)是一个处理过程,它利用一种或多种计算机技术,从数据库的数据中自动分析并提取知识。数据挖掘的目的是确定数据的趋势和模式。

关联技术用于发现数据库中属性之间的有趣联系。和传统的产生式规则不同,关联规则可以有一个或多个输出属性。同时,一个规则的输出属性可以是另一规则的输入属性。关联规则是用于购物篮分析的常用技术,是因为可以找寻潜在的令人感兴趣的所有的产品组合。由此,有限数目的属性可能生成上百条关联规则。

Income range($) Magazine promotion Watch promotion Life insurance promotion Credit card insurance sex age

40-50K yes no no no male 45

30-40K yes yes yes no female 40

40-50K no no no no male 42

30-40K yes yes yes yes male 43

50-60K yes no yes no female 28

20-30K no no no no female 55

30-40K yes no yes yes male 35

20-30K no yes no no male 27

30-40K yes no no no female 43

30-40K yes yes yes no female 41

40-50K no yes yes no male 43

20-30K no yes yes no female 29

50-60K no yes yes no female 39

40-50K yes yes no no male 55

20-30K no no yes yes female 19

我们将Agrawal等人描述的apriori关联规则算法应用到上表数据中。该算法检查了项目篮,并为那些包含项目最少的篮子生成规则。Apriori算法不处理数值型数据。因此,在应用该算法之前,我们将属性年龄转化为离散的分类值:超过15,超过20,超过30,超过40,和超过50。例如,age=over40是年龄在40和49岁(包含40和49)之间。我们将属性选项限制为income range,credit card insurance,sex和age。这里是通过表的数据应用apriori算法所产生的3条关联规则:

(1) IF sex=female & age=over40 & credit card insurance=NO THEN life=insurance promotion=YES

(2) IF sex=male & age=over40 & credit card insurance=NO THEN life=insurance promotion=NO

(3) IF sex=female & age=over40 THEN credit card insurance=NO & life=insurance promotion=YES

3条规则的准确度都达到100%并且正确的覆盖了所有数据实例的20%。对于规则3,20%的覆盖率告诉我们,每5个人是年龄超过40的女性,她没有信用卡保险,且她们都是通过寿险促销活动获得寿险的。注意,规则3中的信用卡保险和寿险促销都是输出属性。

关联规则存在的问题是,对于潜在有趣的规则,我们可能发现某个规则的值很小。

在关联规则系统中,规则本身是“如果条件怎么样,怎么样,怎么样,那么结果或情况就怎么样”的简单方式。可以表示为“A=>B”关联规则,它包括两2部分:左部A称为前件,又部B称为后件。前件可以包括一个或多个条件,在某个给定的正确率中,要使后件为真,前件中的所有条件必须同时为真。后件一般只包含一种情况,而不是多种情况。

例如,购买计算机有购买财务软件趋向的关联规则,以及年龄在30至40岁之间并且年收入早42000元至50000元之间的客户购买高清晰度彩电电视机趋向的关联规则可以分别表示为:

Buys(x,“computer”)=>buys(x,“financial_management_software”) (11.1)

Age(“30…60”)∧income(“42000…50000”)=>buys(x,“high_resolution_TV”)(11.2)

其中x为表示客户的变量。

关联规则在实际应用中根据值类型,数据维,层次的不同,可以分成各种类型的规则。

根据规则中所处理的值类型可以分部成布尔关联规则和量化关联规则两种。例如,上述的关联(11.1)就是布尔关联规则,而关联规则(11.2)是量化规则,其量化属性值就离散值。

如果规则中的项或属性只涉及到一个维,那就是单维规则。例如关联规则(11.1)只涉及buys维。而关联规则(11.2)涉及到三个维age,income和buys数据维,因此是多维关联。

如果规则集涉及不同的抽象层次,那么关联规则集就是多层次关联规则;反之就是单层关联规则。例如,规则(11.1)和(11.2)都是单层规则。而关联规则集

Age(“30…40”)=>buys(x,“IBM computer”) (11.3)

Age(“30…40”)=>buys(x,“computer”) (11.4)

涉及的购买商品有较低抽象层次“IBM computer”和较高抽象层次的“computer”。因此,规则集(11.3)和(11.4)是多层关联规则。

关联规则在实际应用中用SQL语言就可以很好的处理,例如对于关联规则(11.2)可以用以下的SQL查询语句完成。

Select Cust.name, p.item_name

From Purchases, P

Group by Cust.ID

Having (Cust.age>=30.and.Cust.age=42000 and Cust.income

关联规则的应用必须有应用目标,在实际应用中可以以前件为目标,以后件为目标,以准确性为目标,以覆盖率为目标或者以“兴趣度”为目标。

以前件为目标的关联规则是将前件等于某值的所有规则收集起来显示给用户。例如:一个五金店可能需要前件为钉子,螺栓或螺钉的所有规则,以了解对这些低利润的商品打折是否能够促进其他高利润商品的销售。

以后件为目标的关联规则是查找后件等于某值的所有规则,用来了解什么因素与后件有关或对后件有什么影响。例如,得到后件为“咖啡”的所有标准对于咖啡的销售就十分重要,可以从中了解哪些商品的销售会导致咖啡销售的增加。咖啡店就可以将这些商品放到咖啡附近,以同时提高两者的销售额。或者,咖啡厂商可以根据这个准则决定下次把他们的优惠卷放在哪些杂志上。

以正确率为目标的关联规则,主要是以正确率表示前件为真时,后件为真的可能性。正确率高表示规则比较可靠。正确率有时也称为置信度,对于“A=>B”关联规则,其置信度或正确率可以定义为:

置信度(A=>B)=包含A和B的元组数/包含A的元组树(11.5)

有时,对用户来说最重要的是规则的正确率。正确率达到80%或90%以上的规则,表明发现的关系是很强的。即使它们对数据库的覆盖率较低,出现的次数有限,只要抓住这些规则。成功的可能性就比较大。

以覆盖率为目标的关联规则表示数据库中适用于规则的记录数量。其覆盖率可以定义为:

覆盖率(A=>B)=包含A和B的元组数/元组总数(11.6)

覆盖率高表示规则经常被使用,由取样技术或数据库性质得到某种现象的可能性也比较大。有时,用户想知道哪些是最普通的规则或哪些规则最容易应用。将规则按覆盖率排序,用户就能很快知道哪些情况是数据库中经常出现的。

以“兴趣度”为目标的关联规则是评价人们使用关联规则以后,对所产生规则的感兴趣程度,它于正确率和覆盖率有关。如果覆盖率一定时,兴趣度随着正确率的增大而增大。在正确率一定时,兴趣度随着覆盖率的增大而增大。可以采用各种方式将规则按某种兴趣排序,就能在覆盖率和正确率的评价目标选择中做出平衡。

上一篇:北斗卫星定位导航系统态势与发展简述 下一篇:我国商业银行个人理财业务的发展思路