数据挖掘介绍

数据挖掘介绍

    数据挖掘(Data Mining)是一个多学科交叉研究领域,它融合了数据库(Database)技术、人工智能(Artificial Intelligence)、机器学习(Machine Learning)、统计学(Statistics)、知识工程(Knowledge Engineering)、面向对象方法(Object-Oriented Method)、信息检索(Information Retrieval)、高性能计算(High-Performance Computing)以及数据可视化(Data Visualization)等最新技术的研究成果。经过十几年的研究,产生了许多新概念和方法。特别是最近几年,一些基本概念和方法趋于清晰,它的研究正向着更深入的方向发展。数据挖掘之所以被称为未来信息处理的骨干技术之一,主要在于它以一种全新的概念改变着人类利用数据的方式。二十世纪,数据库技术取得了决定性的成果并且已经得到广泛的应用。但是,数据库技术作为一种基本的信息存储和管理方式,仍然以联机事务处理(OLTP:On-Line Transaction Processing)为核心应用,缺少对决策、分析、预测等高级功能的支持机制。众所周知,随着数据库容量的膨胀,特别是数据仓库(Data Warehouse)以及Web等新型数据源的日益普及,联机分析处理(OLAP:On-Line Analytic Processing)、决策支持(Decision Support)以及分类(Classification)、聚类(Clustering)等复杂应用成为必然。面对这一挑战,数据挖掘和知识发现(Knowledge Discovery)技术应运而生,并显示出强大的生命力。数据挖掘和知识发现使数据处理技术进入了一个更高级的阶段。它不仅能对过去的数据进行查询,并且能够找出过去数据之间的潜在联系,进行更高层次的分析,以便更好地作出理想的决策、预测未来的发展趋势等。
1.1 研究背景
    经过十几年的研究和实践,数据挖掘技术已经吸收了许多学科的最新研究成果而形成独具特色的研究分支。勿容置疑,数据挖掘研究和应用具有很大的挑战性。象其它新技术的发展历程一样,数据挖掘也必须经过概念提出、概念接受、广泛研究和探索、逐步应用和大量应用等阶段。从目前的现状看,大部分学者认为数据挖掘的研究仍然处于广泛研究和探索阶段。一方面,数据挖掘的概念已经被广泛接受。在理论上,一批具有挑战性和前瞻性的问题被提出,吸引越来越多的研究者。数据挖掘的概念从二十世纪八十年代被提出后,其经济价值已经显现出来,而且被众多商业厂家所推崇,形成初步的市场。另一方面,目前的数据挖掘系统研制也决不是象一些商家为了宣传自己商品所说的那样神奇,仍有许多问题需要研究和探索。把目前数据挖掘的研究现状描述为鸿沟(Chasm)阶段是比较准确的[1]。所谓Chasm阶段是说数据挖掘技术在广泛被应用之前仍有许多“鸿沟”需要攀越。例如,就目前商家推出的数据挖掘系统而言,它们都是一些通用的辅助开发工具。这些工具只能给那些熟悉数据挖掘技术的专家或高级技术人员使用,仅对专业人员开发对应的应用起到加速或横向解决方案(Horizontal Solution)的作用。但是,数据挖掘来自于商业应用,而商业应用又会由于应用的领域不同而存在很大差异。大多数学者赞成这样的观点:数据挖掘在商业上的成功不能期望通用的辅助开发工具,而应该是数据挖掘概念与特定领域商业逻辑相结合的纵向解决方案(Vertical Solution)[1] 。
