您确定要删除吗?

取消
首页 算法大全 应用模型 分析软件 算法学院数据中心 关于本站
在线咨询
400-820-6981
意见反馈
返回顶部

数据挖掘技术及其应用的实现

发布时间:2016-11-14

一、引言: 

数据是知识的源泉。但是,拥有大量的数据与拥有许多有用的知识完全是两回事。过去几年中,从数据库中发现知识这一领域发展的很快。广阔的市场和研究利益促使这一领域的飞速发展。计算机技术和数据收集技术的进步使人们可以从更加广泛的范围和几年前不可想象的速度收集和存储信息。收集数据是为了得到信息,然而大量的数据本身并不意味信息。尽管现代的数据库技术使我们很容易存储大量的数据流,但现在还没有一种成熟的技术帮助我们分析、理解并使数据以可理解的信息表示出来。在过去,我们常用的知识获取方法是由知识工程师把专家经验知识经过分析、筛选、比较、综合、再提取出知识和规则。然而,由于知识工程师所拥有知识的有局限性,所以对于获得知识的可信度就应该打个 折扣。目前,传统的知识获取技术面对巨型数据仓库无能为力,数据挖掘技术就应运而生。 

  数据的迅速增加与数据分析方法的滞后之间的矛盾越来越突出,人们希望在对已有的大量数据分析的基础上进行科学研究、商业决策或者企业管理,但是目前所拥有的数据分析工具很难对数据进行深层次的处理,使得人们只能望“数”兴叹。数据挖掘正是为了解决传统分析方法的不足,并针对大规模数据的分析处理而出现的。数据挖掘通过在大量数据的基础上对各种学习算法的训练,得到数据对象间的关系模式,这些模式反映了数据的内在特性,是对数据包含信息的更高层次的抽象[1]。目前,在需要处理大数据量的科研领域中,数据挖掘受到越来越多的关注,同时,在实际问题中,大量成功运用数据挖掘的实例说明了数据挖掘对科学研究具有很大的促进作用。数据挖掘可以帮助人们对大规模数据进行高效的分析处理,以节约时间,将更多的精力投入到更高层的研究中,从而提高科研工作的 效率。 

二、知识获取与数据挖掘 

一般说来,知识获取(Knowledge Discovery inDatabases,称称KDD)意为数据库中知识获取,它代表从低层次数据中提取高层次知识的全过程,包括数据信息的收集,数据原型的确定,相关函数的分析,知识的抽取和数据模式分析。统计学中常指的是无假设证实所进行的数据测量和分析。而数据挖掘则是指从数据中自动地抽取模型。数据挖掘包括许多步骤:从大规模数据库中(或从其他来源)取得数据;选择合适的特征属性;挑选合适的样本策略;剔除数据中不正常的数据并补足不够的部分;用恰当的降维、变换使数据挖掘过程与数据模型相适合或相匹配;辨别所得到的是否是知识则需将得到的结果信息化或可视化,然后与现有的知识相结合比较。这些步骤是从数据到知识的必由之路。每一步骤都可能是成功的关键或失败的开始。在一般的定义中数据挖掘是知识获取的一部分。 

数据挖掘的研究领域涉及广泛,主要包括数据库系统,基于知识的系统,人工智能,机器学习,知识获取,统计学,空间数据库和数据可视化等领域。 

1)统计学 

统计学在数据样本选择、数据预处理及评价抽取知识的步骤中有非常重要的作用。以往许多统计学的工作是针对数据和假设检验的模型进行评价[2~4],很明显也包括了评价数据挖掘的结果。在数据预处理步骤中,统计学提出了估计噪声参数过程中要用的平滑处理的技术,在一定程度上对补足丢失数据有相当的作用。统计学对检测数据分析、聚类和实验数据参数设计上也有用。但统计学研究的焦点是在于处理小规模数据样本采集和小规模数据集处理的问题上。统计学的工作大多是针对技术和模型的理论方面。于是许多工作是着眼于线性模型、递 增的高斯噪声模型、参数估计和严格分类参数模型上。只有在进行相近模式区别时才强调寻优。大多数数据库用户并不具备恰当使用统计学知识的能力。实际上是要求有关数据库工程师或数据库系统的管理员运用关于数据选择的模型、相当多的域知识和数学知识的能力,在现实中是不大可能的。 

2)模式识别 

在模式识别工作中,传统上是把注意力集中在符号形式化直接结合实际技术的工作过程中[5~6]。模式识别主要用于分类技术和数据的聚类技术上。模式识别中的分类和含义分析是对数据挖掘概念形成的开端。多数模式识别的算法和方法对降维、变换和设置都有直接的参考意义。在数据挖掘的步骤中,模式识别比统计学更为重要,因为它强调了计算机算法、更加复杂的数据结构和更多的搜索。典型的数据分类是用一定的分类技术把数据从一个向量空间映射到另外一个向量空间。但这种映射并不总是有意义的。比如,形状上“方”与“圆”的差别就很难说比性别上“男”与“女”的差别大。显然,这其中应当注重其语言的含义。 

3)人工智能 

人工智能对于数据挖掘来说原来一直是在符号的层次上处理数据,而对于连续变量注意较少[1]。在机器学习和基于案例的推理中,分类和聚类算法着重于启发式搜索和非参数模型。对于其结果,并不象模式识别和统计学在数学上的精确和要求严格分析。随着计算机学习理论的发展。人工智能把注意力集中在了表达广义分类的模糊边缘上。机器学习主要是对数据挖掘过程中的数据变量选择处理极有帮助,在通过大量搜索表达式和选择变量上有很大作用。另外,机器学习对于发现数据结构,特别是人工智能中的不确定推理技术和基于贝叶斯模型推理是统计学意义上的分布密度估计的强有力的工具。人工智能技术建立了关于特定领域知识和数据的已有知识的相对容易理解和自然的框架。人工智能的其他技术,包括知识获取技术、知识搜索和知识表达在数据挖掘的数据变换、数据选择、数据预处理等步骤中都有作用。 

