数据仓库与数据挖掘实例分析

时间:2022-05-23 11:18:03

数据仓库与数据挖掘实例分析

摘 要:数据仓库与数据挖掘技术的应用主要在于构建企业的决策支持系统,以协助企业提高自身竞争力。作为近年来刚刚兴起并逐步发展起来的一门新兴交叉学科,数据仓库与数据挖掘涉及到了许多领域的知识,也包括许多概念、理论、设计方法及挖掘算法,这些内容比较繁杂且不易理解,对于初学者而言,学习起来颇为困难。针对此问题,通过实例加以说明,以期为初学者提供某些帮助。

关键词:数据仓库;数据挖掘;决策树

中图分类号:TP391 文献标识码:A 文章编号:16727800(2013)002009904

0 引言

数据仓库与数据挖掘是近年来刚刚兴起并逐步发展起来的一门新兴交叉学科,它把对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,并提供决策支持。此门学科涉及到许多领域的知识,包括数据库技术、人工智能技术、数理统计、可视化技术、并行计算、机器学习等,汇集了多门学科的知识并在综合运用这些学科知识的基础上产生出新的知识和方法。此门学科的应用主要在于构建企业的决策支持系统,此系统正是目前帮助企业提高自身竞争力的重要手段。

在数据仓库与数据挖掘学科中涉及了许多概念、设计方法及诸多挖掘算法,本文将就其中的一些内容结合SQL Server Analysis Service应用实例加以阐述与说明,以加深对理论的理解,并逐步掌握此门学科所提供的更多技术。

总体来讲,构建一个企业的决策支持系统主要有两个阶段,第一个阶段是创建企业的数据仓库,第二个阶段是在数据仓库的基础上进行数据挖掘。这两个阶段的工作相辅相成,数据仓库是基础,数据挖掘是在数据仓库之上的高层应用,两者需要整体规划、分步实施。下面分别就这两部分内容结合实例加以阐述。

1 数据仓库的规划与设计

数据仓库是一个面向主题的、集成的,时变的、非易失的数据集合,支持部门管理的决策过程,数据中的每一个数据单元在实践上都是和某个时刻相关的。数据仓库也被看作是某个组织的数据存储库,用于支持战略决策。数据仓库的功能是以集成的方式存储整个组织的历史数据,这些数据会影响到这个组织和企业的多个方面。数据仓库的特点是:数据常常来自于多个数据源;其存放模式一致;驻留在单个站点;数据已经清理、变换、集成与装载并定期刷新;数据量巨大。

数据仓库构建方法同一般数据库构建方法最大的不同在于数据仓库的需求分析是从用户的决策问题入手,其目的是直接针对问题的主题,而一般数据库系统是以事务处理为出发点。下面结合具体实例说明数据仓库的设计步骤。

1.1 确定用户需求,为数据仓库中存储的数据建立模型

通过数据模型得到企业完整而清晰的描述信息。数据模型是面向主题建立的,同时又为多个面向应用的数据源的集成提供了统一的标准。

例如:FoodMart是一家大型的连锁店,在美国、墨西哥和加拿大有销售业务。市场部想要按产品和顾客分析1998年进行的所有销售业务数据。该公司现在急需进行销售方面的数据分析,以找到一些潜在规律来促进销售业务的进一步拓展从而扩大销售渠道、加大销售量、提高销售利润、增强公司竞争力。该连锁店销售的产品总体上被分为若干个大类,细节上分为若干个小类;客户广泛分布于不同地区、不同国家。该连锁店在销售信息管理系统中长期保存并不断更新着产品、产品分类、商店、销售、促销、客户等记录表,依次为:产品表(PRODUCT)、产品分类表(PRODUCT_CLASS)、商店表(STOR)、1998年销售记录表(Sales_fact_1998)、促销表(PROMOTION)、客户表(CUSTOMER)等。

FoodMart连锁店保存并不断更新的数据库是事务处理型数据库,其结构是面向应用而设计的。要进行数据挖掘就必须建立面向主题的数据仓库,为了进行1998年销售方面的数据挖掘,要设计的数据仓库必须以1998年销售数据为主题,辅之以日期、产品、产品分类、商店、促销、客户等其它数据信息。具体来讲,即创建以1998年销售为主题的数据仓库,采用星型/雪花模式构建事实表。

1.2 分析数据源,完成数据仓库的设计工作

基于用户的需求,着重于1998年销售主题,开发数据仓库中数据的物理存储结构,即设计多维数据结构的事实表和维表。1998年销售事实表包含5个维表和3个度量。这5个维表分别是日期、客户、产品、促销和商店维表,3个度量分别为销售金额、仓储成本、销售单位。考虑到将来要根据顾客的年收入情况进行顾客会员卡种类方面的数据分析,另外增加了年收入维度(yearly income,取自于customer表)。为便于分析挖掘出有关时间因素的信息,特增加了时间表time。

