当前: 首页 - 图书专区 - 数据挖掘:实用机器学习工具与技术(原书第3版)
数据挖掘:实用机器学习工具与技术(原书第3版)


  教辅下载
  在线购买
(新西兰)Ian H.Witten, Eibe Frank, Mark A. Hall 怀卡托大学 著
978-7-111-45381-9
79.00
478
2014年05月04日
李川 张永辉 等译 四川大学
计算机 > 人工智能
Elsevier
2912
简体中文
16
数据挖掘:实用机器学习工具与技术(原书第3版)
教材
计算机科学丛书








本书是机器学习和数据挖掘领域的经典畅销教材,被众多国外名校选为教材。书中不仅详细介绍机器学习的基本理论,还对实际工作中应用的相关工具和技术提了一些建议。本版对上一版内容进行了全面更新,以反映自第2版出版以来数据挖掘领域的技术变革和新方法,包括数据转换、集成学习、大规模数据集、多示例学习方面的新材料,以及新版的Weka机器学习软件。
数据挖掘
实用机器学习工具与技术
(原书第3版)
Data Mining Practical Machine Learning Tools and Techniques Third Edition
(新西兰)Ian H. Witten Eibe Frank  Mark A. Hall 怀卡托大学 著 李川 张永辉 四川大学 等译

“本书既含理论又有实践应用,并且关注实践是本书的一大特色。对于从事数据挖掘和机器学习方面工作的每位读者,我强烈推荐本书!”
—— 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(图灵奖获得者)

本书是机器学习和数据挖掘领域的经典畅销教材,被众多国外名校选用。书中不仅详细介绍机器学习的理论基础,还对实际工作中应用的相关工具和技术提出了一些建议。本版对上一版内容进行了全面更新,以反映自第2版出版以来数据挖掘的技术变革和新方法,包括数据转换、集成学习、大规模数据集、多实例学习方面的新材料,以及新版的Weka机器学习软件。

Ian H. Witten 新西兰怀卡托大学计算机科学系教授,ACM Fellow和新西兰皇家学会Fellow,曾荣获2004年国际信息处理研究协会(IFIP)颁发的Namur奖项。他的研究兴趣包括语言学习、信息检索和机器学习。
Eibe Frank 新西兰怀卡托大学计算机科学系副教授,《Machine Learning Journal》和《Journal of Artificial Intelligence Research》编委。
Mark A. Hall 新西兰怀卡托大学名誉副研究员,曾获得2005年ACM SIGKDD服务奖。