分析目前的研究和应用现状,数据挖掘在如下几个方面需要重点开展工作:
    数据挖掘技术与特定商业逻辑的平滑集成问题。它包括领域知识对行业或企业知识挖掘的约束与指导、商业逻辑有机嵌入数据挖掘过程等关键课题。
    数据挖掘技术与特定数据存储类型的适应问题。不同的数据存储方式会影响数据挖掘的具体实现机制、目标定位、技术有效性等。指望一种通用的应用模式适合所有的数据存储方式下发现有效知识是不现实的。因此,针对不同数据存储类型的特点,进行针对性研究是目前流行而且也是将来一段时间所必须面对的问题。
    数据挖掘系统的构架与交互式挖掘技术。虽然经过多年的探索,数据挖掘系统的基本构架和过程已经趋于明朗,但是受应用领域、挖掘数据类型以及知识表达模式等的影响,在具体的实现机制、技术路线以及各阶段或部件(如数据清洗、知识形成、模式评估等)的功能定位等方面仍需细化和深入研究。由于数据挖掘是在大量的源数据集中发现潜在的、事先并不知道的知识,因此和用户交互式进行探索性挖掘是必然的。这种交互可能发生在数据挖掘的各个不同阶段,从不同角度或不同粒度进行交互。所以良好的交互式挖掘(Interaction Mining)也是数据挖掘系统成功的前提。
    数据挖掘语言与系统的可视化问题。对OLTP应用来说,结构化查询语言SQL已经得到充分发展,并成为支持数据库应用的重要基石。但是,对于数据挖掘技术而言,由于诞生的较晚,加之它相比OLTP应用的复杂性,开发相应的数据挖掘操作语言仍然是一件极赋挑战性的工作。可视化要求已经成为目前信息处理系统的必不可少技术。对于一个数据挖掘系统来说,它更是重要的。可视化挖掘除了要和良好的交互式技术结合外,还必须在挖掘结果或知识模式的可视化、挖掘过程的可视化以及可视化指导用户挖掘等方面进行探索和实践。
    数据挖掘理论与算法研究。经过十几年的研究,数据挖掘已经在继承和发展相关基础学科(如机器学习、统计学等)已有成果方面取得了可喜的进步,探索出了许多独具特色的理论体系。但是,这决不意味着挖掘理论的探索已经结束,恰恰相反它留给了研究者丰富的理论课题。一方面,在这些大的理论框架下有许多面向实际应用目标的挖掘理论等待探索和创新。另一方面,随着数据挖掘技术本身和相关技术的发展,新的挖掘理论的诞生是必然的,而且可能对特定的应用产生推动作用。新理论的发展必然促进新的挖掘算法的产生,这些算法可能扩展挖掘的有效性,如针对数据挖掘的某些阶段、某些数据类型、大容量源数据集等更有效;可能提高挖掘的精度或效率;可能融合特定的应用目标,如CRM、电子商务等。因此,对数据挖掘理论和算法的探讨将是长期而艰巨的任务。
    从上面的叙述,可以看出数据挖掘研究和探索的内容是及其丰富和具有挑战性的。

数据挖掘技术
    数据挖掘作为一个只有十几年研究历史的较新研究领域,许多概念和技术是逐步发展起来的。
