译 者 序
Machine Learning for Data Streams: with Practical Examples in MOA
机器学习和数据挖掘早已是计算机领域中的热门话题,这两个领域中的优秀作品也屡见不鲜。本书的独特之处在于从数据流的角度详细介绍了机器学习模型,同时结合数据流生成和分析的开源软件MOA,为数据流挖掘从业者和学者提供了易于上手实践的理论和工具。本书的每一章不仅分析了基础数学背景和传统机器学习的算法或模型,同时为了加深读者的横向理解,还专门为此对比了相关的数据流模型。除了引用最前沿的文献和广泛使用的模型,本书的可贵之处在于,呼吁业界多加考虑使用那些尚未普及却效果不错的新算法;对于新算法和常用算法,本书对模型进行了多方面的比较;正如前言中所说,本书面向有一定编程基础、机器学习基础或数据挖掘基础的读者。对于其他背景的读者,请参考前言中的阅读方法。
本书由陈瑶负责全书翻译内容审核,姚毓夏负责翻译本书大部分章节。
每一本书的背后都关联着大同小异的故事。翻译过程中,我们克服了跨国时差的合作挑战,且至今素未谋面。翻译开始之初,从联系出版社到最终交稿,经历了各种曲折,这也让我们更加坚定了初衷。在这里,我们想要号召愿意参与翻译工作但还在观望的译者,联系我们、加入我们,这里有计算机各个领域的专家和翻译小组。每一个贡献出自己个人时间的译者,除了能在翻译中学习所翻译书籍的内容之外,还可以找到自己想要深耕的领域,默默地在中国技术发展史上留下或深或浅的印记。
最后感谢北京华章图文信息有限公司的刘锋老师在翻译过程中给予的悉心帮助和指导!
译者
2019年9月
前言
Machine Learning for Data Streams: with Practical Examples in MOA
实时数据流分析正变得越来越常见,已经成为从现实中获取有用信息的标准手段。数据流分析可以让组织迅速应对问题并探测未来趋势,从而提升自身的运营效率。本书将充分展现数据流挖掘领域中常用的算法和技术,并且详细地介绍MOA软件:一个包含这些算法和技术的开源框架。
本书展示的数据流挖掘领域中的算法,面向以下3类特定的读者群体:
第一类读者希望在实际中应用数据流挖掘。他们有数据挖掘基础,但往往没有很强的算法或编程背景,比如管理、商务智能和市场营销领域的学生和教授。本书充分考虑了这些读者的需求,提供了MOA的上手教程,以任务为导向而不是以算法为导向。
第二类读者是那些在数据流挖掘领域的研究者和创新者。他们需要详细地了解算法和评估方法,才能更恰当地运用现有的算法,评估其性能,并把算法融入应用,甚至是创造新的算法。这群读者往往是计算机或数据科学专业的高年级本科生、研究生和博士,以及创新型开发者。
第三类读者想要在MOA中加入新的算法,从而对这个开源项目做出贡献。这些读者需要理解MOA的类结构和创建学习任务的方法。
为了充分满足这3类读者群体的需求,本书分成三个部分。第一部分简单地介绍大数据流挖掘,包含三章。前两章介绍大数据流及其基本挖掘方法。后一章是MOA上手指南,读者可以作为参考,自行探索MOA。
本书的第二部分更详细地展现了数据流挖掘中的常见问题和重要算法。由于涉及知识面广阔,本书优先讲解MOA中已涵盖的算法。第4章提到了sketch技术,本书认为数据流挖掘领域人员很有必要对该技术加以了解。大部分章节含有一套练习题或MOA上手教程,或两者兼具。
第三部分全篇讲解MOA,从用户界面开始,到命令行和API,最后讲解如何实现新方法。
综上所述,第一类读者应该阅读第一部分,有时间可以把第11章和第12章作为延伸阅读,以了解MOA的软件体系和其他可选参数。
第二类读者也应该阅读第一部分,然后至少应该阅读4.1节至4.3节(如果对sketch数据结构有兴趣,应该反复阅读第4章)、第5章和第6章。可以根据兴趣,自行选读第7章到第10章。如果需要在实际中运用MOA,还应该继续阅读第11章至第14章。
第三类读者在阅读以上部分的基础上,还应该阅读第15章。
本书的网站地址是https:mitpress.mit.edubooksdata-stream-mining,其中会持续更新书中的内容和一些辅助资源,包括讲稿、习题、软件上手教程和其他阅读材料。欢迎各位读者阅读参考并提出建议。
过去十年中,已经出现了好几本关于数据流挖掘的书。由Garofalakis、Gehrke和Rastogi编写的Data Stream ManagementProcessing Lligh-Speed Data Streams [118],还有Aggarwal编写的Data StreamsModels and Algorithms [4],这两本书涵盖的内容与本书部分相同,但是这些书往往从大数据库社区的角度出发,而不是数据流挖掘社区或者机器学习社区。
Gama编写的Knowledge Discovery from Data Streams [110]一书从数据流挖掘及机器学习社区的角度讲解算法,但是并没有提到MOA的开发和评估框架。该书展现了算法的伪代码,其中有些算法已经在MOA中实现了。因此,读者可以考虑在阅读本书的同时参考Gama的书。
为了跟上数据流挖掘领域日新月异的变化,我们极力推荐以下会议的论文和报告:KDD(数据库知识发现)、ICDM(国际数据挖掘会议)、SAC(应用计算研讨会)。这些会议都设有数据流挖掘的分会场。此外,还有ECML PKDD(机器学习及数据库知识发掘原理和实践欧洲会议)、SDM(数据挖掘SIAM会议),以及IEEE DSAA(电气电子工程师协会的数据科学和高级分析会议)。
在杂志方面,至今为止还没有一本数据流挖掘的专门杂志,而刊登过数据流挖掘文章的杂志又数不胜数,在此就不一一列举了。
致谢
我们向所有为这本书和相关软件做出了贡献的人员表示感谢。我们希望罗列所有贡献者的名字,但难免由于姓名不详(如审阅者)、名单过长(比如MOA共同作者、通过提问和指出bug而改进MOA的学生,及直接贡献代码的人)以及我们的疏忽,而难以列全,希望得到读者的谅解。在此,我们事先向未被本书提及的数据流挖掘作者致歉。由于篇幅限制和选择不够明智而没能提及你的作品,希望得到理解。
我们要感谢麻省理工学院出版社(MIT Press),特别要感谢Marie Lufkin Lee、Christine Bridget Savage和Kathleen Hensle的协助。
在此特别告知,本书的灵感来自于具有奠基意义的WEKA机器学习工具。
本书共同作者Ricard Gavald的撰写部分由加泰罗尼亚政府(Generalitat de Catalunya)的MACDA项目(SGR2014-0890)和西班牙政府经济竞争部门(MINECO)的APCOM项目(TIN2014-57226)提供部分赞助。