李 川 博士,副教授,四川大学计算机学院数据库知识工程研究所副所长,中国计算机学会数据库专委会委员。主持国家自然科学基金青年基金等项目多项,合作发表论文30余篇,获四川省科技成果二等奖1项。
计算和通信的结合建立了一个以信息为基础的新领域。但绝大多数信息尚处于原始状态,即以数据的形式存在的状态。假如我们将数据定义为被记录下的事实,那么信息就是在这些记录事实的数据中所隐藏的一系列模式或预期。在数据库中蕴藏了大量具有潜在重要性的信息,这些信息尚未被发现和利用,我们的任务就是将这些数据释放出来。
  数据挖掘是将隐含的、尚不为人知的同时又是潜在有用的信息从数据中提取出来。为此我们编写计算机程序,自动在数据库中筛选有用的规律或模式。假如能发现一些明显的模式,则可以将其归纳出来以对未来的数据进行准确预测。当然,数据挖掘结果中肯定会出现一些问题,比如许多模式可能是不言自明的或者没有实际意义的。另一些还有可能是虚假的,或者由于某些具体数据集的偶然巧合而产生的。在现实世界中,数据是不完美的:有些被人为篡改,有些会丢失。我们所观察到的所有东西都不是完全精确的:任何规律都有例外,并且总会出现不符合任何一个规律的实例。算法必须具有足够的健壮性以应付不完美的数据,并能提取出不精确但有用的规律。
  机器学习为数据挖掘提供了技术基础,可用其将信息从数据库的原始数据中提取出来,以可以理解的形式表达,并可用做多种用途。这是一种抽象化过程:如实地全盘接收现有数据,然后在其基础上推导出所有隐藏在这些数据中的结构。本书将介绍在数据挖掘实践中,用以发现和描述数据中的结构模式而采用的机器学习工具和技术。
  就像所有新兴技术都会受到商界的强烈关注一样,关于数据挖掘应用的报道正淹没在那些技术类或大众类出版社的大肆宣扬中。夸张的报道向人们展示了通过设立学习算法就能从浩瀚的数据汪洋中发现那些神秘的规律。但机器学习中绝没有什么魔法,没有什么隐藏的力量,也没有什么巫术,有的只是一些能将有用信息从原始数据中提取出来的简单和实用的技术。本书将介绍这些技术并展示它们是如何工作的。
  我们将机器学习理解为从数据样本中获取结构描述的过程。这种结构描述可用于预测、解释和理解。有些数据挖掘应用侧重于预测:从数据所描述的过去预测将来在新情况下会发生什么,通常是猜测新的样本分类。但同样令我们感兴趣也许更感兴趣的是,“学习”的结果是一个可以用来对样本进行分类的真实结构描述。这种结构描述不仅支持预测,也支持解释和理解。根据我们的经验,在绝大多数数据挖掘实践应用中,用户最感兴趣的莫过于掌握样本的本质。事实上,这是机器学习优于传统统计模型的一个主要优点。
  本书向我们诠释多种机器学习方法。其中一部分出于方便教学的目的而仅仅罗列一些简单方案,以便清楚解释基本思想如何实现。其他则考虑到具体实现而列举很多应用于实际工作中的真实系统。很多都是近几年发展起来的新方法。
  我们创建了一套综合的软件资源以说明本书中的思想。软件名称是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis,Weka Weka(发音与Mecca类似)是一种天生充满好奇心的不会飞的鸟,这种鸟仅在新西兰的岛屿上出现过。),它的Java源代码可以在www.cs.waikato.ac.nz/ml/weka中得到。Weka几乎可以完善地实现本书中包含的所有技术。它包括机器学习方法的说明性代码以及具体实现。针对一些简单技术,它提供清楚而简洁的实现,以帮助理解机器学习中的相关机制。Weka还提供一个工作平台,完整、实用、高水准地实现了很多流行的学习方案,这些方案能够运用于实际的数据挖掘项目或学术研究中。最后,本书还包括一个形如Java类库的框架,这个框架支持嵌入式机器学习的应用,乃至新的学习方案的实现。
  本书旨在介绍用于数据挖掘领域的机器学习工具和技术。读完本书后,你将对这些技术有所了解并能体会到它们的功效和实用性。如果你希望用自己的数据进行实验,用Weka就能轻易地做到。
  提供数据挖掘案例研究的商业书籍中往往涉及一些非常具有实用性的方法,这些方法与当前机器学习教材中出现的更理论化、原则化的方法之间存在巨大鸿沟,本书跨越了这个鸿沟(关于本书的一些简介将出现在后面第1章的末尾)。这个鸿沟相当大,为了让机器学习技术应用富有成果,需要理解它们是如何工作的。这不是一种可以先盲目应用而后期待好结果出现的技术。不同的问题需要不同的技术来解决。但是如何根据实际问题来选择合适的技术并不是那么容易的事情:你需要知道到底有多少可能的解决方案。我们在本书中所论及的技术范围相当广泛,这是因为和其他商业书籍不同,本书无意推销某种特定的商业软件或方案。我们列举大量实例,但为展示实例所采用的数据集却小得足以让你搞清楚实例的整个过程。真实的数据集太大,不能做到这一点(而真实数据集的获取常受限于商业机密)。我们所选择的数据集并不是用来说明那些拥有大型数据的真实问题,而是帮助你理解不同技术的作用,它们是如何工作的,以及它们的应用范围是什么。
  本书面向对实际数据挖掘技术所包含的原理和方法感兴趣的“技术敏感型”普通读者。本书同样适用于需获得这方面新技术的信息专家,以及所有希望了解机器学习领域技术细节的人。本书也是为有着一般兴趣的信息系统实际工作者所写的,如程序员、咨询顾问、开发人员、信息技术管理员、规范编写者、专利审核者、业余爱好者,以及学生和专家教授。他们需要拥有这样一本书:拥有大量实例且简单易读,向读者阐释与机器学习相关的主要技术是什么、做什么、如何运用它们,以及它们是如何工作的。本书面向实际,告诉读者“如何去做”,同时包括许多算法、代码以及具体实例的实现。所有在实际工作中进行数据挖掘的读者将直接得益于书中叙述的技术。本书旨在帮助那些希望找到掩藏在天花乱坠广告宣传下的机器学习真谛的人们,以及帮助那些需要实际可行的、非学术的、值得信赖的方案的人们。我们避免对特定的理论或数学知识做过分要求。在某些涉及特定知识的地方,我们会将相关文本框起来,这些内容是可选部分,通常是为照顾对理论和技术感兴趣的读者,跳过这部分内容不会对整体的连贯性有任何影响。
  本书分为几个层次,不管你是想走马观花地浏览基本概念,还是想深入详尽地掌握技术细节,阅读本书都可以满足你的要求。我们相信机器学习的使用者需要更多地了解他们运用的算法如何工作。我们常常可以发现,优秀的数据模型是与它的诠释者分不开的,诠释者需要知道模型是如何产生的,并且熟悉模型的长处和局限性。当然,并不要求所有的用户都对算法的细节有深入理解。
  根据上述考量,我们将对机器学习方法的描述分为几个彼此承接的层次。本书共分为三部分,第一部分是关于数据挖掘的介绍,读者将在这一部分学习数据挖掘的基本思想,这一部分包括书中的前五章。第1章通过实例说明机器学习是什么,以及能用在什么地方,并附带提供一些实际应用。第2、3章给出不同的输入和输出,或者称为知识表达(knowledge representation)。不同的输出要求不同的算法。第4章介绍机器学习的基本方法,这些方法都以简化形式出现以方便读者理解。其中的相关原理通过各种具体算法来呈现,这些算法并未包含复杂细节或精妙的实现方案。为从机器学习技术的应用升级到解决具体的数据挖掘问题,必须对机器学习的效果有一个评估。第5章可以单独阅读,它帮助读者评估从机器学习中得到的结果,解决性能评估中出现的某些复杂问题。
  第二部分介绍数据挖掘的一些高级技术。在最低同时也是最详细的层次上,第6章详尽揭示实现整系列机器学习算法的步骤,以及在实际应用中为更好工作所必需的、较为复杂的部分(但忽略某些算法对复杂数学原理的要求)。尽管有些读者也许想忽略这部分的具体内容,但只有到这一层,才能涉及完整、可运作并经过测试的机器学习的Weka实现方案。第7章讨论一些涉及机器学习输入/输出的实际问题,例如,选择属性和离散化属性。第8章主要介绍“集成学习”技术,这种技术综合来自不同学习技术的输出。第9章展望发展趋势。
  本书阐述了在实际机器学习中所使用的大多数方法,但未涉及强化学习(reinforcement learning),因为它在实际数据挖掘中极少应用;未包含遗传算法(genetic algorithm),因为它仅仅是一种优化技术;同样,也没有包含关系学习(relational learning)和归纳逻辑程序设计(inductive logic programming),因为它们很少被主流数据挖掘应用所采纳。
  第三部分介绍Weka数据挖掘平台,它提供在第一部分和第二部分中所描述的几乎所有思想的实例。我们将那些概念性的材料从如何使用Weka的实际操作材料中清楚地分离出来。在第一、二部分每一章的结尾会给出指向第三部分中相应Weka算法的索引。读者可以忽略这些部分,或者如果你急于分析你的数据并且不愿意纠结于说明算法的技术细节,可以直接跳到第三部分。选定Java来实现本书的机器学习技术,是因为作为面向对象的编程语言,它允许通过统一的界面进行学习方案和方法的前期和后期处理。用Java取代C++、Smalltalk或者其他面向对象的语言,是因为用Java编写的程序能运行在大部分计算机上而不需要重新进行编译,不需要复杂的安装过程,甚至不需要修改源代码。Java程序编译成字节码后,能运行于任何安装了适当解释器的计算机上。这个解释器称为Java虚拟机。Java虚拟机和Java编译器能免费用于所有重要平台上。
  在当前所有的可能选择中,能得到广泛支持的、标准化的、拥有详尽文档的编程语言,Java似乎是最佳选择。但是,由于在执行前要通过虚拟机将字节码编译为机器代码,所以Java程序的运行速度比用C或C++语言编码的相应程序慢。这个缺陷在过去看来很严重,但在过去二十年间,Java的执行效率有了大幅度提升。依我们的经验,如果Java虚拟机采用即时编译器,那么Java运行慢这个因素几乎可以忽略不计。即时编译器将整个字节码块翻译成机器代码,而不是一个接一个地翻译字节码,所以它的运行速度能够得到大幅度的提高。如果对你的应用来说,这个速度依然很慢,还可以选择采用某些编译器,跳过字节码这一步,直接将Java程序转换成机器代码。当然这种代码不能跨平台使用,这样牺牲了Java的一个最大优势。
