1.2 数据挖掘任务及过程

1.2.1 数据挖掘定义

数据挖掘可以从技术和商业两个层面上来定义。从技术层面上看,数据挖掘就是从大量数据中提取有用信息的过程。从商业层面看,数据挖掘就是一种商业信息处理技术,其主要特点是对大量业务数据进行抽取、转换、分析和建模处理,从中提取辅助商业决策的关键性数据。

数据挖掘与传统数据分析方法(如查询、报表、联机应用分析等)有着本质区别:数据挖掘是在没有明确假设的前提下去挖掘信息和发现知识。数据挖掘所得到的信息具有先前未知、有效和实用三个特征。先前未知的信息是指该信息是事先未曾预料到的,即数据挖掘是要发现那些不能靠直觉或经验而发现的信息或知识,甚至是违背直觉的信息或知识。挖掘出的信息越出乎意料,就可能越有价值。在商业应用中最典型的例子是“尿布和啤酒”的故事——尿布和啤酒之间销售关联的发现。

数据挖掘是一门交叉学科,把人们对数据的应用从低层次的简单查询提升到从数据中挖掘知识,提供决策支持。在市场对人才需求的引导下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。

1.2.2 数据挖掘对象

从应用领域的角度看,数据挖掘对象主要包括以下几大类型。

(1)关系数据库

关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。关系数据库可以通过数据库查询、获取信息,当数据挖掘应用于关系数据库时,可以进一步搜索趋势或数据模式。关系数据库广泛应用于各行各业,是数据挖掘最常见、最丰富的数据源。

(2)数据仓库(Data Warehouse)

数据仓库是一个从多个数据源收集的信息存储库,存放在一个一致的模式下。数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision Making Support),适合于联机分析处理(On-Line Analysis Processing,OLAP)。银行、电信等行业,数据集中后通常需要保存在数据仓库中。

(3)事务数据库

在事务数据库中,每个记录代表一个事务。通常,一个事务包含唯一的事务标识号和组成该事务的项的列表(如在超市中购买的商品)。超市的销售数据是典型的事务型数据。事务数据库可能有一些与之关联的附加表,如包含关于销售的其他信息:事务的日期、顾客的编号、销售者的编号、连锁分店的编号等。

(4)空间数据库(Spatial Database)

空间数据库是指在关系数据库内部对地理信息进行物理存储。空间数据库中存储的海量数据包括对象的空间拓扑特征、非空间属性特征、对象在时间上的状态变化。常见的空间数据库的数据类型包括地理信息系统、遥感图像数据医学图像数据。空间数据库的特点有:数据量庞大,空间数据模型复杂,属性数据和空间数据联合管理,应用范围广泛。

(5)时态数据库和时间序列数据库(Temporal Database and Time-Series Database)

时态数据库和时间序列数据库都存放与时间有关的数据。时态数据库通常存放与时间相关的属性值,如与时间相关的职务、工资等个人信息及个人简历信息等。时间序列数据库存放随时间变化的值序列,如零售行业的产品销售数据、股票数据、气象观测数据等。时态数据库和时间序列数据库的数据挖掘研究事物发生、发展的过程,有助于揭示事物发展的本质规律,可以发现数据对象的演变特征或对象变化趋势。

(6)流数据(Stream Data)

与传统数据库中的静态数据不同,流数据是连续的、有序的、变化的、快速的、大量的输入数据,主要应用场合包括网络监控、网页点击流、股票市场、流媒体等。与传统数据库相比,流数据在存储、查询、访问、实时性的要求等方面都有很大区别。流数据具有以下特点:数据实时到达;数据到达次序独立,不受应用系统控制;数据规模宏大且不能预知其最大值;数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据的代价昂贵。

(7)多媒体数据库(Multimedia Database)