2.1 数据挖掘技术的产生背景
2.1.1 数据挖掘技术的商业需求分析
    数据挖掘之所以吸引专家学者的研究兴趣和引起商业厂家的广泛关注,主要在于大型数据系统的广泛使用和把数据转换成有用知识的迫切需要。60年代,为了适应信息的电子化要求,信息技术一直从简单的文件处理系统向有效的数据库系统变革。70年代,数据库系统的三个主要模式――层次、网络和关系型数据库的研究和开发取得了重要进展。80年代,关系型数据库及其相关的数据模型工具、数据索引及数据组织技术被广泛采用,并且成为了整个数据库市场的主导。80年代中期开始,关系数据库技术和新型技术的结合成为数据库研究和开发的重要标志。从数据模型上看,诸如扩展关系、面向对象、对象-关系(Object-Relation)以及演绎模型等被应用到数据库系统中。从应用的数据类型上看,包括空间、时态、多媒体以及WEB等新型数据成为数据库应用的重要数据源。同时,事务数据库(Transaction Database)、主动数据库(Active Database)、知识库(Knowledge Base)、办公信息库(Information Base)等技术也得到蓬勃发展。从数据的分布角度看,分布式数据库(Distributed Database)及其透明性、并发控制、并行处理等成为必须面对的课题。进入90年代,分布式数据库理论上趋于成熟,分布式数据库技术得到了广泛应用。目前,由于各种新型技术与数据库技术的有机结合,使数据库领域中的新内容、新应用、新技术层出不穷,形成了庞大的数据库家族。但是,这些数据库的应用都是以实时查询处理技术为基础的。从本质上说,查询是对数据库的被动使用。由于简单查询只是数据库内容的选择性输出,因此它和人们期望的分析预测、决策支持等高级应用仍有很大距离。
    新的需求推动新的技术的诞生。数据挖掘的灵魂是深层次的数据分析方法。数据分析是科学研究的基础,许多科学研究都是建立在数据收集和分析基础上的。同时在目前的商业活动中,数据分析总是和一些特殊的人群的高智商行为联系起来,因为并不是每个平常人都能从过去的销售情况预测将来发展趋势或作出正确决策的。但是,随着一个企业或行业业务数据的不断积累,特别是由于数据库的普及,人工去整理和理解如此大的数据源已经存在效率、准确性等问题。因此,探讨自动化的数据分析技术,为企业提供能带来商业利润的决策信息而成为必然。
事实上,数据(Data)、信息(Information)和知识(Knowledge)可以看作是广义数据表现的不同形式[3]。毫不夸张地说,人们对于数据的拥有欲是贪婪的,特别是计算机存储技术和网络技术的发展加速了人们收集数据的范围和容量。这种贪婪的结果导致了“数据丰富而信息贫乏(Data Rich & Information Poor)”现象的产生。数据库是目前组织和存储数据的最有效方法之一,但是面对日益膨胀的数据,数据库查询技术已表现出它的局限性。直观上说,信息或称有效信息是指对人们有帮助的数据。例如,在现实社会中,如果人均日阅读时间在30分钟的话,一个人一天最快只能浏览一份20版左右的报纸。如果你订阅了100份报纸,其实你每天也不过只阅读了一份而已。面对计算机中的海量的数据,人们也处于同样的尴尬境地,缺乏获取有效信息的手段。知识是一种概念、规则、模式和规律等。它不会象数据或信息那么具体,但是它却是人们一直不懈追求的目标。事实上。在我们的生活中,人们只是把数据看作是形成知识的源泉。我们是通过正面的或反面的数据或信息来形成和验证知识的,同时又不断地利用知识来获得新的信息。因此,随着数据的膨胀和技术环境的进步,人们对联机决策和分析等高级信息处理的要求越来越迫切。在强大的商业需求的驱动下,商家们开始注意到有效地解决大容量数据的利用问题具有巨大的商机;学者们开始思考如何从大容量数据集中获取有用信息和知识的方法。因此,在二十世纪八十年代后期,产生了数据仓库和数据挖掘等信息处理思想。
2.1.2 数据挖掘产生的技术背景分析
    任何技术的产生总是有它的技术背景的。数据挖掘技术的提出和普遍接受是由于计算机及其相关技术的发展为其提供了研究和应用的技术基础。
    归纳数据挖掘产生的技术背景,下面一些相关技术的发展起到了决定性的作用:
    数据库、数据仓库和Internet等信息技术的发展;
    计算机性能的提高和先进的体系结构的发展;
    统计学和人工智能等方法在数据分析中的研究和应用。
    数据库技术从二十世纪80年代开始,已经得到广泛的普及和应用。在关系型数据库的研究和产品提升过程中,人们一直在探索组织大型数据和快速访问的相关技术。高性能关系数据库引擎以及相关的分布式查询、并发控制等技术的使用,已经提升了数据库的应用能力。在数据的快速访问、集成与抽取等问题的解决上积累了经验。数据仓库作为一种新型的数据存储和处理手段,被数据库厂商普遍接受并且相关辅助建模和管理工具快速推向市场,成为多数据源集成的一种有效的技术支撑环境。另外,Internet的普及也为人们提供了丰富的数据源。据说,在美国电视达到5000万户大约用了15年,而Internet上网达到5000万户仅用了4年。而且Internet技术本身的发展,已经不光是简单的信息浏览,以Web计算为核心的的信息处理技术可以处理Internet环境下的多种信息源。因此,人们已经具备利用多种方式存储海量数据的能力。只有这样,数据挖掘技术才能有它的用武之地。这些丰富多彩的数据存储、管理以及访问技术的发展,为数据挖掘技术的研究和应用提供了丰富的土壤。
    计算机芯片技术的发展,使计算机的处理和存储能力日益提高。大家熟知的摩尔定律告诉我们,计算机硬件的关键指标大约以每18个月翻一番的速度在增长,而且现在看来仍有日益加速的趋势。随之而来的是硬盘、CPU等关键部件的价格大幅度下降,使得人们收集、存储和处理数据的能力和欲望不断提高。经过几十年的发展,计算机的体系结构,特别是并行处理技术已经逐渐成熟和普遍应用,并成为支持大型数据处理应用的基础。计算机性能的提高和先进的体系结构的发展使数据挖掘技术的研究和应用成为可能。