1.3 生成物理的数据仓库,并从各种源系统中获取数据装入数据仓库中 在SQL Server Analysis Service manager中建立物理的数据仓库可以通过ODBC数据源方式指定原有数据库,再通过Microsoft OLE DB Provider for ODBC进行连接的方式完成原有数据库到数据仓库的映射。运用SQL Server Analysis Service manager提供的功能建立数据仓库的多维数据集,指定此数据仓库的度量值与维度,至此数据仓库建立完毕。其中纬度与度量值如图2所示。

2 数据挖掘

数据挖掘(Data Mining)又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。简言之,数据挖掘就是从海量数据中提取隐含在其中的有用信息和知识的过程。数据挖掘可以帮助企业对数据进行微观、中观乃至宏观的统计、分析、综合和推理,从而利用已有数据预测未来,帮助企业赢得竞争优势。数据挖掘的方法是建立在联机分析处理 (On Line Analytical Processing,OLAP)的环境基础之上的。OLAP技术使数据仓库能够快速响应重复而复杂的分析查询,从而使数据仓库能有效地用于联机分析。OLAP 的多维数据模型和数据聚合技术可以组织并汇总大量的数据,以便能够利用联机分析和图形工具迅速对数据进行评估。当分析人员搜寻答案或试探可能性时,在得到对历史数据查询的回答后,经常需要进行进一步查询。OLAP系统可以快速灵活地为分析人员提供实时支持。

数据挖掘工作是在完备地建立了数据库、数据仓库等数据集的基础上进行的,典型的数据挖掘系统结构如图3所示。

整个数据挖掘过程主要可分几个阶段,依次为:问题定义、数据预处理、数据挖掘以及结果的解释和评估。

2.1 问题定义

问题定义就是要清晰地定义出业务问题,确定数据挖掘的目的。对于FoodMart连锁店来说,它的问题定义就是:FoodMart连锁店的市场部想增加客户满意度和客户保有率,于是实行了创造性的方法以达到这些目标。

其方法之一是对会员卡方案重新进行定义,以便更好地为客户提供服务并且使所提供的服务能够更加密切地满足客户的期望。

为了重新定义会员卡方案,市场部想分析当前销售事务并找出客户人口统计信息(婚姻状况、年收入、在家子女数等等)和所申请卡之间的模式,然后根据这些信息和申请会员卡的客户的特征重新定义会员卡。

2.2 数据预处理

最初为数据挖掘所准备的所有原始数据集通常都很大,它们当中存在许多脏数据。造成脏数据的原因主要源自于收集与传送过程的错误、滥用缩写词以及不同的惯用语、重复记录、数据输入错误、拼写变化、不同的计量单位、过时的编码、集成时的空值与丢失值以及不同的数据源等。脏数据主要有以下一些表现形式:

(1)数据不完整。表现为:感兴趣的属性缺值;缺乏感兴趣的属性;仅包含聚集数据等。例如:CUSTOMER表中的LNAME=“”

(2)数据噪声。即包含错误的属性值或存在偏离期望的孤立点值。一个属性的值与事实完全不吻合的情况,例如:CUSTOMER表中的在家子女数num_children_at_home=200

(3)数据不一致。数据不一致表现为多种情况,比如:同样的属性在不同的结构里使用不同的名字,例如:name、xm;不同数据使用的计量单位不同,例如:100(美元)、100(美分);数据不允许为空的地方数据为空等。

如果在脏数据上进行数据挖掘将很可能导致错误的判断甚至完全相反的分析结果,也就是说,没有高质量的数据就没有高质量的挖掘结果。由于决策质量依赖于数据质量,因此需要在数据挖掘之前进行数据预处理,以保证数据仓库内包含的是高质量的、一致的数据。所谓数据预处理其实就是对数据仓库中的数据进行提取、清理、转换,从而保证数据的高质量,具体来讲包括以下几种操作:

(1)数据清理(data cleaning)。就是去掉数据中的噪声,纠正不一致;填写空缺值,平滑噪声数据,识别、删除孤立点。例如:将CUSTOMER表中的在家子女数num_children_at_home=200的记录值删除掉或填入平均值1。

(2)数据集成(data integration)。将多个数据源中的数据合并存放在一个统一的数据存储(如数据仓库、数据库等)中,数据源可以是多个数据库、数据立方体或一般的数据文件。