多媒体数据库是数据库技术与多媒体技术相结合的产物。多媒体数据库不是对现有的数据进行界面上的包装,而是从多媒体数据和信息本身的特性出发。多媒体数据库用计算机管理庞大复杂的多媒体数据,主要包括图形(graphics)、图像(image)、音频(audio)、视频(video)等,现代数据库技术一般将这些多媒体数据以二进制大对象的形式进行存储。多媒体数据库的数据挖掘需要将存储和检索技术相结合,处理方式不同于数值、文本数据的处理。目前,对多媒体数据的挖掘包括构造多媒体数据立方体、多媒体数据的特征提取和基于相似性的模式匹配等。

(8)文本数据库(Text Database)

文本数据库是一种常用的数据库之一,也是最简单的数据库。任何文件都可以存入文本数据库。文本数据库存储的是对对象的文字性描述。文本数据类型包括:无结构类型(大部分的文本资料和网页)、半结构类型(XML数据)、结构类型(图书馆数据)——对应于通常的关系型数据库。文本数据的处理广泛应用于办公资料的处理,如法院、检察院的案件资料的处理。文本数据库存在以下缺点:一是并发访问麻烦,无法实现多个程序同时修改数据库里面的不同记录;二是查询、修改、删除非常麻烦,只能顺序查找,修改、删除需要更新整个文件。文本数据库的优点显而易见:程序简单,数据库管理方便。

(9)万维网数据

万维网(Word Wide Web,WWW)被看成是最大的文本数据库。随着Internet的广泛使用,万维网这一巨大的海洋中蕴藏着极其丰富的有用信息。面向万维网的数据挖掘比面向数据库和数据仓库的数据挖掘要复杂得多,这是由互联网上异构数据源环境、数据结构的复杂性、动态变化的应用环境等特性决定的。

1.2.3 数据挖掘任务

通常,数据挖掘任务可以分为预测型任务和描述型任务。预测型任务就是根据其他属性的值预测特定属性的值,如回归、分类、离群点检测。描述型任务就是寻找概括数据中潜在联系的模式,如聚类分析、关联分析、演化分析、序列模式挖掘。

(1)分类(Classification)分析

分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述,或建立分析模型,或挖掘出分类规则,然后用这个分类模型或规则对数据库中的其他记录进行分类。分类分析已广泛应用于用户行为分析(受众分析)、风险分析、生物科学等领域。

(2)聚类(Clustering)分析

“物以类聚,人以群分”。聚类分析技术试图找出数据集中数据的共性和差异,并将具有共性的对象聚合在相应的簇中。聚类分析可以帮助判断哪些组合更有意义,聚类分析已广泛应用于客户细分、定向营销、信息检索等领域。

聚类与分类是容易混淆的两个概念。聚类是一种无指导的观察式学习,没有预先定义的类。而分类问题是有指导的示例式学习,预先定义类。分类是训练样本包含有分类属性值,而聚类则是在训练样本中找到这些分类属性值。其主要区别如表1-1所示。

表1-1 聚类与分类的主要区别

这里举一个例子,通过扑克牌的划分与垃圾邮件的识别之间的差异来说明聚类与分类之间的差异。扑克牌的划分属于聚类问题,没有预先定义的类标号信息,基于不同的相似性度量对扑克牌进行分组。在不同的扑克游戏中采用不同的划分方式,图1-2为十六张牌基于不同相似性度量(花色、点数或颜色)的划分结果。而垃圾邮件的识别属于分类问题,所有训练用邮件预先被定义好类标号信息,即训练集中的每封邮件预先被标记为垃圾邮件或合法邮件信息,同时为了能够对未来未知邮件进行分类,需要利用已有的训练邮件建立预测模型,然后利用预测模型来对未来未知邮件进行预测。

图1-2 十六张牌基于不同相似性度量的划分结果

(3)回归(Regression)分析

回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种分析方法,常应用于风险分析、作文自动评分等领域。

(4)关联(Association)分析

关联分析是发现特征之间的相互依赖关系,通常是在给定的数据集中发现频繁出现的模式知识(又称为关联规则)。关联分析广泛用于市场营销、事务分析等领域。

(5)离群点(Outlier)检测