历经了十几年的发展,包括基于统计学、人工智能等在内的理论与技术性成果已经被成功地应用到商业处理和分析中。这些应用从某种程度上为数据挖掘技术的提出和发展起到了极大地推动作用。数据挖掘系统的核心模块技术和算法都离不开这些理论和技术的支持。从某种意义讲,这些理论本身发展和应用为数据挖掘提供了有价值的理论和应用积累。数理统计是一个有几百年发展历史的应用数学学科。然而它和数据库技术的结合性研究应该说最近十几年才被重视。以前的基于数理统计方法的应用大多都是通过专用程序来实现的。我们知道,大多数的统计分析技术是基于严格的数学理论和高超的应用技巧的,这使得一般的用户很难从容地驾驭它。数据挖掘技术是数理统计分析应用的延伸和发展,假如人们利用数据库的方式从被动地查询变成了主动发现知识的话,那么概率论和数理统计这一古老的学科可以为我们从数据归纳知识――数据挖掘技术提供理论基础。
    人工智能是计算机科学研究中争议最多但是仍始终保持强大生命的研究领域。机器学习应该说是得到了充分的研究和发展,并且数据挖掘技术继承了机器学习解决问题的思想。专家系统(Expert System)曾经被认为人工智能向着实用性方向发展的最有希望的技术,但是,这种技术也逐渐表现出投资大、主观性强、应用面窄等致命弱点。例如,知识获取被普遍认为是专家系统研究中的瓶颈问题。另外,由于专家系统是主观整理知识,因此这种机制不可避免地带有偏见和错误。数据挖掘继承了专家系统的高度实用性特点,并且以数据为基本出发点,客观地挖掘知识。因此,可以说,数据挖掘研究在继承已有的人工智能相关领域的研究成果的基础上,摆脱了以前象牙塔式研究模式,真正开始客观地从数据集中发现蕴藏的知识。
2.2 数据挖掘概念
2.2.1 从商业角度看数据挖掘技术
    数据挖掘从本质上说是一种新的商业信息处理技术。数据挖掘技术把人们对数据的应用,从低层次的联机查询操作,提高到决策支持、分析预测等更高级应用上。它通过对这些数据进行微观、中观乃至宏观的统计、分析、综合和推理,发现数据间的关联性、未来趋势以及一般性的概括知识等,这些知识性的信息可以用来指导高级商务活动。
