1.2 什么是数据挖掘
简单地说,数据挖掘是指从大量数据中提取或“挖掘”知识。该术语实际上有点用词不当。注意,从矿石或砂子挖掘黄金称作黄金挖掘,而不是砂石挖掘。因此,数据挖掘应当更正确地命名为“从数据中挖掘知识”,遗憾的是这个词有点长。
“知识挖掘”是一个较短的术语,但不能反映从大量数据中挖掘。毕竟,挖掘是一个很生动的术语,它抓住了从大量的、未加工的材料中发现少量宝贵金块这一过程的特点(见图1-3)。这样,“数据挖掘”成了流行术语。还有一些术语具有和数据挖掘类似但稍微不同的含义,如从数据中挖掘知识、知识提取、数据/模式分析、数据考古和数据捕捞。
许多人把数据挖掘视为另一个常用的术语数据中的知识发现或KDD的同义词,而另一些人只是把数据挖掘视为知识发现过程的一个基本步骤。知识发现过程如图1-4所示,由以下步骤的迭代序列组成:
1. 数据清理(消除噪声和不一致数据)
2. 数据集成(多种数据源可以组合在一起)
3. 数据选择(从数据库中提取与分析任务相关的数据)
图1-3 数据挖掘:在你的数据中搜索知识(有趣的模式)
图1-4 数据挖掘作为知识发现过程的一个步骤
4. 数据变换(数据变换或统一成适合挖掘的形式,如通过汇总或聚集操作)
5. 数据挖掘(基本步骤,使用智能方法提取数据模式)
6. 模式评估(根据某种兴趣度度量,识别表示知识的真正有趣的模式;见1.5节)
7. 知识表示(使用可视化和知识表示技术,向用户提供挖掘的知识)
步骤1~4是数据预处理的不同形式,为挖掘准备数据。数据挖掘步骤可能与用户或知识库交互。有趣的模式提供给用户,或作为新的知识存放在知识库中。注意,根据这种观点,数据挖掘只是整个过程中的一个步骤,尽管是最重要的步骤,因为它发现用来评估的隐藏的模式。
我们同意数据挖掘是知识发现过程的一个步骤。然而,在产业界、媒体和数据库研究界,术语数据挖掘比长术语从数据中发现知识更流行。因此,本书选用术语数据挖掘。我们采用数据挖掘功能的广义观点:数据挖掘是从存放在数据库、数据仓库或其他信息库中的大量数据中发现有趣知识的过程。基于这种观点,典型的数据挖掘系统具有以下主要成分(见图1-5):
图1-5 典型数据挖掘系统的结构
? 数据库、数据仓库、万维网或其他信息库:这是一个或一组数据库、数据仓库、电子数据表或其他类型的信息库。可以对这些数据进行数据清理和集成。
? 数据库或数据仓库服务器:根据用户的数据挖掘请求,数据库或数据仓库服务器负责提取相关数据。
? 知识库:这是领域知识,用于指导搜索或评估结果模式的兴趣度。这种知识可能包括概念分层,用于将属性或属性值组织成不同的抽象层。用户信念知识也可以包含在内,可以使用这种知识,根据非期望性评估模式的兴趣度。领域知识的其他例子包括附加的兴趣度约束或阈值,以及元数据(例如,描述来自多个异构数据源的数据)。
? 数据挖掘引擎:这是数据挖掘系统的基本部分,理想情况下由一组功能模块组成,用于执行特征化、关联和相关分析、分类、预测、聚类分析、离群点分析和演变分析等任务。
? 模式评估模块:通常,该成分使用兴趣度度量(见1.5节),并与数据挖掘模块交互,以便将搜索聚焦在有趣的模式上。它可能使用兴趣度阈值过滤已发现的模式。模式评估模块也可以与挖掘模块集成在一起,这依赖于所用的数据挖掘方法的实现。对于有效的数据挖掘,建议尽可能深入地将模式评估兴趣度推进到挖掘过程之中,以便将搜索限制在有趣的模式上。
? 用户界面:该模块在用户和数据挖掘系统之间通信,允许用户与系统交互,说明数据挖掘查询或任务,提供信息以帮助搜索聚焦,根据数据挖掘的中间结果进行探索式数据挖掘。此外,该成分还允许用户浏览数据库和数据仓库模式或数据结构,评估挖掘的模式,以不同的形式对模式可视化。
从数据仓库观点来看,数据挖掘可以看作联机分析处理(OLAP)的高级阶段。然而,通过结合更高级的数据分析技术,数据挖掘比数据仓库系统的汇总型分析处理的狭窄领域走得更远。
尽管市场上已有许多“数据挖掘系统”,但是并非所有的系统都能进行真正的数据挖掘。不能处理大量数据的数据分析系统,最多称作机器学习系统、统计数据分析工具或实验系统原型。一个系统只能够进行数据或信息检索,包括在大型数据库找出聚集值或回答演绎查询,更应归类为数据库系统,或信息检索系统,或演绎数据库系统。
数据挖掘涉及多学科技术的集成,包括数据库和数据仓库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理以及空间或时间数据分析。在本书讨论数据挖掘时,我们采用数据库观点。也就是说,着重强调有效的和可伸缩的数据挖掘技术。一个算法是可伸缩的(scalable)是指,如果给定内存和磁盘空间等可利用的系统资源,其运行时间应当随数据的规模近似线性地增加。通过数据挖掘,可以从数据
库提取有趣的知识、规律或高层信息,并可以从不同角度观察或浏览它们。发现的知识可以用于做决策、过程控制、信息管理和查询处理。因此,数据挖掘在信息和数据库系统方面是最重要的前沿之一,是信息技术最有发展前途的交叉学科之一
1.3 对何种数据进行数据挖掘
本节,我们考察可以进行挖掘的各种数据储存库。原则上讲,数据挖掘可以应用于任何类型的信息储存库以及瞬态数据(如数据流)。这样,我们考察的数据储存库将包括关系数据库、数据仓库、事务数据库、高级数据库系统、一般文件、数据流和万维网。高级数据库系统包括对象-关系数据库和面向特殊应用的数据库,如空间数据库、时间序列数据库、文本数据库和多媒体数据库。挖掘的难题和技术可能因存储系统而异。
尽管本书假定读者具备信息系统的基本知识,我们还是对上面列举的主要数据存储系统做简要的介绍。本节,我们还介绍虚构的AllElectronics商店,它在本书从头至尾用来解释概念。
1.3.1 关系数据库
数据库系统也称数据库管理系统(DBMS),由一组内部相关的数据(称作数据库)和一组管理和存取数据的软件程序组成。软件程序涉及如下机制:数据库结构定义,数据储存库以及并发、共享或分布的数据访问,在面对系统瘫痪或未授权的访问时确保存储的信息的一致性和安全性。
关系数据库是表的汇集,每个表都赋予唯一的名字。每个表包含一组属性(列或字段),通常存放大量元组(记录或行)。关系表中的每个元组代表一个对象,被唯一的关键字标识,并被一组属性值描述。通常为关系数据库构造语义数据模型,如实体-联系(ER)模型。ER数据模型将数据库表示成一组实体和它们之间的联系。考虑下面的例子。例1-1 AllElectronics的关系数据库。AllElectronics公司由下列关系表描述:customer,item, employee和branch。这些表的片段在图1-6中给出。
关系customer有一组属性,包括顾客的唯一标识号(cust_ID),顾客姓名、地址、年龄、职业、年收入、信用信息、分类等。
• 类似地,关系employee, branch和item都各自包含一组描述它们性质的属性。
• 表也可以用来表示多个关系表之间的联系。对于我们的例子,这种表包括purchase(顾客购买商品,创建一个由雇员处理的销售事务),items_sold(给定事务销售的商品列表)和work_at(雇员在AllElectronics的一个分店工作)。
关系数据可以通过数据库查询访问。数据库查询使用如SQL这样的关系查询语言或借助于图形用户界面书写。在后一种情况下,用户可以使用菜单说明包含在查询中的属性和对属性的约束。一个给定的查询转换成一系列关系操作,如连接、选择和投影,然后优化,以便有效地处理。查询可以检索数据的一个指定的子集。假设要分析AllElectronics的数据。通过使用关系查询,可以要求:“显示上个季度销售的所有商品的列表”。关系查询语言也可以包含聚集函数,如sum, avg(平均),count, max(最大)和min(最小)。这些使得你可以要求“显示上个月按分店分组的总销售”,或“多少销售事务出现在12月份?”或“哪一位销售人员的销售量最高?”
当数据挖掘用于关系数据库时,可以进一步搜索趋势或数据模式。例如,数据挖掘系统可以分析顾客数据,根据顾客的收入、年龄和以前的信用信息预测新顾客的信用风险。数据挖掘系统也可以检测偏差,如与前一年相比,哪种商品的销售出人预料。这种偏差可以进一步考察。(例如,这种商品的包装是否有变化,或价格是否大幅度提高?)
关系数据库是数据挖掘最常见、最丰富的数据源,因此,它是我们数据挖掘研究的一种主要数据形式。
1.3.2 数据仓库
假设AllElectronics是一个成功的跨国公司,分部遍布全世界。每个分部都有一组自己的数据库。AllElectronics的总裁要你提供公司第三季度每种类型的商品、每个分部的销售分析。这是一项困难的任务,特别是因为相关数据散布在多个数据库,物理上驻留在多个站点。
如果AllElectronics有一个数据仓库,该任务将是容易的。数据仓库是一个从多个数据源收集的信息储存库,存放在一个一致的模式下,并且通常驻留在单个站点。数据仓库通过数据清理、数据变换、数据集成、数据装入和定期数据刷新过程来构造。该过程在第2、3章详细讨论。图1-7给出了AllElectronics的数据仓库构造和使用的典型框架。
图1-7 AllElectronics典型的数据仓库框架
为便于决策,数据仓库中的数据围绕诸如顾客、商品、供应商和活动等主题组织。数据存储从历史的角度(如过去的5~10年)提供信息,并且通常是汇总的。例如,数据仓库不是存放每个销售事务的细节,而是存放每个商店每类商品的销售事务的汇总,或汇总到更高层次,如每个销售地区的汇总。
通常,数据仓库用多维数据库结构建模。其中,每个维对应于模式中一个或一组属性,每个单元存放某种聚集度量值,如count或sales_amount。数据仓库的实际物理结构可以是关系数据存储或多维数据立方体(multidimensional data cube)。数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据。
例1-2 AllElectronics的数据立方体。AllElectronics的汇总销售数据的数据立方体在图1-8a中。该立方体有三维:address(城市值芝加哥、纽约、多伦多、温哥华),time(季度值Q1,Q2, Q3, Q4)和item(商品类型值家庭娱乐、计算机、电话、安全)。存放在立方体的每个单元中的聚集值是sales_amount(以千美元为单位)。例如,同安全系统有关的商品第一季度Q1在温哥华的总销售为400,存放在单元〈温哥华,Q1,安全〉中。其他立方体可以用于存放每个维的聚集和,对应于使用不同的SQL分组得到的聚集值(例如,每个城市和季度的,或每个城市和商品的,或每个季度和商品的或每一维的总销售量)。
图1-8 一个通常用于数据仓库的多维数据立方体,a)显示AllElectronics的汇总数据;b)显示对于a)中的数据立方体下钻和上卷的汇总数据结果。为便于观察,只给出部分立方体单元值
你可能会问:“我听说过数据集市。数据仓库和数据集市的区别是什么?”数据仓库收集了跨部门的整个组织的主题信息,因此它是企业范围的。另一方面,数据集市(data mart)是数据仓库的一个部门子集。它聚焦在选定的主题上,是部门范围的。
通过提供多维数据视图和汇总数据的预计算,数据仓库非常适合联机分析处理(OLAP)。
OLAP操作使用数据的领域背景知识,允许在不同的抽象层提供数据。这些操作适合不同的用户。OLAP操作的例子包括下钻(drill-down)和上卷(roll-up),允许用户在不同的汇总级别观察数据,如图1-8b所示。例如,可以对按季度汇总的销售数据下钻,观察按月汇总的数据。
类似地,可以对按城市汇总的销售数据上卷,观察按国家汇总的数据。
尽管数据仓库工具对于支持数据分析是有帮助的,但是仍需要更多的数据挖掘工具,以便进行更深入的自动分析。数据仓库和OLAP技术的概述在第3章提供,而关于数据仓库和OLAP实现以及数据泛化的高级问题在第4章讨论。
1.3.3 事务数据库
一般,事务数据库由一个文件组成,其中每个记录代表一个事务。通常,一个事务包含唯一的事务标识号(trans_ID)和组成该事务的项的列表(如,在商店购买的商品)。事务数据库可能有一些与之相关联的附加表,包含关于销售的其他信息,如事务的日期、顾客的ID号、销售者的ID号、销售分店的ID号,等等。
例1-3 AllElectronics的事务数据库。事务可以存放在表中,每个事务一个记录。AllElectronics的事务数据库的片段显示在图1-9中。从关系数据库的观点来看,图1-9中的销售表是一个嵌套关系,因为属性“商品ID的列表”包含商品的集合。由于大部分关系数据库系统不支持嵌套关系结构,事务数据库通常存放在一个类似于图1-9中的表格式的一般文件中,或展开到类似于图1-6的items_sold表的标准关系中。
作为AllElectronics数据库的分析者,你可能问“显示Sandy Smith购买的所有商品”或 “有多少事务包含商品号I3?”回答这种查询可能需要扫描整个事务数据库。
假设你想更深地挖掘数据,问“哪些商品一块销售得很好?”这种购物篮数据分析使你能够将商品捆绑销售,作为一种最大化销售的策略。例如,已有打印机与计算机经常一起销售的知识,你可以向购买选定计算机的顾客提供一种较贵的打印机打折销售,希望销售更多较贵的打印机。常规的数据检索系统不能回答上面这种查询。然而,通过识别频繁项集—频繁一块销售的商品,事务数据的数据挖掘系统可以做到。事务数据库的频繁模式挖掘在第5章讨论
CIO之家 www.ciozj.com 公众号:imciow