计算机科学丛书
点击查看第二章
点击查看第三章
数据挖掘导论(原书第2版)
Introduction to Data Mining,Second Edition
[美] 陈封能(Pang-Ning Tan)
迈克尔·斯坦巴赫(Michael Steinbach)
阿努吉·长帕坦(Anuj Karpatne)
维平·库玛尔(Vipin Kumar) 著
段 磊 张天庆 等译
第1章 绪 论
数据采集和存储技术的迅速发展,加之数据生成与传播的便捷性,致使数据爆炸性增长,最终形成了当前的大数据时代。围绕这些数据集进行可行的深入分析,对几乎所有社会领域的决策都变得越来越重要:商业和工业、科学和工程、医药和生物技术以及政府和个人。然而,数据的数量(体积)、复杂性(多样性)以及收集和处理的速率(速度)对于人类来说都太大了,无法进行独立分析。因此,尽管大数据的规模性和多样性给数据分析带来了挑战,但仍然需要自动化工具从大数据中提取有用的信息。
数据挖掘将传统的数据分析方法与用于处理大量数据的复杂算法相结合。在本章中,我们将介绍数据挖掘的概况,并概述本书所涵盖的关键主题。首先介绍一些需要高级数据分析技术的应用。
商业和工业 借助POS(销售点)数据收集技术(条码扫描器、射频识别(RFID)和智能卡技术),零售商可以在商店的收银台收集顾客购物的最新数据。零售商可以利用这些信息,加上电子商务网站的日志、客服中心的顾客服务记录等其他的重要商务数据,能够更好地理解顾客的需求,做出更明智的商业决策。
数据挖掘技术可以用来支持广泛的商务智能应用,如顾客分析、1定向营销、工作流管理、商店分布、欺诈检测以及自动化购买和销售。最近一个应用是快速股票交易,在这个交易中,需要使用相关的金融交易数据在不到一秒的时间内做出买卖决定。数据挖掘还能帮助零售商回答一些重要的商业问题,如:“谁是最有价值的顾客?”“什么产品可以交叉销售或提升销售?”“公司明年的营收前景如何?”这些问题促使着数据挖掘技术的发展,比如关联分析(见第5章和第6章)。
随着互联网不断改变我们日常生活中互动和做决定的方式,能够生成大量的在线体验数据,例如网页浏览、信息传递,以及在社交网站上发布信息,这为使用Web数据的商务应用提供了机会。例如,在电子商务领域,用户的在线浏览或购物偏好数据可以用来推荐个性化的产品。数据挖掘技术也在支持其他基于互联网的服务方面扮演着重要的角色,如过滤垃圾信息、回答搜索查询,以及建议社交圈的更新和联系。互联网上大量的文本、图像和视频使得数据挖掘方法有了许多进展,如深度学习(这将在第4章进行讨论)。这些进展推动了诸多应用领域的进步,如目标识别、自然语言翻译与自动驾驶。
另一个经历大数据快速转型的应用领域是移动传感器和移动设备的使用,如智能手机和可穿戴计算设备。借助更好的传感器技术,可以利用嵌入在相互连接的日常设备上的低成本传感器(称为物联网(IOT))来收集物理世界的各种信息。在数字系统中,物理传感器的深度集成正开始产生大量与环境相关的多样化和分布式的数据,可用于设计方便、安全、节能的家庭系统,以及规划智能城市。
医学、科学与工程 医学、科学与工程界的研究者正在快速收集大量数据,这些数据对获得有价值的新发现至关重要。例如,为了更深入地理解地球的气候系统,NASA已经部署了一系列的地球轨道卫星,不停地收集地表、海洋和大气的全球观测数据。然而,2由于这些数据的规模和时空特性,传统的方法常常不适合分析这些数据集。数据挖掘所开发的技术可以帮助地球科学家回答如下问题:“干旱和飓风等生态系统扰动的频度和强度与全球变暖之间有何联系?”“海洋表面温度对地表降水量和温度有何影响?”“如何准确地预测一个地区的生长季节的开始和结束?”
再举一个例子,分子生物学研究者希望利用当前收集的大量基因组数据,更好地理解基因的结构和功能。过去,传统方法只允许科学家在一个实验中每次研究少量基因,微阵列技术的最新突破已经能让科学家在多种情况下比较数以千计的基因特性。这种比较有助于确定每个基因的作用,或许可以查出导致特定疾病的基因。然而,由于数据的噪声和高维性,需要新的数据分析方法。除了分析基因序列数据外,数据挖掘还能用来处理生物学的其他难题,如蛋白质结构预测、多序列校准、生物化学路径建模和系统发育学。
另一个例子是利用数据挖掘技术来分析越来越多的电子健康记录(EHR)数据。不久之前,对患者的研究需要手动检查每一个患者的身体记录,并提取与所研究的特定问题相关的、具体的信息。EHR允许更快和更广泛地探索这些数据。然而,只有患者在看医生或住院期间才能对他们进行观察,并且在任何特定访问期间只能测量关于患者健康的少量细节,因此存在重大挑战。
目前,EHR分析侧重于简单类型的数据,如患者的血压或某项疾病的诊断代码。然而,很多类型更复杂的医学数据也被收集起来,例如心电图(ECG)和磁共振成像(MRI)或功能性磁共振成像(fMRI)的神经元图像。尽管分析这些数据十分具有挑战性,但其中包含了患者的重要信息。将这些数据与传统的EHR和基因组数据集成分析是实现精准医学所需的功能之一,旨在提供更加个性化的患者护理。3
1.1 什么是数据挖掘
数据挖掘是在大型数据库中自动地发现有用信息的过程。数据挖掘技术用来探查大型数据库,发现先前未知的有用模式。数据挖掘还可以预测未来的观测结果,比如顾客在网上或实体店的消费金额。
并非所有的信息发现任务都被视为数据挖掘。例如查询任务:在数据库中查找个别记录,或查找含特定关键字的网页。这是因为这些任务可以通过与数据库管理系统或信息检索系统的简单交互来完成。而这些系统主要依赖传统的计算机科学技术,包括先进高效的索引结构和查询处理算法,有效地组织和检索大型数据存储库的信息。尽管如此,数据挖掘技术可以基于搜索结果与输入查询的相关性来提高搜索结果的质量,因此被用于提高这些系统的性能。
数据库中的数据挖掘与知识发现
数据挖掘是数据库中知识发现(Knowledge Discovery in Database,KDD)不可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程,如图1.1所示。该过程包括一系列转换步骤,从数据预处理到数据挖掘结果的后处理。
输入数据可以以各种形式存储(平面文件、电子表格或关系表),并且可以存储在集中式数据库中,或分布在多个数据站点上。预处理(preprocessing)的目的是将原始输入数据转换为适当的格式,以便进行后续分析。数据预处理涉及的步骤包括融合来自多个数据源的数据,清洗数据以消除噪声和重复的观测值,选择与当前数据挖掘任务相关的记录和特征。由于收集和存储数据的方式多种多样,数据预处理可能是整个知识发现过程中最费力、最耗时的步骤。
“结束循环”(closing the loop)通常指将数据挖掘结果集成到决策支持系统的过程。例如,在商业应用中,数据挖掘的结果所揭示的规律可以与商业活动管理工具结合,从而开展或测试有效的商品促销活动。这样的结合需要后处理(postprocessing)步骤,确保只将那些有效的和有用的结果集成到决策支持系统中。后处理的一个例子是可视化,它使得数据分析者可以从各种不同的视角探査数据和数据挖掘结果。在后处理阶段,还能使用统计度量或假设检验,删除虚假的数据挖掘结果(见第10章)。
1.2 数据挖掘要解决的问题
前面提到,面临大数据应用带来的挑战时,传统的数据分析技术经常遇到实际困难。下面是一些具体的问题,它们引发了人们对数据挖掘的研究。
可伸缩 由于数据产生和采集技术的进步,数太字节(TB)、数拍字节(PB)甚至数艾字节(EB)的数据集越来越普遍。如果数据挖掘算法要处理这些海量数据集,则算法必须是可伸缩的。许多数据挖掘算法采用特殊的搜索策略来处理指数级的搜索问题。为实现可伸缩可能还需要实现新的数据结构,才能以有效的方式访问每个记录。例如,当要处理的数据不能放进内存时,可能需要核外算法。使用抽样技术或开发并行和分布式算法也可以提高可伸缩程度。附录F给出了伸缩数据挖掘算法的技术总体概述。5
高维性 现在,常常会遇到具有成百上千属性的数据集,而不是几十年前常见的只具有少量属性的数据集。在生物信息学领域,微阵列技术的进步已经产生了涉及数千特征的基因表达数据。具有时间分量或空间分量的数据集也通常具有很高的维度。例如,考虑包含不同地区的温度测量结果的数据集,如果在一个相当长的时间周期内反复地测量,则维数(特征数)的增长正比于测量的次数。为低维数据开发的传统数据分析技术通常不能很好地处理这类高维数据,如维灾难问题(见第2章)。此外,对于某些数据分析算法,随着维数(特征数)的增加,计算复杂度会迅速增加。
异构数据和复杂数据 通常,传统的数据分析方法只处理包含相同类型属性的数据集,或者是连续的,或者是分类的。随着数据挖掘在商务、科学、医学和其他领域的作用越来越大,越来越需要能够处理异构属性的技术。近年来,出现了更复杂的数据对象。这种非传统类型的数据如:含有文本、超链接、图像、音频和视频的Web和社交媒体数据,具有序列和三维结构的DNA数据,由地球表面不同位置、不同时间的测量值(温度、压力等)构成的气候数据。为挖掘这种复杂对象而开发的技术应当考虑数据中的联系,如时间和空间的自相关性、图的连通性、半结构化文本和XML文档中元素之间的父子关系。
数据的所有权与分布 有时,需要分析的数据不会只存储在一个站点,或归属于一个机构,而是地理上分布在属于多个机构的数据源中。这就需要开发分布式数据挖掘技术。分布式数据挖掘算法面临的主要挑战包括:(1)如何降低执行分布式计算所需的通信量?(2)如何有效地统一从多个数据源获得的数据挖掘结果?(3)如何解决数据安全和隐私问题?6
非传统分析 传统的统计方法基于一种假设检验模式,即提出一种假设,设计实验来收集数据,然后针对假设分析数据。但是,这一过程劳力费神。当前的数据分析任务常常需要产生和评估数千种假设,因此需要自动地产生和评估假设,这促使人们开发了一些数据挖掘技术。此外,数据挖掘所分析的数据集通常不是精心设计的实验的结果,并且它们通常代表数据的时机性样本(opportunistic sample),而不是随机样本(random sample)。
1.3 数据挖掘的起源
如图1.1所示,虽然数据挖掘最开始被认为是KDD框架中的一个中间过程,但是多年来它作为计算机科学的一个学术领域,关注着KDD的所有方面,包括数据预处理、数据挖掘和后处理。它的起源可以追溯到20世纪80年代末,当时组织了一系列围绕数据库中知识发现的主题研讨会,汇集了来自不同学科的研究人员,讨论关于应用计算技术从大型数据库中提取可利用的知识的挑战和机遇。这些由来自学术界和工业界的研究人员和实践者参加的研讨会很快成为非常受欢迎的会议。会议的成功举办,以及企业和行业在招聘具有数据挖掘背景的新员工时所表现出的兴趣,推动了这一领域的巨大发展。
该领域最初建立在研究人员早先使用的方法和算法之上。特别是,数据挖掘研究人员借鉴了如下领域的思想方法:(1)来自统计学的抽样、估计和假设检验;(2)来自人工智能、模式识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地采纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理以及可视化和信息检索,并将其延伸至解决大数据挖掘的挑战。 图1.2 数据挖掘汇集了许多学科的知识
一些其他领域也起到重要的支撑作用。特别是,7需要数据库系统提供高效的存储、索引和查询处理。源于高性能(并行)计算的技术在处理海量数据集方面常常是非常重要的。分布式技术还可以帮助处理海量数据,并且当数据不能集中到一起处理时显得尤为重要。图1.2显示了数据挖掘与其他领域之间的联系。
数据科学和数据驱动发现
数据科学(data science)是一个研究及应用工具和技术从数据中获取有用的见解的跨学科领域。虽然它被认为是一个具有独特身份的新兴领域,但其中的工具和技术通常来自数据分析的许多不同领域,如数据挖掘、统计学、人工智能、机器学习、模式识别、数据库技术以及分布式和并行计算(见图1.2)。
数据科学作为一个新兴领域出现是一种共识。现有的数据分析领域,通常没有为新兴应用中出现的数据分析任务提供一整套分析工具。相反,处理这些任务通常需要广泛的计算、数学和统计能力。为了说明分析此类数据面临的挑战,请设想以下示例。社交媒体和网络为社会科学家提供了大量观察和定量测量人类行为的新机会。为了进行这样的研究,社会科学家会与具备网页挖掘、自然语言处理(NLP)、网络分析、数据挖掘和统计等技能的分析师合作。与传统的基于调查的社会科学研究相比,这种分析需要更为广泛的技术和工具,并且涉及的数据量更大。8因此,数据科学必然是一个建立在许多领域持续合作基础上的高度跨学科的领域。
数据科学的数据驱动方法强调从数据中直接发现模式和关系,特别是在大量数据中,通常不需要广泛的领域知识。这种方法中一个值得注意的成功例子是神经网络的进步,即深度学习,它在长期以来被认为具有挑战性的领域特别成功。例如,识别照片或视频中的对象,或者是识别语音中的文字,以及其他应用领域中也一样。但是这只是数据驱动方法成功的一个例子,并且在许多其他数据分析领域也出现了显著的改进。这些发展中的内容都是本书之后会进行介绍的主题。
文献注释中给出了一些关于纯数据驱动方法的潜在局限性的注意事项。
1.4 数据挖掘任务
通常,数据挖掘任务分为下面两大类。
- 预测任务 这些任务的目标是根据其他属性的值预测特定属性的值。被预测的属性一般称目标变量(target variable)或因变量(dependent variable),而用来做预测的属性称为解释变量(explanatory variable)或自变量(independent variable)。
- 描述任务 其目标是导出概述数据中潜在联系的模式(相关、趋势、聚类、轨迹和异常)。本质上,描述性数据挖掘任务通常是探查性的,并且常常需要后处理技术验证和解释结果。
图1.3给出了本书其余部分讲述的4种主要的数据挖掘任务。
预测建模(predictive modeling)指为目标变量建立模型,并将其作为解释变量的函数。有两类预测建模任务:分类(classification),用于预测离散的目标变量;回归(regression),用于预测连续的目标变量。例如,预测一个Web用户是否会在网上书店买书是分类任务,9因为该目标变量是二值变量,而预测某股票的未来价格则是回归任务,因为价格具有连续值属性。两项任务的目标都是训练一个模型,使目标变量的预测值与实际值之间的误差达到最小。预测建模可以用来确定顾客对产品促销活动的反应,预测地球生态系统的扰动,或根据检査结果判断病人是否患有某种疾病。
例1.1 预测花的种类 考虑如下任务:根据花的特征预测花的种类。本例根据鸢尾花是否属于Setosa、Versicolour或Virginica这三类之一对其进行分类。为执行这一任务,我们需要一个数据集,包含这三类花的特性。一个具有这类信息的数据集是著名的鸢尾花数据集,可从加州大学欧文分校的机器学习数据库中得到(http://www.ics.uci.edu/~mlearn )。除花的种类之外,该数据集还包含萼片宽度、萼片长度、花瓣长度和花瓣宽度四个其他属性。图1.4给出鸢尾花数据集中150种花的花瓣宽度与花瓣长度的对比图。花瓣宽度分成low、medium、high三类,分别对应于区间[0,0.75)、[0.75,1.75)、[1.75,∞)。10花瓣长度也分成low、medium、high三类,分别对应于区间[0,2.5)、[2.5,5)、[5,∞)。根据花瓣宽度和长度的类别,可以推出如下规则:
- 花瓣宽度和花瓣长度为low蕴涵Setosa。
- 花瓣宽度和花瓣长度为medium蕴涵Versicolour。
- 花瓣宽度和花瓣长度为high蕴涵Virginica。
尽管这些规则不能对所有的花进行分类,但是已经可以对大多数花进行很好的分类(尽管不完善)。注意:根据花瓣宽度和花瓣长度,Setosa种类的花完全可以与Versicolour和Virginica种类的花分开,但是后两类花在这些属性上有一些重叠。
关联分析(association analysis)用来发现描述数据中强关联特征的模式。所发现的模式通常用蕴涵规则或特征子集的形式表示。由于搜索空间是指数规模的,关联分析的目标是以有效的11方式提取最有趣的模式。关联分析的应用包括找出具有相关功能的基因组、识别用户一起访问的Web页面、理解地球气候系统中不同元素之间的联系等。
例1.2 购物篮分析 表1.1给出的事务是在一家杂货店收银台收集的销售数据。关联分析可以用来发现顾客经常同时购买的商品。例如,我们可能发现规则{纸尿布}→{牛奶}。该规则暗示购买纸尿布的顾客多半会购买牛奶。这种类型的规则可以用来发现各类商品中可能存在的交叉销售的商机。
聚类分析(cluster analysis)旨在发现紧密相关的观测值组群,使得与属于不同簇的观测值相比,属于同一簇的观测值相互之间尽可能类似。聚类可用来对相关的顾客分组、找出显著影响地球气候的海洋区域以及压缩数据等。
例1.3 文档聚类 表1.2给出的新闻文章可以根据它们各自的主题分组。每篇文章表示为词频率对(w:c)的集合,其中w是词,而c是该词在文章中出现的频率。在该数据集中,有两个自然簇。第一个簇由前四篇文章组成,对应于经济新闻;而第二个簇包含后四篇文章,对应于卫生保健新闻。一个好的聚类算法应当能够根据文章中出现的词的相似性,识别这两个簇。
异常检测(anomaly detection)的任务是识别其特征显著不同于其他数据的观测值。这样的观测值称为异常点(anomaly)或离群点(outlier)。异常检测算法的目标是发现真正的异常点,而避免错误地将正常的对象标注为异常点。换言之,一个好的异常检测器必须具有高检测率和低误报率。异常检测的应用包括欺诈检测、网络攻击、疾病的不寻常模式、生态系统扰动(如干旱、洪水、火灾、飓风)等。
例1.4 信用卡欺诈检测 信用卡公司记录每个持卡人所做的交易,同时也记录信用额度、年龄、年薪和地址等个人信息。由于与合法交易相比,欺诈行为的数量相对较少,因此异常检测技术可以用来构造用户的合法交易的轮廓。当一个新的交易到达时就与之比较。如果该交易的特性与先前构造的轮廓很不相同,就把交易标记为可能是欺诈。
1.5 本书组织结构
本书从算法的角度介绍数据挖掘所使用的主要原理与技术。为了更好地理解数据挖掘技术如何用于各种类型的数据,研究这些原理与技术是至关重要的。对于有志于从事这个领域研究的读者,本书也可作为一个起点。
我们从数据(第2章)开始本书的技术讨论。该章讨论数据的基本类型、数据质量、预处理技术以及相似性和相异性度量。这些内容尽管可以快速阅读,但却是数据分析的重要基础。第3章和第4章涵盖分类。第3章是基础,讨论决策树分类和一些重要的分类问题:过拟合、欠拟合、模型选择和性能评估。在此基础上,第4章介绍其他重要的分类技术:基于规则的系统、最近邻分类器、贝叶斯分类器、人工神经网络(包含深度学习)、支持向量机和组合分类器(组合分类器是一组分类器)。这一章还讨论多类问题和不平衡类问题。这些主题可以彼此独立地学习。
关联分析将在第5章和第6章进行讨论。第5章介绍关联分析的基础——频繁项集、关联规则以及产生它们的一些算法。特殊类型的频繁项集(极大项集、闭项集和超团集)对于数据挖掘也是重要的,它们也在这一章讨论。该章最后讨论关联分析的评估度量。第6章考虑各种更高级的专题,包括如何将关联分析用于分类数据和连续数据,或用于具有概念分层的数据(概念分层是对象的层次分类,例如库存商品→服装→鞋→运动鞋)。该章还介绍如何扩展关联分析,以发现序列模式(涉及次序的模式)、图中的模式、负联系(如果一个项出现,则其他项不出现)。
聚类分析在第7章和第8章讨论。第7章先介绍不同类型的簇,然后给出三种特定的聚类技术:K均值、凝聚层次聚类和DBSCAN。接下去讨论验证聚类算法结果的技术。更多的聚类概念和技术在第8章探讨,包括模糊和概率聚类、自组织映射(SOM)、基于图的聚类、谱聚类和基于密度的聚类。这一章还讨论可伸缩问题和选择聚类算法需要考虑的因素。
第9章是关于异常检测的。在给出一些基本定义之后,介绍了若干类型的异常检测,包括统计的、基于距离的、基于密度的、基于聚类的、基于重构的、单类分类的和信息论方法。最后一章(第10章)对其他章节进行了补充,并且讨论了避免虚假结果的主要统计概念,然后在前面章节提出的数据挖掘技术的背景下讨论了这些概念。这些技术包括统计假设检验、p值、伪发现率和置换检验。附录A至F简要回顾了本书各部分中的重要主题,包括线性代数、维归约、统计、回归、优化以及大数据挖掘技术的拓展。
尽管与统计学和机器学习相比,数据挖掘还很年轻,但是数据挖掘学科领域已经覆盖太大,很难用一本书涵盖。对于本书仅简略涉及的主题(如数据质量),我们在相应章的文献注释部分选列了一些参考文献。对于本书未涵盖的主题(如挖掘流数据和隐私保护数据挖掘),本章下面的文献注释提供了相关参考文献。
文献注释
数据挖掘已有许多教科书。导论性教科书包括Dunham[16]、Han等[29]、Hand等[31]、Roiger和Geatz[50]、Zaki和Meira[61],以及Aggarwal[2]。更侧重于商务应用的数据挖掘书籍包括Berry和Linoff[5]、Pyle[47]和Parr Rud[45]。侧重统计学习的书籍包括Cherkassky和Mulier[11]以及Hastie等[32]。侧重机器学习或模式识别的一些书籍包括Duda等[15]、Kantardzic[34]、Mitchell[43]、Webb[57],以及Witten和Frank[58]。还有一些更专业的书籍:Chakrabarti[9](Web挖掘)、Fayyad等[20](数据挖掘早期文献汇编)、Fayyad等[18](可视化)、Grossman等[25](科学与工程)、Kargupta和Chan[35](分布式数据挖掘)、Wang等[56](生物信息学),以及Zaki和Ho[60](并行数据挖掘)。
有许多与数据挖掘相关的会议。致力于该领域研究的一些主要会议包括ACM SIGKDD知识发现与数据挖掘国际会议(KDD)、IEEE数据挖掘国际会议(ICDM)、SIAM数据挖掘国际会议(SDM)、欧洲数据库中知识发现的原理与实践会议(PKDD)和亚太知识发现与数据挖掘会议(PAKDD)。15数据挖掘的文章也可以在其他主要会议中找到,如神经信息处理系统会议(NIPS 现改名为NeurIPS。——译者注)、国际机器学习会议(ICML)、ACM SIGMOD/PODS会议、超大型数据库国际会议(VLDB)、信息和知识管理会议(CIKM)、数据工程国际会议(ICDE)、人工智能全国学术会议(AAAI)、IEEE国际大数据会议、IEEE国际会议数据科学和高级分析会议(DSAA)。
数据挖掘方面的期刊包括《IEEE知识与数据工程汇刊》(IEEE Transactions on Knowledge and Data Engineering)、《数据挖掘和知识发现》(Data Mining and Knowledge Discovery)、《知识与信息系统》(Knowledge and Information Systems)、《ACM数据知识发现汇刊》(ACM Transactions on Knowledge Discovery from Data)、《统计分析和数据挖掘》(Statistical Analysis and Data Mining)和《信息系统》(Information Systems)。存在各种开源数据挖掘软件,包括Weka[27]和Scikit-learn[46]。最近,数据挖掘软件如Apache Mahout和Apache Spark已经用于分布式计算平台上的大型问题。
有大量数据挖掘的一般性文章界定该领域及其与其他领域(特别是与统计学)之间的联系。Fayyad等[19]介绍数据挖掘,以及如何将它与整个知识发现过程协调。Chen等[10]从数据库角度阐释数据挖掘。Ramakrishnan和Grama[48]给出数据挖掘的一般讨论,并提出若干观点。与Friedman[21]一样,Hand[30]讨论数据挖掘与统计学的区别。Lambert[40]考察统计学在大型数据集上的应用,并对数据挖掘与统计学各自的角色提出一些评论。Glymour等[23]考虑统计学可能为数据挖掘提供的教训。Smyth等[53]讨论诸如数据流、图形和文本等新的数据类型和应用如何推动数据挖掘演变。新出现的数据挖掘应用也被Han等[28]考虑,而Smyth[52]介绍数据挖掘研究所面临的一些挑战。Wu等[59]讨论如何将数据挖掘研究成果转化成实际工具。数据挖掘标准是Grossman等[24]论文的主题。Bradley[7]讨论如何将数据挖掘算法扩展到大型数据集。
随着数据挖掘新的应用的出现,数据挖掘会面临新的挑战。例如,近年来人们对数据挖掘破坏隐私问题的关注逐步上升,在电子商务和卫生保健领域的应用尤其如此。这样,人们对开发保护用户隐私的数据挖掘算法的兴趣也逐步上升。为挖掘加密数据或随机数据开发的技术称作保护隐私的数据挖掘。该领域的一些一般文献包括Agrawal和Srikant[3]、Clifton等[12]以及Kargupta等[36]的论文。16Vassilios等[55]提供一个综述。另一个值得关注的领域是可能用于某些应用的预测模型的偏差,例如筛选求职者或决定监狱假释[39]。由于这种应用的预测模型通常都是黑箱模型,即不能以任何直接方式解释的模型,因此评估这些应用产生的结果是否有偏差会变得更加困难。
数据科学的组成领域,或者更广泛地说,它们所代表的知识发现新范式[33]具有很大的潜力,其中一些已经实现。然而,重要的是,要强调数据科学的工作主要是和观测数据相联系的,如各组织收集数据应当作为其正常运行的一部分。这样做的结果是抽样偏差非常常见,并且因果的确定变得更加困难。正是出于这个以及其他一些原因,通常很难解释使用这些数据建立的预测模型[42,49]。因此,理论、实验和计算模拟将继续成为许多领域选择的方法,特别是与科学相关的领域。
更重要的是,纯数据驱动的方法往往忽略了特定领域的现有知识。这些模型可能表现不佳,例如,预测不可能的结果或未能推广到新的情况。但是如果模型确实运作良好,例如具有较高的预测精度,那么这种方法对于某些领域的实际目的可能是足够的。但许多领域的目标是深入了解基础领域,如医学和科学领域。最近的一些研究工作将先前存在的领域知识考虑在内试图解决这些问题,以创建理论指导的数据科学[17,37]。
近年来,我们看到快速产生连续的数据流的应用逐渐增加。数据流应用的例子包括网络通信流、多媒体流和股票价格。挖掘数据流时,必须考虑一些因素,如可用内存有限、需要联机分析、数据随时间而变等。流数据挖掘已经成为数据挖掘的一个重要领域。有关参考文献有Domingos和Hulten[14](分类)、Giannella等[22](关联分析)、Guha等[26](聚类)、Kifer等[38](变化检测)、Papadimitriou等[44](时间序列)以及Law等[41](维归约)。
另一个值得关注的领域是推荐和协同过滤系统[1,6,8,13,54],该系统可以给某人推荐可能喜欢的电影、电视节目、书籍和产品等。在很多情况下,这个问题或者至少其中一个组成部分可以被视为预测问题,因此可以应用数据挖掘技术[4,51]。
参考文献
习题
1.讨论下列每项活动是否为数据挖掘任务。
(a) 根据性别划分公司的顾客。
(b) 根据可赢利性划分公司的顾客。
(c) 计算公司的总销售额。
(d) 按学生的标识号对学生数据库排序。
(e) 预测掷一对骰子的结果。
(f) 使用历史记录预测某公司未来的股票价格。
(g) 监视病人心率的异常变化。
(h) 监视地震活动的地震波。
(i) 提取声波的频率。
2.假定你是一个数据挖掘顾问,受雇于一家因特网搜索引擎公司。举例说明如何使用诸如聚类、分类、关联规则挖掘和异常检测等技术,让数据挖掘为公司提供帮助。
3.对于如下每个数据集,解释数据的私有性是否是重要问题。
(a) 从1900年到1950年收集的人口普查数据。
(b) 访问你的Web站点的用户的IP地址和访问时间。
(c) 从地球轨道卫星得到的图像。
(d) 电话号码簿上的姓名和地址。
(e) 从网上收集的姓名和电子邮件地址。