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