更新与修改
  1999年,我们完成本书的第1版,2005年初完成第2版,经过我们精心修改润色的本书第3版在2011年同读者见面。这个世界过去二十年间可谓是沧海桑田!在保留前版基本核心内容的同时,我们增加了很多新内容,力图使本书与时俱进。本书第3版较前版接近翻倍的文字量可以反映出这种变化。当然,我们也对前版中出现的错误进行了校正,并将这些错误集中放到我们的公开勘误文件里(读者可以通过访问本书主页http://www.cs.waikato.ac.nz/ml/weka/book.html得到勘误表)。
第2版
  本书第2版中最主要的改变是增加了一个专门的部分来介绍Weka机器学习工作平台。这样做可以将书中的主要部分独立于工作平台呈现给读者,我们将在第3版中沿用这个方法。在第1版中广为使用和普及的Weka工作平台在第2版中已经改头换面,增加了新的图形用户界面或者说是三个独立的交互界面,这使读者使用起来更得心应手。其中最基本的界面是Explorer界面,通过该界面,所有Weka的功能都可以经由菜单选择和表单填写的方式完成;另一个界面称为Knowledge Flow界面,它允许对流数据处理过程进行设置;第三个界面是Experimenter界面,可以使用它对某一语料库设置自动地运行选定的机器学习算法,这些算法都带有不同的参数设置,Experimenter界面可以收集性能统计数据,并在所得实验结果的基础上进行有意义的测试。这些界面可以降低数据挖掘者的门槛。第2版中包括一套如何使用它们的完整介绍。
  此外,第2版还包括如下我们前面曾大致提及的新内容。我们对介绍规则学习和成本敏感评估的章节进行了扩充。为了满足普遍需求,我们增加了一些有关神经网络方面的内容:感知器及相关的Winnow算法,以及多层感知器和BP算法,Logistic回归也包含在内。我们介绍如何利用核感知器和径向基函数网络来得到非线性决策边界,还介绍用于回归分析的支持向量机。另外,应读者要求和Weka新特性的加入,我们还融入了有关贝叶斯网络的新章节,其中介绍如何基于这些网络来学习分类器以及如何利用AD树来高效地应用这些分类器。
  在过去的五年(1999—2004)中,文本数据挖掘得到极大的关注,这样的趋势反映在以下方面:字符串属性在Weka中的出现、用于文本分类的多项式贝叶斯以及文本变换。我们还介绍用以搜寻实例空间的高效数据结构:为高效寻找最近邻以及加快基于距离的聚类而采用的kD树和球形树。我们给出新的属性选择方案(如竞赛搜索和支持向量机的使用),以及新组合模型技术(如累加回归、累加Logistic回归、Logistic模型树以及选择树等),还讨论利用无标签数据提高分类效果的最新进展,包括协同训练(co-training)和co-EM方法。
第3版
  第3版在第2版基础上进行彻底革新,大量新方法、新算法的引入使本书在内容上与时俱进。我们的基本理念是将本书和Weka软件平台更紧密地融合。Weka现在的版本已经涵盖本书前两部分绝大多数思想的实现,同时你也能通过本书获取关于Weka的几乎所有信息。第3版中,我们还添加了大量文献的引用:引用数量达到第1版的3倍多。
  Weka在过去十年中变得焕然一新,也变得易于使用,并且在数据挖掘功能方面有很大提高。它已经集成了无比丰富的机器学习算法和相关技术。Weka的进步部分得益于数据挖掘领域的近期进展,部分受惠于用户引导以及需求驱动,它使我们对用户的数据挖掘需求了若指掌,充分地借鉴发展中的经验又能很好地选择本书内容。
  如前文所述,新版本分为三个部分,其中章节内容有部分调整。更重要的是,增加了很多新内容,以下列举部分重要的改动:
  第1章包含了一小节有关Web挖掘的内容,并且从道德角度探讨据称是匿名数据中的个体再识别问题。另外一个重要的补充是关于多实例学习(multi-instance learning),这方面内容出现在两个新增小节中:4.9节介绍基本方法,6.10节介绍一些更高级的算法。第5章包含有关交互式成本-收益分析(interactive cost-benefit analysis)的新内容。第6章也有大量新增内容:成本-复杂度剪枝(cost-complexity pruning)、高级关联规则算法(这种算法利用扩展前缀树将压缩版本的数据集存储到主存)、核岭回归(kernel ridge regression)、随机梯度下降(stochastic gradient descent),以及层次聚类方法(hierarchical clustering method)。旧版中关于输入/输出的章节被分为两章:第7章讲述数据转换(主要与输入有关),第8章是集成学习(输出)。对于前者,我们增加了偏最小二乘回归(partial least-squares regression)、蓄水池抽样算法(reservoir sampling)、一分类学习(one-class learning)——将多分类问题分解为集成嵌套二分法问题,以及校准类概率(calibrating class probabilities)。对于后者,我们增加了新内容以比较随机方法与装袋算法和旋转森林算法(rotation forest)。而关于数据流学习和Web挖掘的内容则增添到第二部分的最后一章。
  第三部分主要介绍Weka数据挖掘工作平台,也加入大量新内容。Weka中添入多种新的过滤器、机器学习算法、属性选择算法、如多种文件格式转换器一样的组件以及参数优化算法。实际上,第3版中介绍的新版本Weka比第2版中的Weka增加了50%的算法。所有这些变化都以文档形式保存。为了满足一些常见要求,我们给出关于不同分类器输出的细节并解释这些输出所揭示的意义。另一个重要的变化是我们新增了一个崭新的章节——第17章,在这一章中给出一些关于Weka Explorer界面的辅导练习(其中的部分练习颇具难度),这些练习我们建议Weka新用户都能尝试着做一遍,这有助于你了解Weka究竟能做些什么。
出版者的话
译者序
前言
致谢
第一部分 数据挖掘简介
第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
  1.3.2 包含评判的决策15
  1.3.3 图像筛选16
  1.3.4 负载预测17
  1.3.5 诊断17
  1.3.6 市场和销售18
  1.3.7 其他应用19
 1.4 机器学习和统计学20
 1.5 将泛化看做搜索21
  1.5.1 枚举概念空间22
  1.5.2 偏差22
 1.6 数据挖掘和道德24
  1.6.1 再识别25
  1.6.2 使用个人信息25
  1.6.3 其他问题26
 1.7 补充读物27
第2章 输入:概念、实例和属性29
 2.1 概念29
 2.2 样本31
  2.2.1 关系32
  2.2.2 其他实例类型34
 2.3 属性35
 2.4 输入准备37
  2.4.1 数据收集37
  2.4.2 ARFF格式38
  2.4.3 稀疏数据40
  2.4.4 属性类型40
  2.4.5 缺失值41
  2.4.6 不正确的值42
  2.4.7 了解数据43
 2.5 补充读物43
第3章 输出:知识表达44
 3.1 表44
 3.2 线性模型44
 3.3 树45
 3.4 规则48
  3.4.1 分类规则49
  3.4.2 关联规则52
  3.4.3 包含例外的规则52
  3.4.4 表达能力更强的规则54
 3.5 基于实例的表达56
 3.6 聚类58
 3.7 补充读物60
第4章 算法:基本方法61
 4.1 推断基本规则61
  4.1.1 缺失值和数值属性62
  4.1.2 讨论64
 4.2 统计建模64
  4.2.1 缺失值和数值属性67
  4.2.2 用于文档分类的朴素贝叶斯68
  4.2.3 讨论70
 4.3 分治法:建立决策树70
  4.3.1 计算信息量73
  4.3.2 高度分支属性74
  4.3.3 讨论75
 4.4 覆盖算法:建立规则76
  4.4.1 规则与树77
  4.4.2 一个简单的覆盖算法77
  4.4.3 规则与决策列表80
 4.5 挖掘关联规则81
  4.5.1 项集81
  4.5.2 关联规则83
  4.5.3 有效地生成规则85
  4.5.4 讨论87
 4.6 线性模型87
  4.6.1 数值预测:线性回归87
  4.6.2 线性分类:Logistic回归88
  4.6.3 使用感知机的线性分类90
  4.6.4 使用Winnow的线性分类91
 4.7 基于实例的学习92
  4.7.1 距离函数93
  4.7.2 有效寻找最近邻93
  4.7.3 讨论97
 4.8 聚类97
  4.8.1 基于距离的迭代聚类98
  4.8.2 快速距离计算99
  4.8.3 讨论100
 4.9 多实例学习100
  4.9.1 聚集输入100
  4.9.2 聚集输出100
  4.9.3 讨论101
 4.10 补充读物101
 4.11 Weka实现103
第5章 可信度:评估学习结果104
 5.1 训练和测试104
 5.2 预测性能106
 5.3 交叉验证108
 5.4 其他评估方法109
  5.4.1 留一交叉验证109
  5.4.2 自助法109
 5.5 数据挖掘方法比较110
 5.6 预测概率113
  5.6.1 二次损失函数114
  5.6.2 信息损失函数115
  5.6.3 讨论115
 5.7 计算成本116
  5.7.1 成本敏感分类117
  5.7.2 成本敏感学习118
  5.7.3 提升图119
  5.7.4 ROC曲线122
  5.7.5 召回率-精确率曲线124
  5.7.6 讨论124
  5.7.7 成本曲线125
 5.8 评估数值预测127
 5.9 最小描述长度原理129
 5.10 在聚类方法中应用MDL原理131
 5.11 补充读物132
第二部分 高级数据挖掘
第6章 实现:真正的机器学习方案134
 6.1 决策树135
  6.1.1 数值属性135
  6.1.2 缺失值136
  6.1.3 剪枝137
  6.1.4 估计误差率138
  6.1.5 决策树归纳的复杂度140
  6.1.6 从决策树到规则140
  6.1.7 C4.5:选择和选项141
  6.1.8 成本-复杂度剪枝141
  6.1.9 讨论142
 6.2 分类规则142
  6.2.1 选择测试的标准143
  6.2.2 缺失值和数值属性143
  6.2.3 生成好的规则144
  6.2.4 使用全局优化146
  6.2.5 从局部决策树中获得规则146
  6.2.6 包含例外的规则149
  6.2.7 讨论151
 6.3 关联规则152
  6.3.1 建立频繁模式树152
  6.3.2 寻找大项集157
  6.3.3 讨论157
 6.4 扩展线性模型158
  6.4.1 最大间隔超平面159
  6.4.2 非线性类边界160
  6.4.3 支持向量回归161
  6.4.4 核岭回归163
  6.4.5 核感知机164
  6.4.6 多层感知机165
  6.4.7 径向基函数网络171
  6.4.8 随机梯度下降172
  6.4.9 讨论173
 6.5 基于实例的学习174
  6.5.1 减少样本集的数量174
  6.5.2 对噪声样本集剪枝174
  6.5.3 属性加权175
  6.5.4 泛化样本集176
  6.5.5 用于泛化样本集的距离函数176
  6.5.6 泛化的距离函数177
  6.5.7 讨论178
 6.6 局部线性模型用于数值预测178
  6.6.1 模型树179
  6.6.2 构建树179
  6.6.3 对树剪枝180
  6.6.4 名目属性180
  6.6.5 缺失值181
  6.6.6 模型树归纳的伪代码181
  6.6.7 从模型树到规则184
  6.6.8 局部加权线性回归184
  6.6.9 讨论185
 6.7 贝叶斯网络186
  6.7.1 预测186
  6.7.2 学习贝叶斯网络189
  6.7.3 算法细节190
  6.7.4 用于快速学习的数据结构192
  6.7.5 讨论194
 6.8 聚类194
  6.8.1 选择聚类的个数195
  6.8.2 层次聚类195
  6.8.3 层次聚类的例子196
  6.8.4 增量聚类199
  6.8.5 分类效用203
  6.8.6 基于概率的聚类204
  6.8.7 EM算法205
  6.8.8 扩展混合模型206
  6.8.9 贝叶斯聚类207
  6.8.10 讨论209
 6.9 半监督学习210
  6.9.1 用于分类的聚类210
  6.9.2 协同训练212
  6.9.3 EM和协同训练212
  6.9.4 讨论213
 6.10 多实例学习213
  6.10.1 转换为单实例学习213
  6.10.2 升级学习算法215
  6.10.3 专用多实例方法215
  6.10.4 讨论216
 6.11 Weka实现216
第7章 数据转换218
 7.1 属性选择219
  7.1.1 独立于方案的选择220
  7.1.2 搜索属性空间222
  7.1.3 具体方案相关的选择223
 7.2 离散化数值属性225
  7.2.1 无监督离散化226
  7.2.2 基于熵的离散化226
  7.2.3 其他离散化方法229
  7.2.4 基于熵的离散化与基于误差的离散化229
  7.2.5 离散属性转换成数值属性230
 7.3 投影230
  7.3.1 主成分分析231
  7.3.2 随机投影233
  7.3.3 偏最小二乘回归233
  7.3.4 从文本到属性向量235
  7.3.5 时间序列236
 7.4 抽样236
 7.5 数据清洗237
  7.5.1 改进决策树237
  7.5.2 稳健回归238
  7.5.3 检测异常239
  7.5.4 一分类学习239
 7.6 多分类问题转换成二分类问题242
  7.6.1 简单方法242
  7.6.2 误差校正输出编码243
  7.6.3 集成嵌套二分法244
 7.7 校准类概率246
 7.8 补充读物247
 7.9 Weka实现249
第8章 集成学习250
 8.1 组合多种模型250
 8.2 装袋251
  8.2.1 偏差-方差分解251
  8.2.2 考虑成本的装袋253
 8.3 随机化253
  8.3.1 随机化与装袋254
  8.3.2 旋转森林254
 8.4 提升255
  8.4.1 AdaBoost算法255
  8.4.2 提升算法的威力257
 8.5 累加回归258
  8.5.1 数值预测258
  8.5.2 累加Logistic回归259
 8.6 可解释的集成器260
  8.6.1 选择树260
  8.6.2 Logistic模型树262
 8.7 堆栈262
 8.8 补充读物264
 8.9 Weka实现265
第9章 继续:扩展和应用266
 9.1 应用数据挖掘266
 9.2 从大型的数据集里学习268
 9.3 数据流学习270
 9.4 融合领域知识272
 9.5 文本挖掘273
 9.6 Web挖掘276
 9.7 对抗情形278
 9.8 无处不在的数据挖掘280
 9.9 补充读物281
第三部分 Weka数据挖掘平台
第10章 Weka简介284
 10.1 Weka中包含了什么284
 10.2 如何使用Weka285
 10.3 Weka的其他应用286
 10.4 如何得到Weka286
第11章 Explorer界面287
 11.1 开始287
  11.1.1 准备数据287
  11.1.2 将数据载入Explorer288
  11.1.3 建立决策树289
  11.1.4 查看结果290
  11.1.5 重做一遍292
  11.1.6 运用模型292
  11.1.7 运行错误的处理294
 11.2 探索Explorer294
  11.2.1 载入及过滤文件294
  11.2.2 训练和测试学习方案299
  11.2.3 自己动手:用户分类器301
  11.2.4 使用元学习器304
  11.2.5 聚类和关联规则305
  11.2.6 属性选择306
  11.2.7 可视化306
 11.3 过滤算法307
  11.3.1 无监督属性过滤器307
  11.3.2 无监督实例过滤器312
  11.3.3 有监督过滤器314
 11.4 学习算法316
  11.4.1 贝叶斯分类器317
  11.4.2 树320
  11.4.3 规则322
  11.4.4 函数325
  11.4.5 神经网络331
  11.4.6 懒惰分类器334
  11.4.7 多实例分类器335
  11.4.8 杂项分类器336
 11.5 元学习算法336
  11.5.1 装袋和随机化337
  11.5.2 提升338
  11.5.3 组合分类器338
  11.5.4 成本敏感学习339
  11.5.5 优化性能339
  11.5.6 针对不同任务重新调整分类器340
 11.6 聚类算法340
 11.7 关联规则学习器345
 11.8 属性选择346
  11.8.1 属性子集评估器347
  11.8.2 单一属性评估器347
  11.8.3 搜索方法348
第12章 Knowledge Flow界面351
 12.1 开始351
 12.2 Knowledge Flow组件353
 12.3 配置及连接组件354
 12.4 增量学习356
第13章 Experimenter界面358
 13.1 开始358
  13.1.1 运行一个实验358
  13.1.2 分析结果359
 13.2 简单设置362
 13.3 高级设置363
 13.4 分析面板365
 13.5 将运行负荷分布到多个机器上366
第14章 命令行界面368
 14.1 开始368
 14.2 Weka的结构368
  14.2.1 类、实例和包368
  14.2.2 weka.core包370
  14.2.3 weka.classifiers包371
  14.2.4 其他包372
  14.2.5 Javadoc索引373
 14.3 命令行选项373
  14.3.1 通用选项374
  14.3.2 与具体方案相关的选项375
第15章 嵌入式机器学习376
 15.1 一个简单的数据挖掘应用376
  15.1.1 MessageClassifier()380
  15.1.2 updateData()380
  15.1.3 classifyMessage()381
第16章 编写新的学习方案382
 16.1 一个分类器范例382
  16.1.1 buildClassifier()389
  16.1.2 makeTree()389
  16.1.3 computeInfoGain()390
  16.1.4 classifyInstance()390
  16.1.5 toSource()391
  16.1.6 main()394
 16.2 与实现分类器有关的惯例395
第17章 Weka Explorer的辅导练习397
 17.1 Explorer界面简介397
  17.1.1 导入数据集397
  17.1.2 数据集编辑器397
  17.1.3 应用过滤器398
  17.1.4 可视化面板399
  17.1.5 分类器面板399
 17.2 最近邻学习和决策树402
  17.2.1 玻璃数据集402
  17.2.2 属性选择403
  17.2.3 类噪声以及最近邻学习403
  17.2.4 改变训练数据的数量404
  17.2.5 交互式建立决策树405
 17.3 分类边界406
  17.3.1 可视化1R406
  17.3.2 可视化最近邻学习407
  17.3.3 可视化朴素贝叶斯407
  17.3.4 可视化决策树和规则集407
  17.3.5 弄乱数据408
 17.4 预处理以及参数调整408
  17.4.1 离散化408
  17.4.2 离散化的更多方面408
  17.4.3 自动属性选择409
  17.4.4 自动属性选择的更多方面410
  17.4.5 自动参数调整410
 17.5 文档分类411
  17.5.1 包含字符串属性的数据411
  17.5.2 实际文档文类412
  17.5.3 探索StringToWordVector过滤器413
 17.6 挖掘关联规则413
  17.6.1 关联规则挖掘413
  17.6.2 挖掘一个真实的数据集415
  17.6.3 购物篮分析415
参考文献416
索引431
信息技术正以惊人的速度将现实世界中的信息转化为数据,存储到各类计算机系统中,且这一过程的发展态势可能超出人类的有限预想。其中蕴含着的,不仅是自然和生命,还有人类的行为、情感和历史。同我们生存其中的真实自然界一样,新兴的数据中潜藏着无尽的奥秘和巨大的财富,因此吸引着大批来自自然科学、人文科学以及商界的学者和技术人员投身其中。正确地解读、有效地利用这些数据是新技术革命时代照亮人类前行的灯塔。
  本书前两位作者是大名鼎鼎的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实验室
计算机\数据挖掘
读者书评
发表评论



高级搜索
面向机器智能的TensorFlow实践
Python机器学习
面向机器学习的自然语言标注


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才