我们把从庞大的数据集或数据库中提炼有用信息的科学称为数据挖掘。它汇集了统计学、机器学习、数据库、模式识别、人工智能等学科的内容,是一门新兴的交叉学科。这些学科都致力于数据分析的某一个方面,因此它们有很多共性——但是每一学科又有其独有的特色,分别针对不同的问题和求解的不同方式。
由于数据挖掘涵盖了计算机科学和统计学中的很多主题,所以要在一本书中覆盖所有的相关材料是个可能的。因此,我们把焦点集中在那些我们认为特别重要的主题上。
从教学的角度来讲,本书主要适合于希望学习数据挖掘基本原理的较高年级(最后一年)大学生,或者是一、二:年级的研究生;本书对于那些旨在更好地了解数据挖掘方法和技术的研究者和实践者也是有价值的。本书假定读者已经熟悉了概率论、微积分、线性代数和优化等学科中的基本概念——也就是说,诸如工.程学、计算机科学、数学和经济学等专业的大学学历背景会为阅读和理解本书提供一个很好的基础。
目前,已经出版了许多关于数据挖掘的书籍,但其中大多数都是直接面向商业应用的,着重于特定的方法和算法(例如决策树分类),而不是一般性原理(例如参数估计和计算复杂性)。这些书对于一般了解和实例研究是很有价值的,但对于课堂教学来说有很多不足,因为底层的基本原理经常被忽略掉了。也有一些数据挖掘方面的书具有很强的专业性,但迄今为止这些书绝大部分是从计算机科学的角度出发的,特别是从数据库角度( Han and Kamber,2000,该书中译本《数据挖掘:概念与技术》已由机械工业出版社出版。)或从机器学习的角度(Witten and Franke,2000,该书中译本即将由机械工业出版社出版)。
本书的侧重点有所不同。我们的目标是分析数据挖掘的最基本特征。我们没有用很长的篇幅来讨论特定的数据挖掘应用,比如协同过滤(collallorative fliterillg)、信用评分(creditscoring)以及欺诈探查(fraud detection)等,而是把焦点集中在这些应用所依赖的基本原理和算法上。但这并不是说本书忽视了应用,因为从根本上讲数据挖掘就是一门应用性学科。我们始终记着这一点,在探讨基本理论的同时,也介绍了非常多的可以运用(或者已经运用了)该理论的具体应用和研究实例。
我们认为,要精通数据挖掘既需要理解统计学又要理解计算科学。要掌握这两个不同的专业领域,不论对学生还是对老师来说都是一个比较大的挑战。对于一般的计算机科学家来说,统计学著作是相当难以理解的:冗长而枯燥的专业术语、隐含的假定、渐近性的证明,而且缺乏这些理论和数学概念究竟是如何在实际数据分析算法中真正实现的细节。对统计学家来说情况恰好相反:关于机器学习和数据挖掘的计算机科学文献中充满了对算法、伪代码、计算效率等的讨论,但往往却很少提到潜在的模型或推理过程。尽管如此,这两个学科对于处理庞大数据集来说都是至关重要的。既可以从“数学模型”角度,又可以从“计算算法”角度理解数据挖掘是正确把握其复杂性的关键。
在本书中,我们试图架起一座沟通这两个世界的桥梁,目的是把统计建模的思想和“现实世界”中的实际计算方法和算法联系起来。
本着这一宗旨,我们以一种有些与众不同的方式组织了本书的结构。首先我们讨论了建模和推理的基本原理,然后介绍了数据挖掘算法的系统框架——一通过各种计算方法和算法把模型与数据联系起来,最后结合诸如分类和回归这样的具体技术例释了这些思想。因此,本书可分为三大部分:
1.基础第1章到第4章着重讨论数据和数据分析的基本原理。介绍了数据挖掘(第1章)、测量(第2章)、可视化数据(第3章)、不确定性和推理(第4章)的基本原理。
2,数据挖掘组件第5章到第8章着重讨论用以系统地创建和分析数据挖掘算法的各个标准部件,即我们所称的数据挖掘算法“组件”。第5章主要讨论分析算法的系统方法,我们认为这种“分组件”的方法为那些刚刚接触数据挖掘这一学科的初学者提供了一种非常有用的视角,可以系统地透视数据分析算法中那些非常容易令人困惑的地方。而后在这一框架下,我们对每个组件进行了广泛深入的讨论,第6章讨论模型表示方法,第7
章讨论用来拟合模型和数据的评分函数,第8章讨论优化和搜索技术(数据管理在第12章讨论)。
3.数据挖掘任务和算法本书的前8章已经对数据挖掘的基本原理和组件进行了讨论,余下的章节(第9章到第14章)则致力于特定的数据挖掘任务以及针对这些任务的算法。我们将某本的数据挖掘任务组织成以下几类:密度估计和聚类(第9章)、分类(第10章)。回归(第11章)、模式发现(第13章)以及根据内容检索(第14章)。在这些章节中我们使用了第一二部分所建立的框架结构,讨论了针对每一项任务的具体算法。例如,在对分类的讨论中,我们回答了这些问题:哪些模型和表示是值得考虑和有价值的?我们可以使用或者
应该用哪些评分函数来训练分类器?哪些优化和搜索技术是必要的?一旦我们使用了某种方法来实际实现算法时,这个算法的复杂度如何?我们希望这种通用的方法使读者认识到,数据挖掘算法是建立在一些非常通用的系统原理之上的,而不是简单地将一些看起来并不相关的牛僻算法堆积在一起。
如果将本书用于教学的话,那么正如在前面所提到的,本书的目标读者是具有以下专业背景的大学生:计算机科学、工程学、数学、自然科学以及像经济学这样的面向商业的很多专业。从教师的角度来说,在课程中应该如何覆盖本书的内容主要依赖于课时长度(例如1O周还是15周)和学生对统计学和机器学习等基本概念的熟悉程度。举例来说,如果是为具有统计学基本概念的一年级研究生开设的10周长度的课程,那么教师可以简单地讲述前面的章节,提纲挈领地讨论第3章、第4章、第5章和第7章;并将第1章、第2章、第6章和第8章作为背景/补充读物要求学生阅读;然后把10周中的大部分时间放在第9章到第14章的内容上,对这些内容进行深入的讨论。
然而,许多同学和读者可能只有很少的或根本没有正式的统计学背景。令人遗憾的是许多理工科专业(例如计算机科学)的本科生或研究生只有非常有限的统计学知识,他们对许多现代程序中的统计思想知之甚少。由于本书很大程度上是从统计学的角度来讨论数据挖掘的,所以我们在计算机系学生中使用本书草稿的经验告诉我们:对于许多学生来说,在10周或15周的课程时间中掌握本书是一个不小的挑战,因为要完全吸收所有内容,他们必须掌握第2章到第8章中提到的相当大范围的统计学、数学和算法概念。因此,在教学或第一遍阅读时,可以跳过本书的一些章节,以降低难度。例如,本书第11章中的回归可能是最具数学挑战件的章节,而跳过这一内容也不会影响对其他内容的理解。同样,第9章中的某些内容(比如说有关混合模型的内容)也可以跳过;第4章中的贝叶斯估计框架也如此。那么哪些内容是阅读的关键呢?我们认为第1章到第5章和第7章、第8章和第12章中的绝大多数内容对学生来说是必须掌握的,这些内容是掌握后续章节中的模型和算法思想(第6
章包含了很多关于一般建模概念的有价值的内容,但是篇幅相当长,所以可以跳过以缩短时间)的关键。第9章、第10章、第11章、第13章和第14章是“针对各种任务”的,这些章的内容是彼此相对独立的,所以可以任意选择其中的一些章节(但是前提是已经相当好地掌握了第l章到第8章中的内容)。
建议那些仅具有很少统计学知识的学生,在学习本书第4章(关于不确定性)之前,应该复习一下概率论和统计学中的一些基本概念。如果连诸如条件概率和期望这样的基本概念都还没有熟练掌握的话,那么就会在第4章及以后章节的学习中遇到相当大的困难。本书附录中简要介绍了常见分布的定义和基本的概率知识,不过许多学生可能喜欢在学习新东西之前再复习他们大学期间的概率论和统计学教材。
另一方面,对于那些具有坚实统计学背景的读者(例如统计专业学生或是对数据挖掘有兴趣的统计学家)来说,本书的绝大部分内容看起来相当熟悉,甚罕有的统计学读者可能会倾向于说:“咳,这本数据挖掘的材料在很多方面与应用统计学的内容非常相似啊!”这句话确实多少有些道理,因为数据挖掘技术(在我们看来)在相当大的程度上依赖于统计模型和方法。然而,统计学者在本书的很多地方都会很容易地发现相当多的新内容:第1章的总括部分。第5章的算法观点、第7章的评分函数观点、从第12章到第14章的数据库原理、模
式发现以及根据内容检索等。另外,我们还从数据挖掘的角度展示了许多传统的统计学概念 (例如分类、聚类和回归等),以及在普通统计学教材中通常不包括的有关算法和计算复杂度的十富内容。包括如何将各种技术运用到不同的数据挖掘应用中。虽然如此,统计学者还是会介本书中发现许多熟悉的材料。如果要从计算和数据管理的角度讨论数据挖掘,那么可以参阅参考文献中列出的Han and Kamber(2000);如果需要侧重于商业应用的材料,那么可以参阅参考文献中列出的Beny and Linoff(2000)。这些教材可以作为课堂教学的补充读物。
总而产之,本书讨论了用于数据挖掘的各种上具,并将它们分解为不同的组成部分,以便看到各个组成部分问的相互关系和结构。本书不仅给出了如何设计这些工具的内幕,而且力图使读者介血临特定的问题时,能够独立设计出合适的数据挖掘工具。本书也阐释了为什说数据挖掘是一个过程——不是那些一蹴而就的任务,而是一种“发现——表示——再调查”的持续过程。本书也包含了大量针对现实数据的应用,其中很多是从作者本人所从事的科研和应用研究中选摘的。为了教学的方便,所有讨论的数据集合并非都是很大,因为这样解释起来更加简单。而且一旦领会了其中的思想,就可以很容易地把这些思想应用到现实大小的数据集中。
. 综上所述,数据挖掘技术的确是一门令人兴奋的学科。当然,和所有的科研事业都一样,许多努力将是没有回报的(做一项保证会成功的研究,这样的情况是罕见的,而且也是乏味的)。但是一旦一个令人兴奋的发现(信息的宝石)“出土”,这些努力也就获得了成倍的补偿。我们希望本书能够激励读者前进并发现自己的宝石!
我们衷心地感谢Christine McLaren允许我们使用红血球数据作为第9章和第10章的演示实例。Padhraic Smyth在本书中的上作受到了美国国家科学基金会(Grant IRI-9703120)的部分支持。
我们还要感谢Niall Adams帮助制作了本书的部分图表,Tom Benton帮助完成了样稿的校对,以及XianPing Ge对参考书目的格式化。当然,本书中一定还存在很多错误,这是作者应该负责的(不过,我们三个中的每一个都保留了责备其他两个人的权利)。
最后,我们还要感谢我们各自的妻子和家庭,在写作本书的漫长而且看似没有终点的整个过程中,她们为我们提供了极大的鼓励和支持!