(3)数据变换(data transformation)。即数据的标准化与聚集,将数据变换成适于挖掘的形式。例如:属性数据可以规范化,使得它们可以落入某个小区间。

(4)数据归约(data reduction)。数据归约技术可以用来得到数据集的归约表示,它接近于保持原数据的完整性,但数据量比原数据小得多。与非归约数据相比,在归约的数据上进行挖掘,所需的时间和内存资源更少,挖掘将更有效,并产生相同或几乎相同的分析结果。数据归约主要通过数据聚集(如建立数据立方体)、维归约(如删除不相关特性)、数据压缩(如最短编码)、数字归约(用较短的表示替换数据)、概化(去掉不用的属性)等方法完成。例如,对于FoodMart连锁店的数据挖掘来讲,CUSTOMER表中的address1、address2、address3、 address4这4个属性与挖掘目标无关,所以可以将它们删除掉以节省空间和时间。

2.3 选择挖掘模型,进行数据挖掘

根据数据挖掘的目标和数据的特征,选择合适的挖掘模型,在净化和转换过的数据集上进行数据挖掘。

FoodMart连锁店的工作设想是:对会员卡方案重新进行定义,以便更好地为客户提供服务并且使所提供的服务能够更加密切地满足客户的期望。市场部想分析当前销售事务并找出客户人口统计信息(婚姻状况、年收入、在家子女数等)和所申请卡之间的模式,然后根据这些信息和申请会员卡的客户的特征重新定义会员卡。

对于这个工作预期,决定采用决策树的数据挖掘方法进行客户群的分析。所谓决策树,就是在对数据进行决策分类时利用树的结构将数据记录进行分类,其中树的一个叶结点就代表符合某个条件的属性集,根据属性的不同取值建立决策树的各个分支,随后递归地构造每个子节点的子树。由于决策树结构简单便于人们认识与理解,以及决策树不需要额外的数据训练,因此,决策树是数据挖掘中常用的一种分类方法。

本实例采用“Microsoft 决策树”算法在客户群中找出会员卡选择模式。按照以下步骤完成“决策树”挖掘模型:

(1)将要挖掘的维度(事例维度)设置为客户;

(2)将 Member_Card 成员的属性设置为数据挖掘算法识别模式时要使用的信息;

(3)选择人口统计特征列表(婚姻状况、年收入、在家子女数和教育程度),算法将据此确定模式;

(4)处理训练模型,浏览决策树视图并从中读取模式。

经过处理后,挖掘模型浏览器展现出一棵深度为3、宽度为8的决策树,此浏览器将根据用户对树中不同分支节点的选择显示出相应的统计信息。

例如,选择根节点“全部”顾客的方框后显示信息如图4所示。

在图中可以看到数据挖掘的结果:将客户按照年收入的不同分为8个区段(类),涉及的客户总数为7 632人,通过直方图可以直观地看到办理金、银、铜、普通卡的比例。

选择年收入在$30K-$50K的范围框后,挖掘模型浏览器的显示信息如图5所示。

年收入在此范围内的客户共计1 362人,其中办理金、银、铜、普通卡的数量和比例通过合计及直方图可以一目了然。

其它选项依此类推。

对年收入在$150K以上的范围节点进行进一步分级(显示其子节点),选择已婚节点后显示信息如图6所示。

其它选项依此类推。

2.4 解释模型结果分析

针对FoodMart商店的举措,对挖掘模型浏览器的显示结果进行研读后得出这样的结论:年收入越高的顾客办理金卡、银卡的比例越高,收入越低的顾客办理普通卡和铜卡的比例越高。在高收入的顾客中,已婚者办理金卡的比例最高,单身者办理银卡的比例最高。在较低收入的顾客中,在家子女的人数少于两人的办理铜卡的比例较高,多于两人的办理金卡的比例较高。具体数据值及比例值可以从挖掘模型浏览器中得到。市场部将根据这些模式设计新的会员卡,使其适应申请各类会员卡的客户类型。

3 结语

企业要建立自己的决策支持系统就必然要应用数据仓库、数据挖掘技术,企业应根据自身要求合理建立特定主题的数据仓库,在此基础上还要结合实际问题选择相应的挖掘模型,从而得到最有价值的挖掘分析结果,以利于企业的经营发展。

参考文献:

\[1\] \[美\] MEHMED KANTARDZIC.数据挖掘――概念、模型、方法和算法\[M\].北京:清华大学出版社,2003.

\[2\] 杨学全.SQL Server 2000实例教程\[M\].北京:电子工业出版社,2004.

上一篇:浅谈俄罗斯非语言交际 下一篇:信息技术在教育中的异化及消解