离群点检测就是发现与众不同的数据,已广泛应用于(商业、金融、保险等领域)欺诈行为的检测、网络入侵检测、反洗钱、犯罪嫌疑人调查、海关、税务稽查等领域。

(6)演化(Evolving)分析

演化分析就是对随时间变化的数据对象的变化规律和趋势进行建模描述。演化分析常应用于商品销售的周期(季节)性变化描述、股票行情描述。

(7)序列模式(Sequential Pattern)挖掘

序列模式挖掘是指分析数据间的前后序列关系,包括相似模式发现、周期模式发现等,应用于客户购买行为模式预测、Web访问模式预测、疾病诊断、网络入侵检测等领域。

1.2.4 数据挖掘过程

数据挖掘与知识发现紧密相连,在认识数据挖掘过程前,先了解知识发现的概念。知识发现(Knowledge Discovery in Database,KDD)是从数据中发现有用知识的整个过程,这个过程定义为:从数据中鉴别出有效模式的非平凡过程,该模式是新的、可能有用的和最终可理解的。知识发现是一个反复的过程,从技术的角度看,知识发现的基本过程如图1-3所示,数据挖掘是知识发现过程中的一个重要环节,初学者往往把两者混淆使用或等同起来。知识发现的主要步骤描述如下。

图1-3 知识发现的基本过程

<1> 数据清洗(data cleaning),其作用是清除数据噪声和与挖掘主题明显无关的数据。

<2> 数据集成(data integration),其作用是将来自多个数据源中的相关数据组合到一起。

<3> 数据选择(data selection),其作用是根据数据挖掘的目标选取待处理的数据。

<4> 数据转换(data transformation),其作用是将数据转换为易于进行数据挖掘的数据存储形式。

<5> 数据挖掘(data mining),其作用是利用智能方法挖掘数据模式或规律知识。

<6> 模式评估(pattern evaluation),其作用是根据一定评估标准,从挖掘结果中筛选出有意义的相关知识。

<7> 知识表示(knowledge representation),其作用是利用可视化和知识表达技术,向用户展示所挖掘的相关知识。

从商业应用的角度可以把整个数据挖掘过程描述为三个步骤:首先是数据收集,然后利用数据挖掘相关方法提取出有用的知识,最后以提取出来的知识来辅助相应决策者进行决策。数据挖掘过程如图1-4所示。

图1-4 数据挖掘过程

数据收集和预处理:数据收集看似容易且不引人注意,却是数据挖掘的基础。知识是从海量数据里提取出来的,要挖掘知识必须收集一定量的数据。收集到的原始数据通常会存在缺失值、错误值、不一致值等问题,不能直接用作知识提取的数据源,需要进行数据预处理。

知识提取:基于预处理后的数据,使用各种数据挖掘方法(如分类、聚类、关联分析等)进行知识提取,这是数据挖掘的核心部分。

知识辅助决策:将提取出来的知识提供给决策者,以辅助制定相应决策。

1.2.5 数据挖掘常用软件简介

比较著名的商用数据挖掘软件有SPSS Clementine、SAS Enterprise Miner、IBM Intelligent Miner、SQL Server 2005 Data Mining、Oracle DM等,它们都能提供常规的挖掘过程和挖掘模式。MATLAB、Excel(XLMiner)等提供了数据挖掘模块。开源数据挖掘工具有WEKA、RapidMiner(YALE)、ARMiner和AlphaMiner等。

(1)商用软件

① SPSS Clementine

