基本信息
- 原书名:Data Mining: Practical Machine Learning Tools and Techniques, Third Edition
- 原出版社: Morgan Kaufmann
- 作者: (新西兰)Ian H.Witten Eibe Frank Mark A.Hall
- 译者: 李川 张永辉
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111453819
- 上架时间:2014-5-7
- 出版日期:2014 年5月
- 开本:16开
- 页码:462
- 版次:3-1
- 所属分类:计算机 > 数据库 > 数据库存储与管理
教材

【插图】

编辑推荐
本书是机器学习和数据挖掘领域的经典畅销教材,被众多国外名校选用。书中不仅详细介绍机器学习的理论基础,还对实际工作中应用的相关工具和技术提出了一些建议。本版对上一版内容进行了全面更新,以反映自第2版出版以来数据挖掘的技术变革和新方法,包括数据转换、集成学习、大规模数据集、多实例学习方面的新材料,以及新版的Weka机器学习软件。
内容简介
计算机书籍
《数据挖掘实用机器学习工具与技术(原书第3版)》是机器学习和数据挖掘领域的经典畅销教材,被众多国外名校选为教材。书中详细介绍用于数据挖掘领域的机器学习技术和工具以及实践方法,并且提供了一个公开的数据挖掘工作平台Weka。本书主要内容包括:数据输入/输出、知识表示、数据挖掘技术(决策树、关联规则、基于实例的学习、线性模型、聚类、多实例学习等)以及在实践中的运用。本版对上一版内容进行了全面更新,以反映自第2版出版以来数据挖掘领域的技术变革和新方法,包括数据转换、集成学习、大规模数据集、多实例学习等,以及新版的Weka机器学习软件。
《数据挖掘实用机器学习工具与技术(原书第3版)》逻辑严谨、内容翔实、极富实践性,适合作为高等院校本科生或研究生的教材,也可供相关技术人员参考。
作译者
Eibe Frank新西兰怀卡托大学计算机科学系副教授,《Machine Learning Journal》和《Journal of Artificial Intelligence Research》编委。
Mark A.Hall新西兰怀卡托大学名誉副研究员,曾获得2005年ACM SIGKDD服务奖。
李川 博士,副教授,四川大学计算机学院数据库知识工程研究所副所长,中国计算机学会数据库专委会委员。主持国家自然科学基金青年基金等项目多项,合作发表论文30余篇,获四川省科技成果二等奖1项。
目录
出版者的话
译者序
前言
致谢
第一部分 数据挖掘简介
第1章 绪论2
1.1 数据挖掘和机器学习2
1.1.1 描述结构模式3
1.1.2 机器学习5
1.1.3 数据挖掘6
1.2 简单的例子:天气问题和其他问题6
1.2.1 天气问题7
1.2.2 隐形眼镜:一个理想化的问题8
1.2.3 鸢尾花:一个经典的数值型数据集10
1.2.4 CPU性能:介绍数值预测11
1.2.5 劳资协商:一个更真实的例子11
1.2.6 大豆分类:一个经典的机器学习的成功例子13
1.3 应用领域14
1.3.1 Web挖掘15
译者序
本书前两位作者是大名鼎鼎的Ian H.Witten和Eibe Frank,他们共同设计了影响广远的Weka系统。Weka的设计与提出正如谷歌一样,它通过将单纯思想迅速实现给人们带来前所未有的不同感受,完美的图形界面、感性直观的可视化呈现、友好的用户界面消除了初学者的陌生感,为同行的探索时常予以灵感,又集合了前人工作的大成。而且,实验系统为高校的数据挖掘教学提供了实验环境,施惠于众人。
两位作者研发Weka后,将他们开发过程中的经验、实际的数据挖掘项目以及教学过程中的体会融为一体,形成此书的第1版。Weka此后经历多次版本更新。1999年Weka的第1版是Witten教授和Frank博士开发的。后来随着数据挖掘技术的更新和发展,经过Weka研究小组的辛勤工作,Weka软件日趋完善,2005年本书推出第2版。第2版最大的变化是加入了一个专门介绍Weka系统的部分。得益于数据挖掘领域的飞速发展和用户日新月异的需求引导,Weka系统在过去的十年里焕然一新,增加了大量数据挖掘功能,集成了非常丰富的机器学习算法和相关技术,于是催生了本书第3版的问世。第3版在前面两版基础上增加了大量近年来最新涌现的数据挖掘算法和诸如Web数据挖掘等新领域的介绍,所介绍的Weka系统较第2版增加了大约50%的算法及大量其他新内容。
本书的翻译是在极其紧张的条件下,经过所有团队成员的艰辛拼搏最终杀青的,其中凝聚着所有参与者的真诚与责任。本书的翻译工作由李川副教授统一协调负责,参与的人员有四川大学计算机科学与技术专业的研究生吴诗极、张永辉、李艳梅、谢世娜,他们在节假日、寒夜里加班工作,对译文字雕句琢最终有了本书的诞生。于中华副教授协助进行了本书的最终统稿。机械工业出版社的王春华、盛思源老师在本书的译著过程中给予了大力的支持和关心帮助。没有这些幕后的无私奉献,不可能有本书的面世。
尽管译者心正意诚,然则受限于自身的水平,本书一定存在不少问题,还期望各位读者给予批评、指正,各位的反馈将使本书更趋完善。最后,真诚期望本书对大家有益,这是对我们翻译工作的最大认可!
译者
2014年1月9日夜
四川大学DB&KE实验室
前言
数据挖掘是将隐含的、尚不为人知的同时又是潜在有用的信息从数据中提取出来。为此我们编写计算机程序,自动在数据库中筛选有用的规律或模式。假如能发现一些明显的模式,则可以将其归纳出来以对未来的数据进行准确预测。当然,数据挖掘结果中肯定会出现一些问题,比如许多模式可能是不言自明的或者没有实际意义的。另一些还有可能是虚假的,或者由于某些具体数据集的偶然巧合而产生的。在现实世界中,数据是不完美的:有些被人为篡改,有些会丢失。我们所观察到的所有东西都不是完全精确的:任何规律都有例外,并且总会出现不符合任何一个规律的实例。算法必须具有足够的健壮性以应付不完美的数据,并能提取出不精确但有用的规律。
机器学习为数据挖掘提供了技术基础,可用其将信息从数据库的原始数据中提取出来,以可以理解的形式表达,并可用做多种用途。这是一种抽象化过程:如实地全盘接收现有数据,然后在其基础上推导出所有隐藏在这些数据中的结构。本书将介绍在数据挖掘实践中,用以发现和描述数据中的结构模式而采用的机器学习工具和技术。
就像所有新兴技术都会受到商界的强烈关注一样,关于数据挖掘应用的报道正淹没在那些技术类或大众类出版社的大肆宣扬中。夸张的报道向人们展示了通过设立学习算法就能从浩瀚的数据汪洋中发现那些神秘的规律。但机器学习中绝没有什么魔法,没有什么隐藏的力量,也没有什么巫术,有的只是一些能将有用信息从原始数据中提取出来的简单和实用的技术。本书将介绍这些技术并展示它们是如何工作的。
我们将机器学习理解为从数据样本中获取结构描述的过程。这种结构描述可用于预测、解释和理解。有些数据挖掘应用侧重于预测:从数据所描述的过去预测将来在新情况下会发生什么,通常是猜测新的样本分类。但同样令我们感兴趣也许更感兴趣的是,“学习”的结果是一个可以用来对样本进行分类的真实结构描述。这种结构描述不仅支持预测,也支持解释和理解。根据我们的经验,在绝大多数数据挖掘实践应用中,用户最感兴趣的莫过于掌握样本的本质。事实上,这是机器学习优于传统统计模型的一个主要优点。
本书向我们诠释多种机器学习方法。其中一部分出于方便教学的目的而仅仅罗列一些简单方案,以便清楚解释基本思想如何实现。其他则考虑到具体实现而列举很多应用于实际工作中的真实系统。很多都是近几年发展起来的新方法。
我们创建了一套综合的软件资源以说明本书中的思想。软件名称是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis,Weka),它的Java源代码可以在 www.cs.waikato.ac.nz/ml/weka中得到。Weka几乎可以完善地实现本书中包含的所有技术。它包括机器学习方法的说明性代码以及具体实现。针对一些简单技术,它提供清楚而
简洁的实现,以帮助理解机器学习中的相关机制。Weka还提供一个工作平台,完整、实用、高水准地实现了很多流行的学习方案,这些方案能够运用于实际的数据挖掘项目或学术研究中。最后,本书还包括一个形如Java类库的框架,这个框架支持嵌入式机器学习的应用,乃至新的学习方案的实现。
本书旨在介绍用于数据挖掘领域的机器学习工具和技术。读完本书后,你将对这些技术有所了解并能体会到它们的功效和实用性。如果你希望用自己的数据进行实验,用 Weka就能轻易地做到。
提供数据挖掘案例研究的商业书籍中往往涉及一些非常具有实用性的方法,这些方法与当前机器学习教材中出现的更理论化、原则化的方法之间存在巨大鸿沟,本书跨越了这个鸿沟(关于本书的一些简介将出现在后面第1章的末尾)。这个鸿沟相当大,为了让机器学习技术应用富有成果,需要理解它们是如何工作的。这不是一种可以先盲目应用而后期待好结果出现的技术。不同的问题需要不同的技术来解决。但是如何根据实际问题来选择合适的技术并不是那么容易的事情:你需要知道到底有多少可能的解决方案。我们在本书中所论及的技术范围相当广泛,这是因为和其他商业书籍不同,本书无意推销某种特定的商业软件或方案。我们列举大量实例,但为展示实例所采用的数据集却小得足以让你搞清楚实例的整个过程。真实的数据集太大,不能做到这一点(而真实数据集的获取常受限于商业机密)。我们所选择的数据集并不是用来说明那些拥有大型数据的真实问题,而是帮助你理解不同技术的作用,它们是如何工作的,以及它们的应用范围是什么。
本书面向对实际数据挖掘技术所包含的原理和方法感兴趣的“技术敏感型”普通读者。本书同样适用于需获得这方面新技术的信息专家,以及所有希望了解机器学习领域技术细节的人。本书也是为有着一般兴趣的信息系统实际工作者所写的,如程序员、咨询顾问、开发人员、信息技术管理员、规范编写者、专利审核者、业余爱好者,以及学生和专家教授。他们需要拥有这样一本书:拥有大量实例且简单易读,向读者阐释与机器学习相关的主要技术是什么、做什么、如何运用它们,以及它们是如何工作的。本书面向实际,告诉读者“如何去做”,同时包括许多算法、代码以及具体实例的实现。所有在实际工作中进行数据挖掘的读者将直接得益于书中叙述的技术。本书旨在帮助那些希望找到掩藏在天花乱坠广告宣传下的机器学习真谛的人们,以及帮助那些需要实际可行的、非学术的、值得信赖的方案的人们。我们避免对特定的理论或数学知识做过分要求。在某些涉及特定知识的地方,我们会将相关文本框起来,这些内容是可选部分,通常是为照顾对理论和技术感兴趣的读者,跳过这部分内容不会对整体的连贯性有任何影响。
本书分为几个层次,不管你是想走马观花地浏览基本概念,还是想深入详尽地掌握技
术细节,阅读本书都可以满足你的要求。我们相信机器学习的使用者需要更多地了解他们
运用的算法如何工作。我们常常可以发现,优秀的数据模型是与它的诠释者分不开的,诠
释者需要知道模型是如何产生的,并且熟悉模型的长处和局限性。当然,并不要求所有的
用户都对算法的细节有深入理解。
根据上述考量,我们将对机器学习方法的描述分为几个彼此承接的层次。本书共分为三部分,第一部分是关于数据挖掘的介绍,读者将在这一部分学习数据挖掘的基本思想,这一部分包括书中的前五章。第l章通过实例说明机器学习是什么,以及能用在什么地方,并附带提供一些实际应用。第2、3章给出不同的输入和输出,或者称为知识表达 (knowledge representation)。不同的输出要求不同的算法。第4章介绍机器学习的基本方
法,这些方法都以简化形式出现以方便读者理解。其中的相关原理通过各种具体算法来呈现,这些算法并未包含复杂细节或精妙的实现方案。为从机器学习技术的应用升级到解决具体的数据挖掘问题,必须对机器学习的效果有一个评估。第5章可以单独阅读,它帮助读者评估从机器学习中得到的结果,解决性能评估中出现的某些复杂问题。
第二部分介绍数据挖掘的一些高级技术。在最低同时也是最详细的层次上,第6章详尽揭示实现整系列机器学习算法的步骤,以及在实际应用中为更好工作所必需的、较为复杂的部分(但忽略某些算法对复杂数学原理的要求)。尽管有些读者也许想忽略这部分的具体内容,但只有到这一层,才能涉及完整、可运作并经过测试的机器学习的Weka实现方案。第7章讨论一些涉及机器学习输入/输出的实际问题,例如,选择属性和离散化属性。第8章主要介绍“集成学习”技术,这种技术综合来自不同学习技术的输出。第9章展望发展趋势。
本书阐述了在实际机器学习中所使用的大多数方法,但未涉及强化学习(reinforce,ment learning),因为它在实际数据挖掘中极少应用;未包含遗传算法(genetic algorithm),因为它仅仅是一种优化技术;同样,也没有包含关系学习(relational learning)和归纳逻辑程序设计(inductivelogicprogramming),因为它们很少被主流数据挖掘应用所采纳。
媒体评论
——Dorian Pyle 《Data Preparation for Data Mining》和《Business Modeling for Data Mining》的作者
“本书在数据挖掘技术领域备受推崇,是数据挖掘分析师的必读之物!”
——Herb Edelstein Two Crows consulting公司首席数据挖掘咨询顾问
“这是我最喜爱的数据挖掘书籍之一,书中不仅循序渐进地介绍了各种算法,还辅以丰富实例,详细阐述了如何应用这些算法解决实际数据挖掘问。本书不但有益于学习使用Weka软件,而且还会帮助你了解各类机嚣学习算法。”
——Tom Breur XLNT Consulting公司首席咨询顾问
“假如你需要对数据进行分析和理解,本书以及相关的Weka工具包是一个绝佳的起。本书以非常容易理解的方式展示了这门新的学科:既是用来训练新一代实际工作者和研究者的教科书, 同时又能让像我这样的专业人员受益。Witten、Frank和Hall热衰于简单而优美的解决方案。他们对每个主题都采用这样的方法:用具体的实例来讲解所有的概念,促使读者首先考虑简单的技术,当简单的技术不足以解决问题时,就提升列更为复杂的高级技术。”
——Jim Gray(图灵奖获得者)
书摘
第1章绪论
人工受精的过程是从妇女的卵巢中收集卵子,再与丈夫或捐赠人的精液结合后产生胚胎,然后从中选择几个胚胎移植到妇女的子宫里。关键是要选出那些存活可能性最大的胚胎。选择根据60个左右的胚胎特征记录做出,这些特征包括它们的形态、卵母细胞、滤泡和精液样品。特征属性的数量非常大,胚胎学家很难同时对所有属性进行评估,并结合历史数据得出最终结论:这个胚胎是否能够产生一个活的婴儿。在英格兰的一个研究项目中,研究者探索运用机器学习技术,使用历史记录和它们的输出作为训练数据。
每年,新西兰奶牛场主都要面临艰难的商业决策:哪些牛应该留在牧场,哪些牛需要卖到屠宰场。随着饲料储备的减少,每年牧场在接近挤奶季节末期时只留下1/5的奶牛。每头牛的生育和牛奶产量的历史数据都会影响这个决定。除此以外还要考虑的因素有:年龄(每头牛都将在8岁后接近生育期的终结)、健康问题、难产的历史数据、不良的性情特征(如尥蹶子、跳栅栏)、在下一个季节里不产牛犊。在过去的几年中,几百万头牛中的每一头牛都用700多个属性记录下来。机器学习正是用来考察成功的农场主在做决定的时候需要考虑哪些因素,不是为了使决策自动化,而是向其他人推广这些农场主的技术和经验。
机器学习是从数据中挖掘知识。它是一个正在萌芽的新技术,范围涉及生与死、从欧洲到两极、家庭和事业,正逐渐引起人们的重视。
1.1数据挖掘和机器学习
我们正在被数据所淹没。存在于这个世界和我们生活中的数据总量似乎在不断地增长,而且没有停止的迹象。个人计算机的普及将那些以前会丢弃的数据保存起来。便宜的硬盘和网络硬盘,3使得很容易以后再决定用这些数据做什么,因为我们可以买更多的硬盘来保存数据。无处不在的电子器件记录了我们的决策,如超市里的商品选择、个人的理财习惯,以及收入和消费。我们以自己的方式生活在这个世界上,而每一个行为又成为一条数据库里的记录保存下来。如今互联网用信息将我们淹没,我们在网上所做的每一个选择都被记录下来。所有的这些信息记录了个人的选择,而在商业和企业领域存在着数不清的相似案例。我们都知道我们对数据的掌握永远无法赶上数据升级的速度。而且在数据量增加的同时,无情地伴随着人们对它理解的降低。隐藏在这些数据后的是信息,具有潜在用处的信息,而这些信息却很少被显现出来或者被开发利用。
本书介绍如何在数据中寻找模式。这并不稀奇,人们从一开始,就试图在数据中寻找模式。猎人在动物迁徙的行为中寻找模式;农夫在庄稼的生长中寻找模式;政客在选民的意见上寻找模式;恋人在对方的反应中寻找模式。科学家的工作(像一个婴儿)是理解数据,从数据中找出模式,并用它们来指导在真实世界中如何运作,然后把它们概括成理论,这些理论能够预测出在新的情况下会发生什么。企业家的工作是要辨别出机会,就是那些可以转变成有利可图的生意的行为中的一些模式,并且利用这些机会。
在数据挖掘(data mining)中,计算机以电子化的形式存储数据,并且能自动地查询数据,或至少扩增数据。这仍算不得新鲜事。经济学家、统计学家、预测家和信息工程师长久以来相信,存在于数据中的模式能够被自动地找到、识别、确认并能用于预测。该理论的最新发展使得由数据中找出模式的机遇剧增。在最近几年,数据库急剧膨胀,如每天记录顾客选择商品行为的数据库,正把数据挖掘带到新的商业应用技术的前沿。据估计,存储在全世界数据库里的数据量正以每20个月翻一倍的速度增长。尽管很难从量的意义上真正验证这个数字,但是我们可以从质上把握这个增长速度。随着数据量的膨胀,以及利用机器承担数据搜索工作已变得普通,数据挖掘的机会正在增长。世界正越来越丰富多彩,从中产生的数据淹没了我们,数据挖掘技术成为我们洞察构成数据的模式的唯一希望。被充分研究过的数据是宝贵的资源。它能够引导人们去获得新的洞察力,用商业语言来讲就是获得竞争优势。
数据挖掘就是通过分析存在于数据库里的数据来解决问题。例如,在激烈竞争的市场上,客户忠诚度摇摆问题就是一个经常提到的事例。一个有关客户商品选择以及客户个人资料的数据库是解决这个问题的关键。以前客户的行为模式能够用来分析并识别那些喜欢选购不同商品和那些喜欢选择同种商品的客户的特性。一旦这些特性被发现,它们将被用于当前实际的客户群中,鉴别出那些善变的客户群体,并加以特殊对待,须知对整个客户群都加以特殊对待的成本是高昂的。4更确切地说,同样的技术还能够用来辨别出那些对企业当前提供的服务并不满意,但是有可能对其他服务感兴趣的客户群,并向他们提供特殊建议,从而推广这些服务。在当代竞争激烈、以客户和服务为中心的经济中,如果数据能够被挖掘,它将成为推动企业发展的原材料。
数据挖掘被定义为找出数据中的模式的过程。这个过程必须是自动的或(更常见的是)半自动的。数据的总量总是相当可观的,但从中发现的模式必须是有意义的,并能产生出一些效益,通常是经济上的效益。
如何表示数据模式?有价值的模式能够让我们对新数据做出非平凡的预测。表示一个模式有两种极端方法:一种是内部结构很难被理解的黑匣子;一种是展示模式结构的透明匣子,它的结构揭示了模式的结构。我们假设两种方法都能做出好的预测,它们的区别在于被挖掘出的模式能否以结构的形式表现,这个结构是否能够经得起分析,理由是否充分,能否用来形成未来的决策。如果模式能够以显而易见的方法获得决策结构,就称为结构模式,换句话说,它们能帮助解释有关数据的一些现象。
现在我们可以说,本书是有关寻找、描述存在于数据中的结构模式的技术。我们所涉及的大部分技术已经在被称为机器学习的领域里开发出来。这里我们首先介绍什么是结构模式。
1.1.1描述结构模式
结构模式(structural pattern)是什么?如何描述它们?用什么形式输入?我们将以举例的形式来回答这个问题,而不是尝试给出正式的、最终的死板定义。本章后面将给出很多例子,现在让我们从一个例子入手来体验我们正在讲解的内容。
表1-1给出了隐形眼镜的一组数据。这组数据是验光师针对病人的情况做出的诊断:使用软的隐形眼镜,硬的隐形眼镜,或不能佩戴隐形眼镜。我们将在以后详细讨论属性的单独意义。表中的每一行代表一个例子。下面是有关这个信息的部分结构描述。
表1-1隐形眼镜数据
结构描述不一定像以上这样以规则的形式来表达。另一种流行的表达方法是决策树,它明确了需要做出的决策序列以及伴随的建议。
这是一个非常简单的例子。首先,这个表呈现了所有可能值的组合。属性age(年龄)有3种可能值,属性spectacle prescription(视力诊断)、astigmatism(散光)和tear production rate(眼泪流速)分别有2种可能值。所以这个表有24行记录(3×2×2×2=24)。上面所提到的规则并不是真正从数据中概括出来的,而只是对数据的总结。在多数学习的情况下,所给出的样本集非常不完整,所以我们的一部分工作就是将其推广到其他新的样本上实现一般化。用户可以想象,如果从上面的表格中忽略一些tear production rate的值是reduced的行,仍然可以得出规则:
这个规则可以推广到那些遗失的行,并且能正确地把它们填充到表里去。其次,样本中的每一个属性都指定了一个值。现实的数据集不可避免地存在一些样本,这些样本中的某些属性值因为一些原因而不可知,例如数据没有被测量、丢失或其他原因。再次,上面所提到的规则能正确地对例子进行分类,但是通常情况下,因为数据中存在一些错误或者噪声(noise),即使在用来训练分类器的数据上也会发生分类错误的情况。