从决策、分析和预测等高级商业目的看,原始数据只是未被开采的矿山,需要挖掘和提炼才能获得对商业目的有用的规律性知识。这正是数据挖掘这个名字的由来。所以,从商业角度看,数据挖掘就是按企业的既定业务目标,对大量的企业数据进行深层次分析以揭示隐藏的、未知的规律性并将其模型化,从而支持商业决策活动。从商业应用角度刻画数据挖掘,可以使我们更全面的了解数据挖掘的真正含义。它有别于机器学习等其它研究领域,从它的提出之日起就具有很强的商业应用目的。同时,数据挖掘技术只有面向特定的商业领域才有应用价值。数据挖掘并不是要求发现放之四海而皆准的真理,所有发现的知识都是相对的,并且对特定的商业行为才有指导意义。
2.2.2 数据挖掘的技术含义
    谈到数据挖掘,必须提到数据库中的知识发现(KDD: Knowledge Discovery in Databases)。关于KDD与Data Mining的关系,有许多不同的看法。我们可以从这些不同的观点中了解数据挖掘的技术含义。
(1) KDD看成数据挖掘的一个特例
    既然数据挖掘系统可以在关系数据库、事务数据库、数据仓库、空间数据库(Spatial Database)、文本数据(Text Data)以及诸如WEB等多种数据组织形式中挖掘知识,那么数据库中的知识发现只是数据挖掘的一个方面。这是早期比较流行的观点,在许多文献可以看到这种说法[4,5]。因此,从这个意义说,数据挖掘就是从数据库、数据仓库以及其它数据存储方式中挖掘有用知识的过程。这种描述强调了数据挖掘在源数据形式上的多样性。
(2) 数据挖掘是KDD过程的一个步骤
    例如,在“知识发现96国际会议” 上,许多学者建议对这两个名词加以区分[6]。核心思想是:KDD是从数据库中发现知识的全部过程,而Data Mining则是此全部过程的一个特定的、关键步骤。这种观点有它的合理性。虽然我们可以从数据仓库、WEB等源数据中挖掘知识,但是这些数据源都是和数据库技术相关的。数据仓库是由源数据库集成而来的,即使是像WEB这样的数据源恐怕也离不开数据库技术来组织和存储抽取的信息。因此KDD是一个更广义的范畴,它包括数据清洗、数据集成、数据选择、数据转换、数据挖掘、模式生成及评估等一系列步骤。这样,我们可以把KDD看作是一些基本功能构件的系统化协同工作系统,而数据挖掘则是这个系统中的一个关键的部分。源数据经过清洗和转换等成为适合于挖掘的数据集,数据挖掘在这种具有固定形式的数据集上完成知识的提炼,最后以合适的知识模式用于进一步分析决策工作。从这种狭义的观点上,我们可以定义数据挖掘是从特定形式的数据集中提炼知识的过程。数据挖掘作为KDD的一个重要步骤看待,可以使我们更容易聚焦研究重点,有效解决问题。目前,人们在数据挖掘算法的研究上,基本属于这样的范畴。
(3)KDD与Data Mining含义相同
    有些人认为,KDD与Data Mining只是叫法不一样,它们的含义基本相同。事实上,在现今的文献中,许多场合,如技术综述等,这两个术语仍然不加区分地使用着。也有人说,KDD在人工智能界更流行;Data Mining在数据库界使用更多。所以,从广义的观点,数据挖掘是从大型数据集(可能是不完全的、有噪声的、不确定性的、各种存储形式的)中,挖掘隐含在其中的、人们事先不知道的、对决策有用的知识的过程。
    从上面的描述中可以看出,数据挖掘概念可以在不同的技术层面上来理解,但是其核心仍然是从数据中挖掘知识。所以,有人说叫知识挖掘更合适[1]。本文除了在第2章使用数据挖掘的广义定义外,为了避免引起混淆,其它章节宁愿使用数据挖掘的狭义定义。
2.2.3 数据挖掘研究的理论基础
    谈到知识发现和数据挖掘,必须进一步阐述它的研究的理论基础问题。虽然关于数据挖掘的理论基础问题仍然没有到完全成熟的地步,但是分析它的发展可以使我们对数据挖掘的概念更清楚。坚实的理论是我们研究、开发、评价数据挖掘方法的的基石。经过十几年的探索,一些重要的理论框架已经形成,并且吸引着众多的研究和开发者为此进一步工作,向着更深入的方向发展。
