译者序
Data Mining: The Textbook
在当今的人工智能时代,数据分析和挖掘似乎已经是一个很古老的话题。这也难怪,对数据的分析甚至可以追溯到中国第一经—《易经》这部远古文明的产物,至少17世纪就开始的数理统计学为数据分析准备了齐全的数学工具,而领域公认的第一个数据挖掘算法也早在27年前就发表了。相关领域现在流行的是机器学习,尤其是深度学习。那么在这个时候出版这本几年前就出版的原著译本,意义又何在?
事实上,目前的人工智能的发展是由数据驱动的。从数据中挖掘得到的知识在很大程度上成就了人工智能的奇妙,比如机器翻译、人脸识别、对话机器人等。目前人工智能所面临的问题是推广,也就是需要在各行各业将人工智能的能力发挥出来。这个能力的发挥在很大程度上依赖于数据的使用能力。而数据使用的难度源于数据的复杂性和多样性,我们需要一系列处理数据的工具,也就是数据挖掘工具,它是人工智能、机器学习任务的一个重要部分。
本书的一个特点是篇幅长、字数多,但它更重要的特点是打破了数据挖掘就是几个算法的错觉。它将数据挖掘工具放在实际的、复杂多样的数据环境中,总结各种方法的使用场景、使用方法,乃至可能的使用效果。各种方法与各种场景的组合纵横交错,形成了丰富的内容。
本书将数据挖掘归纳成四个基本问题:聚类、分类、关联模式挖掘和异常分析。同时作者对数据类型从多个方面进行考虑,包括是连续的还是离散的、是定量的还是定性的、是依赖于上下文的还是非依赖的,有文本数据和图数据,也有时间序列、与时间无关的序列、多维时间序列、数据流,以及各种交叉组合等,而且各种组合下的数据可能都需要进行聚类、分类、关联模式挖掘和异常分析。这就使数据挖掘任务变得异常复杂及困难,需要在本质上把这些类型之间的关系、各基本方法之间的关系,以及各类型与各方法之间的关系做一个梳理。另外,本书特别强调在解决上述问题时的计算及存储效率问题,在数据挖掘的实用性方面也有很好的分析。这些内容可帮助读者在数据挖掘及人工智能应用方面打下良好的基础。从这个角度来讲,本书对数据挖掘领域的描述相当完整。
本书作者是一位严谨的计算机科学家和高产的作家。译者在研究生涯中多次接触过他,他擅长将计算机科学问题提炼成数学问题,而且又能用计算机科学方法解决实际问题。从他撰写的书籍来看,他是一个在科研方面十分细致且思路宽广的人。本书注重原理、方法,有助于读者深入理解数据挖掘的各个方面,同时本书也可以作为一本“原理型菜单”,为各类数据的转换及四个基本方法的使用提供解决思路。既有基本方法,也有进阶内容,彼此融为一体,这使得本书既可以作为数据挖掘领域的工具书,也可以作为本科及研究生各个年级的教科书。
本书的翻译由本人与三位领域内翘楚王建勇、禹晓辉、陈世敏共同完成。整个翻译过程经过了较长的时间,其间得到了很多同事、学生的帮助,在这里一并感谢。同时也感谢机械工业出版社华章公司编辑们的极大耐心,“苦苦”等待本书翻译成稿。特别感谢本书策划编辑朱劼的支持与鼓励,使得冗长的翻译过程变得不再那么无望。最后,还要感谢本书责任编辑游静的出色工作,她使本书的成书质量得到了明显的提升。感谢各位。
王晓阳
2020年5月于上海
前 言
Data Mining: The Textbook
“数据是新时代的石油。”
—Clive Humby
在过去二十多年中,数据挖掘领域取得了很大的进步,从计算机科学的角度来看尤其明显。尽管传统的概率与统计领域对数据分析已经有了广泛和深入的研究,但数据挖掘这个术语是由计算机科学相关的社区所创立的。对计算机科学家来说,计算的可扩展性、可用性和计算的执行都是极为重要的。
作为一门学科,数据科学需要一本超越传统的、仅专注于基本数据挖掘的教科书。最近几年,“数据科学家”这样的工作职位已经在市场上出现,这些人的工作职责就是从海量数据中窥探知识。在典型的应用中,数据类型倾向于异构及多样,基于多维数据类型的基本方法可能会失去效用,因此我们更需要将重点放在这些不同的数据类型以及使用这些数据类型的应用上。一本全面覆盖数据挖掘内容的书必须探索数据挖掘的不同方面,从基本技术出发,进而探讨复杂的数据类型,以及这些数据类型与基本技术的关系。虽然基本技术构成数据挖掘的良好基础,但它们并没有展示出数据分析真正复杂的全貌。本书在不影响介绍基本技术的情况下,研究这些高级的话题,因此本书可以同时用于初级和高级数据挖掘课程。到目前为止,还没有一本书用这种全面、综合的方式来覆盖所有这些话题。
本书假设读者已经有了一些概率统计和线性代数方面的基础知识,一般掌握了理工科本科时期学习的相关内容就足够了。对业界的从业者来说,只要对这些基础知识有一定的实际经验,就可以使用本书。较强的数学背景对学习那些高级话题的章节显然会有所帮助,但并不是必需的。有些章节专门介绍特殊的数据挖掘场景,比如文本数据、时序数据、离散序列、图数据等,这种专门的处理是为了更好地展示数据挖掘在多种应用领域有用武之地。
本书的章节可以分为三类。
基础章节:数据挖掘主要有四个“超级问题”,即聚类、分类、关联模式挖掘和异常分析,它们的重要性体现为许许多多的实际应用把它们当成基本构件。由此,数据挖掘研究者和实践者非常重视为这些问题设计有效且高效的方法。这些基础章节详细地讨论了数据挖掘领域针对这几个超级问题所提出的各类解决方法。
领域章节:这些章节讨论不同领域的特殊方法,包括文本数据、时序数据、序列数据、图数据、空间数据等。这些章节多数可以认为是应用性章节,因为它们探索特定领域的特殊性问题。
应用章节:计算机硬件技术和软件平台的发展导致了一些数据密集型应用的产生,如数据流系统、Web挖掘、社交网络和隐私保护。应用章节对这些话题进行了详细的介绍。前面所说的那些领域章节其实也集中讨论了由这些不同的数据类型而产生的各类应用。
给使用本书的教师的一点建议
本书的撰写特点使得它特别适用于数据挖掘基础和高级两门课程的教学。通过对不同重点的关注,本书也可用于不同类型的数据挖掘课程。具体来说,使用各种章节组合可提供的课程包括下面几种。
基础课程:数据挖掘基础课程应侧重于数据挖掘的基础知识。这门课可以使用本书的第1、2、3、4、6、8、10章。事实上,一门课可能无法覆盖这些章节中的所有内容,任课教师可根据需要从这些章节中选择他们感兴趣的话题。这门课也可以考虑使用本书的第5、7、9、11章的部分内容,这些章节确实是为高级课程准备的,但不妨在基础课程中引入一部分。
高级课程(基础):这门课将涵盖数据挖掘基础中的高级话题,并假定学生已经熟悉了本书第1~3章的内容,及第4、6、8、10章中的部分内容。这门课将主要关注第5、7、9、11章,如集成分析这样的内容对一门高级课程是有益的。此外,在基础课程中没来得及教授的第4、6、8、10章中的内容也可以在这门课中使用,并考虑增加第20章的隐私话题。
高级课程(数据类型):这门课可以教授文本挖掘、时序、序列、图数据和空间数据等内容,使用本书的第13、14、15、16、17章。也可以考虑增加第19章(如图聚类部分)和第12章(数据流)的内容。
高级课程(应用):应用课程可以与数据类型课程有所重叠,但有不同的侧重点。例如,在一个以应用为中心的课程中,重点应该放在建模而非算法方面。因此,第 13、14、15、16、17章中的内容可以保留,但可以跳过一些算法细节。因为对具体算法关注得少些,这几章可以比较快地介绍,建议把省下来的时间分配给重要的三章,即数据流(第12章)、Web挖掘(第18章)以及社交网络分析(第19章)。
本书的撰写风格简单,便于数学背景不多的本科生和业界从业人员使用。因此,对于学生、业界从业者以及科研人员,本书既可以作为初级的介绍性课本,也可以作为高级课程的课本。
在本书中,向量与多维数据点(包括类别型属性)都用上划线标注,如或y。向量或多维数据点可以由小写字母或大写字母来表示,只要有上划线标注即可。向量点积由中心点表示,如。矩阵用大写字母表示,不用上划线标注,如R。在整本书中,n×d的数据矩阵用D表示,包含n个d维的点,因此D中的各个数据点是一个d维列向量。若数据点是只包含一项的向量(即一维向量),那么n个数据点即可表示为一个n维列向量。比如,n个数据点的类别变量就是一个n维的列向量y。
致谢
感谢太太及女儿,感谢她们在我写这本书时所表达的爱与支持。写这本书需要大量的时间,这些时间都是从我的家人那里拿来的,所以这本书也是这段时间她们对我耐心支持的结果。
也感谢我的经理Nagui Halim,他给了我莫大的帮助,他在专业方面的支持对本书以及过去我所写的多本书都至关重要。
在撰写本书时,我得到了很多人的帮助,特别是下列人士给了我很好的反馈:Kanishka Bhaduri、Alain Biem、Graham Cormode、Hongbo Deng、Amit Dhurandhar、Bart Goethals、Alexander Hinneburg、Ramakrishnan Kannan、George Karypis、Dominique LaSalle、Abdullah Mueen、Guojun Qi、Pierangela Samarati、Saket Sathe、Karthik Subbian、Jiliang Tang、Deepak Turaga、Jilles Vreeken、Jieping Ye和Peixiang Zhao。感谢他们给了我很多具有建设性的反馈和建议。在过去的许多年中,我受益于许多合作者的真知灼见,这些对本书都有直接或间接的影响。首先要感谢我的长期合作者Philip S. Yu,我们一起合作了多年。其他与我有过深度合作关系的研究者还包括Tarek F. Abdelzaher、Jing Gao、Quanquan Gu、Manish Gupta、Jiawei Han、Alexander Hinneburg、Thomas Huang、Nan Li、Huan Liu、Ruoming Jin、Daniel Keim、Arijit Khan、Latifur Khan、Mohammad M. Masud、Jian Pei、Magda Procopiuc、Guo-jun Qi、Chandan Reddy、Jaideep Srivastava、Karthik Subbian、Yizhou Sun、Jiliang Tang、Min-Hsuan Tsai、Haixun Wang、Jianyong Wang、Min Wang、Joel Wolf、Xifeng Yan、Moha-mmed Zaki、ChengXiang Zhai和Peixiang Zhao。
还要感谢我的导师James B. Orlin,感谢他在我早期研究中所给予的指导。尽管我已经不在原来的研究领域里工作,但我从他那里学到的东西形成了我解决问题的关键方式,特别是他告诉我在科研中依赖直觉并使用简洁思路是很重要的。这种做法在科研中的重要性其实还没有受到广泛的重视。本书就是用了一种简单、直观的方法撰写的,这样科研人员及业界从业者都能更容易理解本领域的研究内容。
感谢Lata Aggarwal帮我用微软的PowerPoint画了书中的一些图。
作者简介
Charu C. Aggarwal 在纽约约克顿高地的IBM托马斯·J.沃森研究中心工作,是一位杰出研究员(DRSM)。他于1993年从坎普尔理工学院(IIT)获得学士学位,于1996年从麻省理工学院获得博士学位,并长期耕耘在数据挖掘领域。他发表了250多篇论文,撰写了80多篇专利文献,并编著和撰写了14本著作,其中包括第一部完整从计算机科学角度撰写的异常分析著作。由于他的专利具有很好的商用价值,IBM三次授予他“创新大师”称号。另外,他在生物威胁探测方面的工作于2003年获得IBM企业奖,在隐私技术方面的工作于2008年获得IBM杰出创新奖,在数据流方面的工作于2009年获得IBM杰出技术成就奖,在系统S中的贡献于2008年获得IBM研究部门奖。他的基于冷凝方法进行隐私保护下的数据挖掘方法获得了EDBT会议于2014年颁发的“久经考验”奖。
他曾担任2014年IEEE大数据会议的联席总主席,并从2004年至2008年担任IEEE Transactions on Knowledge and Data Engineering(TKDE)的副主编。他目前是ACM Transac-tions on Knowledge Discovery from Data(TKDD)的副主编,Data Mining and Knowledge Dis-
covery(DMKD)的执行主编,ACM SIGKDD Explorations的主编,以及Knowledge and Information Systems(KAIS)的副主编。他同时还担任由Springer出版的社交网络系列丛刊(LNSN)的顾问委员会成员。他曾担任过SIAM数据挖掘工作组的副主任。他由于对知识发现和数据挖掘算法的贡献而当选为ACM会士和IEEE会士。