Clementine是ISL(Integral Solutions Limited)公司开发的数据挖掘工具平台。1999年,SPSS公司收购了ISL公司,对Clementine产品进行重新整合和开发。2009年10月,IBM收购了SPSS公司。作为一个数据挖掘平台,Clementine结合商业技术可以快速建立模型,进而应用到商业活动中,帮助人们改进决策制定过程。强大的数据挖掘功能和显著的投资回报率使得Clementine在业界久负盛誉。Clementine拥有功能强大的数据挖掘算法,将数据挖掘贯穿业务流程的始终,在缩短投资回报周期的同时极大提高了投资回报率。来自KDnuggets(http://www.kdnuggets.com/polls/)的调查报告显示:Clementine在2000至2009年间有9年摘得数据挖掘产品用户数排行榜桂冠。

② SAS/Enterprise Miner

SAS/Enterprise Miner是数据挖掘产品市场上一个强劲的竞争者,支持SAS统计模块,通过大量数据挖掘算法增强了那些模块。SAS使用它自身的SEMMA方法来提供一个能支持包括关联、聚类、决策树、神经网络和统计回归在内的数据挖掘工具。SAS Enterprise Miner既方便被初学者使用(可视化操作),也能为有编程经验的用户使用(高效的编程)。它的GUI界面是由数据流驱动的,且易于理解和使用,允许分析者使用链接连接数据结点和处理结点的可视数据流图来构造一个模型,并且允许把处理结点直接插入到数据流中。由于支持多种模型,Enterprise Miner允许用户比较(评估)不同模型并利用评估结点选择最适合的。另外,Enterprise Miner提供了一个能产生被任何SAS应用程序所访问的评分模型的评分结点。

③ IBM Intelligent Miner

Intelligent Miner采用常用的统计方法和挖掘算法,且能处理结构化数据(如数据库表,数据库视图,平面文件)、半结构化和非结构化数据(如顾客信件、在线服务、传真、电子邮件、网页等数据类型)。Intelligent Miner通过其专有的技术,如自动生成典型数据集、发现关联、发现序列规律、概念性分类和可视化呈现,可以自动实现数据选择、数据转换、数据挖掘和结果呈现这一整套数据挖掘操作。若有需要,对结果数据集还可以重复这一过程,直到得到满意结果为止。Intelligent Miner采取客户-服务器(C/S)架构,提供了C++的API编程接口。

④ Microsoft SQL Server 2008 Data Mining

Microsoft SQL Server 2008 Data Mining属于商务智能技术,可帮助用户构建复杂的分析模型,并使其与业务操作相集成。SQL Server 2008分析服务中构建了新的数据挖掘平台——一个易于使用、扩展、方便访问、非常灵活的平台。对于以前从未考虑过采用数据挖掘的组织机构,这无疑是个非常容易接受的解决方案。

⑤ XLMiner

XLMiner是将数据挖掘置于Excel中,操作界面较为容易。在功能上,XLMiner包含了众多统计和机器学习的方法,可以帮助使用者更加快速地进行资料的分类、预测、数据挖掘探索与简化等方面的工作。

⑥ MATLAB

MATLAB和Mathematica、Maple并称为三大数学软件,在科技应用软件中的数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、与其他编程语言的连接等。MATLAB主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。MATLAB提供了许多数据挖掘模块。

(2)开源软件

① WEKA

WEKA(Waikato Environment for Knowledge Analysis,怀卡托智能分析环境)是基于Java环境下的开源机器学习和数据挖掘软件,可在其官方网站上进行下载。该软件的缩写WEKA也是新西兰独有的一种鸟名,而WEKA的主要开发者恰好来自新西兰的Waikato大学。WEKA作为数据挖掘平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则以及在新的交互式界面上的可视化。开发者可使用Java语言,在WEKA的架构下开发出更多的数据挖掘算法。WEKA适合学习研究用,但不适合商用。AlphaMiner(http://bi.hitsz.edu.cn/AlphaMiner/index.htm)是基于WEKA内核开发的处理能力更强的商用软件。

② RapidMiner

RapidMiner(前身是YALE)是基于WEKA构建的一款开源数据挖掘软件,不仅提供了一个GUI的数据处理和分析环境,还提供了Java API,以便将它的能力嵌入到其他应用程序。其数据挖掘任务涉及范围广泛,能简化数据挖掘过程的设计和评价。

③ ARMiner

ARMiner是一个专注于关联规则挖掘的C/S的结构应用程序,是用Java语言编写的。