摘 要
本次论文作为数据仓库的结课论文,主要总结了课堂上学到的有关关联挖掘定义和属性以及分类等理论知识;并根据李建老师提供的Northwind数据(这是一系列有关商品销售情况的数据),建立星型模型,并将数据进行了多维形式的数据组织。在此基础上,进行利用关联挖掘技术挖掘不同类型的商品在不同国家、地区和城市的销量,与商品的单价和折扣之间的关联关系,并展示了部分主要操作步骤的截图。
1相关理论
1.1关联规则的定义及属性
在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Lmielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。
设R= { I1,I2 ……Im} 是一组物品集,W 是一组事务集。W 中的每个事务T 是一组物品,T∈R。假设有一个物品集A,一个事务T,如果A∈T,则称事务T 支持物品集A。关联规则是如下形式的一种蕴含A→B,其中A、B 是两组物品,A∈I,B∈I,且A∩B=∅。一般用四个参数来描述一个关联规则的属性:
1.可信度
设W 中支持物品集A 的事务中,有c %的事务同时也支持物品集B,c %称为关联规则A→B 的可信度。简单地说,可信度就是指在出现了物品集A 的事务T 中,物品集B 也同时出现的概率有多大。
2.支持度
设W 中有s %的事务同时支持物品集A 和B,s %称为关联规则A→B 的支持度。支持度描述了A 和B 这两个物品集的并集C 在所有的事务中出现的概率有多大。
3.期望可信度
设W 中有e %的事务支持物品集B,e %称为关联规则A→B 的期望可信度度。期望可信度描述了在没有任何条件影响时,物品集B 在所有事务中出现的概率有多大。
4.作用度
作用度是可信度与期望可信度的比值。作用度描述物品集A 的出现对物品集B 的出现有多大的影响。因为物品集B 在所有事务中出现的概率是期望可信度;而物品集B 在有物品集A 出现的事务中出现的概率是可信度,通过可信度对期望可信度的比值反映了在加入“物品集A 出现”的这个条件后,物品集B 的出现概率发生了多大的变化。
可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。
期望可信度描述了在没有物品集A 的作用下,物品集B 本身的支持度;作用度描述了物品集A 对物品集B 的影响力的大小。作用度越大,说明物品集B 受物品集A 的影响越大。一般情况,有用的关联规则的作用度都应该大于1,只有关联规则的可信度大于期望可信度,才说明A 的出现对B 的出现有促进作用,也说明了它们之间某种程度的相关性,如果作用度不大于1,则此关联规则也就没有意义了。
1.2关联规则的分类
按照不同情况,关联规则可以进行分类如下:
1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。
2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。
3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。
2关联规则挖掘在商品销售信息中的应用
2.1建立星型模型
根据分析,确定数据仓库NorthwindDW_New的主题域。创建数据仓库NorthwindDW_New,并创建事实表Sales Table、顾客维表Customer、员工维表Employee、产品维表Product、时间维表Time等。
表2-1 事实表Sales Table
字段名称 |
数据类型 |
功能描述 |
OrderID |
Int |
产品编号 |
ProductID |
Int |
产品编号 |
EmployeeID |
Int |
员工编号 |
CustomerID |
nvarchar |
顾客编号 |
TimeID |
datetime |
订购时间 |
Quantity |
smallint |
订购数量 |
UnitPrice |
money |
单价 |
Discount |
real |
折扣 |
Total |
money |
销售总额 |
主键字段:ProductID、EmployeeID、CustomerID、OrderDate |
表2-2 产品维表Product
字段名称 |
数据类型 |
功能描述 |
ProductID |
Int |
产品编号 |
ProductName |
nvarchar |
产品名称 |
CategoryName |
nvarchar |
产品类型名称 |
主键字段:ProductID |
表2-3 员工维表Employee
字段名称 |
数据类型 |
功能描述 |
EmployeeID |
Int |
员工编号 |
LastName |
nvarchar |
员工姓氏 |
FirstName |
nvarchar |
员工名字 |
主键字段:EmployeeID |
表2-4 顾客维表Customer
字段名称 |
数据类型 |
功能描述 |
CustomerID |
nvarchar |
顾客编号 |
ContactName |
nvarchar |
顾客姓名 |
Country |
nvarchar |
国家 |
Region |
nvarchar |
地区 |
City |
nvarchar |
城市 |
主键字段:CustomerID |
表2-5 时间维表Time
字段名称 |
数据类型 |
功能描述 |
OrderDate |
datetime |
订购时间 |
Year |
Int |
年 |
Month |
Int |
月 |
主键字段:OrderDate |
图2.1 SQLserver中构建的星型模型
2.2多维数据组织与OLAP
步骤一:新建一个Analysis Services 的项目NorthwindDW_New_AS。
步骤二:在项目NorthwindDW_New_AS下,新建数据源Northwind DW New.ds和数据源视图Northwind DW New.dsv,在视图源视图的基础之上建立各表之间的关系。
步骤三:先建立各维表并设计其中的层次结构,然后创建多维数据集Northwind DW New.cube。
步骤四:在本地服务器上部署NorthwindDW_New_AS。
步骤五:在创建成功的多维数据库上,查询各员工在各时间点售出的商品数量和总销售金额。
将上面的数据根据年来进行切分,结果如下,
将上面表中结果的行和列做旋转变换,结果如下,
钻取各国家-各地区-各城市-各员工的销售量,结果如下,
2.3关联数据挖掘
本文旨在从多维数据集中挖掘不同类型的商品在不同国家、地区和城市的销量,与商品的单价和折扣之间的关联关系。下面是挖掘过程的部分截图。
2.3结论
由图可以看出,不同类型的商品在不同国家、地区和城市的销量,与商品的单价和折扣之间的存在着紧密的关联关系。就同一个城市而言,商品销售量与折扣(值)存在明显的负相关,即折扣(值)越大,销量越小;不同地区同一商品相比,销量的大小受单价的影响相对较小。这也反应出,人们的一个普遍的心理状态,就是大多数人更为在乎商品的折扣,反而不是很关注商品价格本身,打了很大折扣的商品更加能够吸引顾客。
3总结
关联挖掘是一种重要的数据挖掘手段,通过数据仓库的课堂学习,我们了解了很多关于数据仓库以及关联挖掘的很多理论知识及挖掘操作步骤。但是,在实际的应用中,我们可能面临更为复杂的问题和需求,这就需要我们在今后的学习研究过程中继续扩展理论知识,增强操作技能。最后,感谢李建老师的悉心教导!
参考文献:
[1] Jiawei Han,Micheline Kanber,Jian pei .Data Mining Concepts and Techniques Third Edition. China Machine Press.