数据挖掘与机器学习-WEKA应用技术与实践(第二版)
上QQ阅读APP看书,第一时间看更新

第一版前言

当代中国掀起了一股学习数据挖掘和机器学习的热潮,从斯坦福大学公开课“机器学习课程”,到龙星计划的“机器学习Machine Learning”课程,再到加州理工学院公开课“机器学习与数据挖掘”课程,参加这些网络课程学习的人群日益壮大,数据挖掘和机器学习炙手可热。

数据挖掘是数据库知识发现中的一个步骤,它从大量数据中自动提取出隐含的、过去未知的、有价值的潜在信息。机器学习主要设计和分析一些让计算机可以自动“学习”的算法,这类算法可以从数据中自动分析获得规律,并利用规律对未知数据进行预测。数据挖掘和机器学习这两个领域联系密切,数据挖掘利用机器学习提供的技术来分析海量数据,以发掘数据中隐含的有用信息。

数据挖掘和机器学习这两个密切相关的领域存在一个特点:理论很强而实践很弱。众所周知,理论和实践是研究者的左腿和右腿,缺了一条腿的研究者肯定难以前行。有的技术人员花了若干年时间进行研究,虽然了解甚至熟悉了很多公式和算法,但仍然难以真正去面对一个实际挖掘问题并很好地解决手上的技术难题,其根本原因就是缺乏实践。

本书就是为了试图解决数据挖掘和机器学习的实践问题而编写的。本书依托新西兰怀卡托大学采用Java语言开发的著名开源软件Weka,该系统自1993年开始由新西兰政府资助,至今已经历了20多年的发展,功能已经十分强大和成熟。Weka集合了大量的机器学习和相关技术,受领域发展和用户需求所推动,代表了当今数据挖掘和机器学习领域的最高水平。因此,研究Weka能帮助研究者从实践去验证所学的理论,显然有很好的理论意义及实践意义。

本书共分8章。第1章介绍Weka的历史和功能、数据挖掘和机器学习的基本概念、Weka系统安装,以及示例数据集;第2章介绍Explorer界面的使用,主要内容包括图形用户界面、预处理、分类、聚类、关联、选择属性,以及可视化;第3章介绍KnowledgeFlow界面,主要内容有知识流介绍、知识流组件、使用知识流组件,以及实践教程;第4章介绍Experimenter界面,主要内容有Experimenter界面介绍、标准实验、远程实验,以及实验结果分析;第5章介绍命令行界面,主要内容有命令行界面介绍、Weka结构、命令行选项、过滤器和分类器选项,以及Weka包管理器;第6章介绍一些Weka的高级应用,主要介绍Weka的贝叶斯网络、神经网络、文本分类和时间序列分析及预测;第7章介绍Weka API,说明使用Java源代码来实现常见数据挖掘任务的基础知识,并给出一个展示如何进行数据挖掘的综合示例;第8章通过对一个学习方案的源代码进行分析,深入研究Weka学习方案的工作原理,为开发人员提供编写学习算法的技术基础。

在阅读大量相关文献的过程中,作者深深为国外前辈们的理论功底和实践技能所折服,那些巨人们站在高处,使人难以望其项背。虽然得益于诸如网易公开课和龙星计划等项目,我们有机会和全世界站在同一个数量级的知识起跑线上,但是,这并不意味着能在将来的竞争中占据优势,正如孙中山先生所说“革命尚未成功,同志仍须努力”,让我们一起共勉。

在本书的编写过程中,作者力求精益求精,但限于作者的知识和能力,且很多材料都难以获取,考证和去伪存真是一件时间开销非常大和异常困难的工作,因此书中肯定会有遗漏及不妥之处,敬请广大读者批评指正。

作者专门为本书设置读者QQ群,群号245295017,欢迎读者加群,下载和探讨书中源代码,抒写读书心得,进行技术交流等。

本书承蒙很多朋友、同事的帮助才得以成文。特别感谢Weka开发组的全体人员,他们将自己20年心血汇聚的成果开源,对本领域贡献巨大;衷心感谢清华大学出版社的编辑老师在内容组织、排版,以及出版方面提出的建设性意见和给予的无私帮助;感谢昆明理工大学提供的宽松的研究环境;感谢昆明理工大学计算机系教师缪祥华博士,他为本书的成文提出了很多建设性的建议,对本书的改进帮助甚大;感谢昆明理工大学计算机系海归博士吴霖老师,他经常和作者一起讨论机器学习的技术问题,为本书的编写贡献了很多智慧;感谢昆明理工大学现代教育中心的何佳老师,他完成了本书部分代码的编写和测试工作;感谢国内外的同行们,他们在网络论坛和博客上发表了众多卓有见识的文章,作者从中学习到很多知识,由于来源比较琐碎,无法一一列举,感谢他们对本书的贡献;感谢理解和支持我的家人,他们是我写作的坚强后盾。感谢购买本书的朋友,欢迎批评指正,你们的批评建议都会受到重视,并在再版中改进。

编者