第1章绪论
自20世纪60年代开始,数据库及信息技术就逐步从基本的文件处理系统发展成为功能更强大的数据库系统。70年代,数据库系统的研究和发展导致关系数据库系统、数据建模工具、索引与数据组织技术的迅速发展,在线事务处理(online transaction processing,OLTP)的出现也极大地推动了关系数据库的普及,尤其是在大规模数据存储、检索和管理的应用领域。自80年代中期开始,关系数据库普遍使用,新一轮的研究与开发新型数据库系统悄然兴起,并提出了众多先进的数据模型(扩展关系模型、面向对象模型、演绎模型等)及应用数据库系统(空间数据库、时序数据库、多媒体数据库等)。目前,异构数据库系统和基于互联网的全球信息系统已经在信息工业中开始扮演重要角色。
数据库的存储量不断增长,已远远超过人类分析和处理的能力。这样,存储在数据库中的数据就成为“数据坟墓”,即这些数据极少被访问,导致许多重要的决策不是基于这些数据而是依赖决策者的直觉而制定的。其中的原因很明显,这些决策的制定者没有找到合适的工具帮助其从数据中抽取出所需的知识。而数据挖掘可以从大量数据中发现存在的特定模式规律,从而可以为商业活动、科学探索和医学研究等诸多领域提供所必需的知识。数据与知识之间的巨大差距迫切需要系统地开发数据挖掘方法,以便将“数据坟墓”中的数据转化为知识财富。
1.1数据挖掘基本理论
1.1.1数据挖掘定义与理论框架
自20世纪90年代以来,数据挖掘的发展速度很快,加之它是多学科综合的产物,目前还没有一个完整的定义,人们提出了多种数据挖掘的定义[1]。
SAS软件研究所(1997年)认为数据挖掘是在大量相关数据基础上进行数据探索和建立相关模型的先进方法。
Bhavani(1999年)认为数据挖掘是使用模式识别技术、统计和数学技术,在大量数据中发现有意义的新关系、模式和趋势的过程。
Hand等(2000年)认为数据挖掘是在大型数据库中寻找有意义、有价值信息的过程。
数据挖掘的定义可归纳为:数据挖掘是一个从不完整的、不明确的、大量的并且包含噪声,具有很大随机性的数据中,提取出隐含其中、事先未被获知却潜在有用知识或模式的过程[2]。
数据挖掘的定义包含以下四个层次的含义:①数据源必须是真实的、大量的、含噪声的;②发现的是用户感兴趣的知识;③发现的知识要可接受、可理解、可运用,*好能用自然语言表达发现结果;④并不是要求发现“放之四海而皆准”的知识,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明,所发现的知识都是相对的,是有特定前提和约束条件、面向特定领域的。
从技术角度看,数据挖掘利用一系列相关算法和技术从大量数据中提取出人们所需的信息与知识,所提取的知识表示形式可以为概念、模式、规律和规则等;它可以通过对历史数据和当前数据的分析,帮助决策者提取隐藏在数据背后的潜在关系与模式等,进而协助其预测未来可能出现的状况和即将产生的结果。
目前,关于数据挖掘的理论基础问题还没有到完全成熟的地步,但是分析它的发展,有助于加深对数据挖掘概念的理解。系统的理论是研究、开发、评价数据挖掘方法的基石。经过多年的探索,一些重要的理论框架已经形成,并且吸引着众多研究人员为此进一步工作,向着更深入的方向发展。
数据挖掘方法可以是基于数学理论的,也可以是非数学的;可以是演绎的,也可以是归纳的。1997年,Mannila[3]对当时流行的数据挖掘的理论框架进行了综述。结合*新的研究成果,下面这些重要的理论框架有助于准确地理解数据挖掘的概念与技术特点。
(1)模式发现(pattern discovery)架构
在模式发现架构下,数据挖掘被认为是从源数据集中发现知识模式的过程[4,5]。这是对机器学习方法的继承和发展,是目前比较流行的数据挖掘研究与系统开发架构。按照这种架构,可以对不同知识模式的发现过程进行研究。目前,在关联规则、分类/聚类模型、序列模式(sequential pattern)及决策树(decision tree)归纳等模式发现的技术与方法上取得了丰硕的成果。近几年,学者也已经开始多模式知识发现的研究。
(2)规则发现(rule discovery)架构
Agrawal等综合利用机器学习与数据库技术将分类、关联及序列作为一个统一的规则发现问题来处理[6]。他们给出了统一的挖掘模型和规则发现过程中的几个基本运算,解决了如何将数据挖掘问题映射到模型以及通过基本运算发现规则的问题,这种基于规则发现的数据挖掘架构,是目前数据挖掘研究的常用方法。
(3)基于概率和统计理论架构
在基于概率和统计理论框架下,数据挖掘被看作是从大量源数据集中发现随机变量的概率分布情况的过程[6]。目前,这种架构在数据挖掘的分类和聚类研究与应用中取得了很好的成果,这些技术和方法可以看作是概率理论在机器学习方面的发展和提高。统计学作为一个古老的学科,已经在数据挖掘中得到了广泛的应用,如传统的统计回归法在数据挖掘中的应用,特别是近年来统计学已经成为支撑数据仓库、数据挖掘技术的重要理论基础。实际上,大多数的理论架构都离不开统计方法的介入,统计方法在概念形成、模式匹配及成分分析等众多方面都是基础中的基础。
(4)微观经济学观点(microeconomics view)
在微观经济学观点框架下,数据挖掘被看作是一个问题的优化过程。1998年,Kleinberg等[7]建立了在微观经济学观点框架里判断模式价值的理论体系。他们认为,如果一个知识模式对一个企业是有效的话,那么它就是有趣的。有趣的模式发现是一个新的优化问题,可以根据基本的目标函数,对“被挖掘的数据”的价值提供一个特殊的算法视角,导出优化的企业决策。
(5)基于数据压缩(data compression)理论
在基于数据压缩理论框架下,数据挖掘被看作是对数据压缩的过程[8]。按照这种观点,关联规则、决策树、聚类等算法实际上都是对大型数据集不断概念化或抽象化的压缩过程。按Chakrabarti[8]的描述,*小描述长度(minimum description length,MDL)原理可以评价一个压缩方法的优劣,即*好的压缩方法应该保证概念本身的描述以及把它作为预测器的编码长度均*小。
(6)基于归纳数据库(inductive database)理论
在基于归纳数据库理论框架下,数据挖掘被看作是对数据库的归纳问题[9]。一个数据挖掘系统必须具有原始数据库和模式库,数据挖掘的过程就是归纳的数据查询过程,这种架构也是目前研究者和系统研制者倾向的理论框架。
(7)可视化数据挖掘(visual data mining)
1997年,Keim[10]对可视化数据挖掘的相关技术进行了综述。虽然可视化数据挖掘必须结合其他技术和方法才有意义,但是以可视化数据处理为中心来实现数据挖掘的交互式过程已经成为数据挖掘中的一个重要方面。
当然,上面的理论框架并不是孤立的,更不是互斥的,对于特定的研究和开发领域来说,它们是相互交叉并且有所侧重的。由以上论述可以看出,数据挖掘的研究是在相关学科充分发展的基础上提出并不断发展的,它的概念和理论仍在发展中。为了弄清相关概念和技术路线,仍有大量的工作等待人们去探索和尝试。
1.1.2数据挖掘功能与工作流程
数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据中发现隐含的、有意义的知识,主要有以下五类功能[11]。
1)自动预测趋势和行为。数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报*大的用户,其中可预测的问题包括预报破产及认定对指定事件*可能做出反应的群体。
2)关联分析。数据关联是数据库中存在的一类重要的、可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。
3)聚类。将数据按照某一规则划分为若干有意义子集的过程即聚类。聚类增强了人们对客观世界的认识,是概念描述和偏差分析的先决条件。聚类分析主要包括传统的模式识别方法及数学分类学。20世纪80年代初,Mchalski提出的聚类概念的要点是,在划分对象时不仅考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免传统技术的某些片面性。例如,将申请人分为高度风险申请者、中度风险申请者、低度风险申请者。
4)概念描述。概念描述是对某类对象的内涵进行描述,并概括这类对象的主要特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法有很多,如决策树方法、遗传算法等。
5)偏差检测。数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。
在进行数据挖掘之前,首先要做的是定义问题,清晰地定义出问题和目标任务,确定数据挖掘的目的。在明确挖掘目的的基础上,按照数据挖掘基本步骤进行知识的发现。
数据挖掘的整个过程具有许多处理阶段,可以归纳为三个阶段:数据准备阶段、数据挖掘阶段、结果的解释和评价[12]。其中数据准备阶段包括数据清理、数据集成、数据选择、数据变换、数据挖掘、模式评估、知识表示等步骤。
1)数据清理。对不完整的、不明确的、大量的并且包含噪声,具有很大随机性的实际应用数据进行清洗,包括清除噪声、推导计算填补缺省和不完整数据、修正异常数据和清除重复数据。该步骤需要领域知识的判断和选择恰当的清洗方法。
2)数据集成。把来源不同、格式不同、特点和性质也不尽相同的数据进行物理上或者逻辑上的有机集成,为后续的一系列数据处理做好准备。该步骤的实现需要处理好数据类型不同、数据所在平台不同、操作系统不同所造成的数据格式上的差异。
3)数据选择。根据任务目标,从集成好的、包含大量数据的数据集中发现与选择相关数据集,将其抽取出来,得到具体挖掘任务的相应操作对象。
4)数据变换。转换数据类型是将数据转换成适合被挖掘的数据形式。例如,将离散值型数据转换为连续值型以利于进行神经网络计算,或是将连续值型数据转换成离散型数据以方便进行符号归纳操作。数据变换还有一个重要的目的就是数据降维,即找出真正有用的特征或变量表示数据。
5)数据挖掘。数据挖掘方法目前已经呈现出丰富多彩的形式,其原因在于数据挖掘在研究和发展过程中不断将各学科领域的知识、技术与研究成果融入其中。从统计学角度看,目前统计分析领域主要使用的数据挖掘方法有回归分析、*近序列分析、时间序列分析、非线性分析、线性分析、*近邻算法分析、多变量分析、单变量分析、聚类分析等。通过使用这些方法能够找出表现异常的数据,再使用一系列数学或统计模型对其进行解释,揭示出隐含在这些数据中的规律、模式和知识。
6)模式评估。使用某种手段对数据挖掘发现的模式进行度量和识别,对其有效性和可用性进行评估,即按照某一种兴趣度度量以找出表示知识的真正有价值的模式。
7)知识表示。对挖掘出的知识进行解释,将其转换成能够*终被用户理解的知识。
完成了整个数据挖掘过程,用户可以得到
展开