数据挖掘方法可以是基于数学理论的,也可以是非数学的;可以是演绎的,也可以是归纳的。从研究的历史看,它们可能是数据库、人工智能、数理统计、计算机科学以及其它方面的学者和工程技术人员,在数据挖掘的探讨性研究过程中创立的理论体系。1997年,Mannila对当时流行的数据挖掘的理论框架给出了综述[7]。结合最新的研究成果,有下面一些重要的理论框架可以帮助我们准确地理解数据挖掘的概念与技术特点:
(1) 模式发现(Pattern Discovery)架构
    在这种理论框架下,数据挖掘技术被认为是从源数据集中发现知识模式的过程[1,2,4] 。这是对机器学习方法的继承和发展,是目前比较流行的数据挖掘研究与系统开发架构。按着这种架构,我们可以针对不同的知识模式的发现过程进行研究。目前,在关联规则、分类/聚类模型、序列模式(Sequence Model)以及决策树(Decision Tree)归纳等模式发现的技术与方法上取得了丰硕的成果。近几年,也已经开始多模式的知识发现的研究。
(2) 规则发现(Rule Discovery)架构
    Agrawal等综合机器学习与数据库技术,将三类数据挖掘目标即分类、关联及序列作为一个统一的规则发现问题来处理[2,5]。他们给出了统一的挖掘模型和规则发现过程中的几个基本运算,解决了数据挖掘问题如何映射到模型和通过基本运算发现规则的问题。这种基于规则发现的数据挖掘构架也是目前数据挖掘研究的常用方法。
( 3) 基于概率和统计理论
    在这种理论框架下,数据挖掘技术被看作是从大量源数据集中发现随机变量的概率分布情况的过程[1,8] 。例如,贝叶斯置信网络模型等。目前,这种方法在数据挖掘的分类和聚类研究和应用中取得了很好的成果。这些技术和方法可以看作是概率理论在机器学习中应用的发展和提高。统计学作为一个古老的学科,已经在数据挖掘中得到广泛的应用。例如,传统的统计回归法在数据挖掘中的应用。特别是,最近十年,统计学已经成为支撑数据仓库、数据挖掘技术的重要理论基础。实际上,大多数的理论构架都离不开统计方法的介入,统计方法在概念形成、模式匹配以及成分分析等众多方面都是基础中的基础。
(4) 微观经济学观点(Microeconomic View)
    在这种理论框架下,数据挖掘技术被看作是一个问题的优化过程[9] 。1998年,Kleinberg等人建立了在微观经济学框架里判断模式价值的理论体系。他们认为,如果一个知识模式对一个企业是有效的话,那么它就是有趣的。有趣的模式发现是一个新的优化问题,可以根据基本的目标函数,对“被挖掘的数据”的价值提供一个特殊的算法视角,导出优化的企业决策。
(5) 基于数据压缩(Data Compression)理论
    在这种理论框架下,数据挖掘技术被看作是对数据的压缩的过程[10] 。按着这种观点,关联规则、决策树、聚类等算法实际上都是对大型数据集的不断概念化或抽象的压缩过程。按Chakrabarti等人的描述,最小描述长度(MDL Minimum Description Length )原理可以评价一个压缩方法的优劣,即最好的压缩方法应该是概念本身的描述和把它作为预测器的编码长度都最小[10]。
(6) 基于归纳数据库(Inductive Database)理论
    在这种理论框架下,数据挖掘技术被看作是对数据库的归纳的问题[1,11] 。一个数据挖掘系统必须具有原始数据库和模式库,数据挖掘的过程就是归纳的数据查询过程。这种构架也是目前研究者和系统研制者倾向的理论框架。
(7) 可视化数据挖掘(Visual Data Mining)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值