4)数据库 

数据库及其相关技术显然与数据挖掘有直接的关系。数据库是原始数据的处理、储存和操作的基础。随着平行和分布式数据库的使用,对数据录入和检索有更高的要求。数据挖掘中很重要的一个问题是对数据库中数据的在线分析,主要是如何利用多种方法对数据进行实时处理和分析[6~8]。一般来说,通过相关数据结构的标准化可以克服要求特殊存取数据的困难。在数据挖掘中为了对数据进行特定的统计和计数,则要对各个特征属性进行组合形成新的数据库。其中,对于数据挖掘所得知识支持率的研究是个新领域。为直接从数据库中发现联系规则, 经以产品的形式出现了依靠分析和分类表达式的新方法。此外,为了对数据库问题的求解和优化,利用新出现的数据库定向技术更加易于寻求数据库中隐含的模式。 

三、数据挖掘技术的方法 

  数据挖掘涉及的学科领域和方法很多,如多种分类法,根据开采任务分,可分为分类或预测模型发现、数据总结、聚类、关联规则发现、序列模式发现、依赖关系或依赖模型发现、异常和趋势发现等等;根据开采对象分,有关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、异 质数据库、遗产数据库以及环球网Web;根据开采方法分,可粗分为:机器学习方法、统计方法、神经网络方法和数据库方法。机器学习中,可细分为:归纳学习方法(决策树、规则归纳等)、基于范例学习、遗传算法等。统计方法中,可细分为:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析法、相关分析法等)等。神经网络方法中,可细分为:前向神经网络(BP算法等)、自组织神经网络(自组织特征映射、竞争学习等)等。数据库方法主要是多维数据分析或OLAP方法,另外还有面向属性的归纳方法。本文的实例中我们采用了一种基于分类的方法,它的优点是可以在较小的复杂度下,进行有效的挖掘。

四、数据挖掘技术的应用 

首先介绍一个著名的实例:SKICAT。然后结合实际具体探讨数据挖掘技术在Bayesian中的应用。 

(一)天文数据分析中的数据挖掘 

  数据挖掘在天文学上有一个非常著名的应用系统:SKICAT[3]。它是美国加州理工学院(CIT)与天文科学家合作开发的用于帮助天文学家发现遥远的类星体的一个工具。SKICAT既是第一个获得相当成功的数据挖掘应用,也是人工智能技术在天文学和空间科学上第一批成功应用之一。利用SKICAT,天文学家已发现了16个新的极其遥远的类星体,该项发现能帮助天文工作者更好地研究类星体的形成以及早期宇宙的结构。 

在天文学研究以及航天数据分析中,人们遇到了一个很大的难题,即人工对大批量数据分析的无能为力。这里所说的数据量一般在数千兆以上,现有的大型数据库只是把数据以另一种形式给出,而并没有对数据进行更深层次的处理,因而,在对大量天体数据进行分析的过程中,很难起到根本的促进作用。 

SKICAT不仅提供对数据库的管理,并且通过训练可以对天体进行辨识。它采用了模块化设计,共有三个主要功能模块:分类建立、分类管理及统计分析。其中,分类建立是通过有示范的训练建立对天体的辨识机制。对天体的辨识是进行其它数据分析的前提,只有将天体识别出来以后,如是星系还是星球,才能进行相应的研究。使用SKICAT对天体数据进行分析,一方面是通过机器学习将知识提取过程由学习算法完成,从而可以实现对大批量数据的分析,另一方面是辨识那些亮度很低、人工难以判读的天体图像,以进行后续分析。SKICAT通过有效地对天体图像的特征进行定义,对那些亮度较低的图像可以得到比人工分类更好的结果。将仅由象素包含的关于天体的多维信息通过变换形成低维空间内的向量空间,并进而利用示范学习进行分类,以达到人工直接观察无法达到的分类精度。 

(二)Bayesian网络中的数据挖掘 

  Bayesian网是由变量及其关联组成的有向图。它主要用于处理实际应用中遇到的不确定信息。图中还带有各变量的概率分布,定量的概率信息被表示为条件概率表中在决策前对实际问题的先验的理解与把握。 

然而,针对实际问题建立一个应用于决策的Bayesian网络时存在两个问题。首先,我们常常是凭个人对问题的经验与理解来建立模型的,因此建立的模型很难反映问题的客观实际。其二,在确定Bayesian网中的条件概率表时,我们需要用定量的数值以支持计算,但实际中,人们很难给出一个具体概率值,一般的应用往往是根据经验,这就要求我们有一个合理的方法,从大量杂乱无序的数据中将它们找到,并填入条件概率表中去。 

而数据挖掘技术恰恰为我们提供了一系列有效的方法来寻找隐藏于大规模数据之中的有用数据,以解决以上两个问题。在Bayesian建模中,我们需要找到各变量之间的关联,这种关联与关系数据库理论中的函数依赖(Functional Dependence)近似,后者表示了关系表中各属性(Attribute)之间的依赖关系,而前者表示Bayesian网中各变量是关系表中的属性时,两者的表示含义是一致而和谐的。因而,只要在关系表的元组中发掘出函数依赖,便可以认清Bayesian网中各变量之间的关系,