Pythoner_MLer

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

第1章  绪论

  数据挖掘是一种技术,将传统的数据分析方法和处理大量数据的复杂算法相结合。数据挖掘为探查和分析新的数据类型以及用新方法分析旧有数据类型提供了令人振奋的机会。我们概述数据挖掘,并列举所涵盖的关键主题。

  介绍数据挖掘分析技术的一些应用:

  商务:借助POS数据收集技术[条码扫描器、射频识别和智能卡技术],零售商可以在其商店的首映太收集顾客购物的最新数据。零售商可以利用这些信息,加上电子商务网站的日志、电购中心的顾客服务记录等其他的重要商务数据,更好地理解顾客的需求,做出明智的商务决策。

  数据挖掘技术可以用来支持广泛的商务智能应用,如顾客分析、定向营销、工作流管理、商店分布和欺诈检测等。数据挖掘还能帮助零售商回答一些重要的商务问题。如“谁是最有价值的顾客?”“什么产品可以交叉销售或提升销售?”“公司明年的收入前景如何?”这些问题催生了一种新的数据分析技术---关联分析。

  医学、科学与工程:例如为了更深入地理解地球的气候系统,NASA已经部署了一系列的地球轨道卫生,不停地收集地表、海洋和大气的全球观测数据。然而由于这些数据的规模和时空特性,传统的方法常常不适合分析这些数据集。数据挖掘开发的技术可以帮助科学家回答如下问题“干旱和飓风等生态系统扰动的频度和强度与全球变暖之间有何联系?”“海洋表面温度对地表降水量和温度有何影响?”“如何准确地预测一个地区的生长季节的开始和结束?”。

1.1 什么是数据挖掘

  数据挖掘是在大兴数据存储库中,自动地发现有用信息的过程,发现先前未知的有用模式。还可以预测未来观测结果。例如,预测一位新的顾客是否会在一家百货公司消费100美元以上。

  并非所有的信息发现任务都被视为数据挖掘。例如,使用数据库管理系统查找个别的记录,或通过因特网的搜索引擎查找特定的web页面,则是信息检索(information retrieval)领域的任务。虽然这些任务非常重要,可能涉及使用复杂得算法和数据结构,但是他们主要依赖传统的计算机科学技术和数据的明显特征来创建索引结构,从而有效地组织和检索信息。尽管如此,人们也在利用数据挖掘技术增强信息检索系统的能力。

  数据挖掘与知识发现

  数据挖掘是数据库章知识发现(knowledge discovery in database,KDD)不可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程。如下图所示,该过程包括一系列转换步骤,从数据的预处理到数据挖掘结果的后处理。 

   

  输入数据可以以各种形式存储,并且可以驻留在集中的数据存储库中,或分布在多个站点上。数据预处理的目的是将未加工的输入数据转换成适合分析的形式。数据预处理设计的步骤包括融合来自多个数据源的数据,清洗数据以及消除噪声和重复的观测值,选择与当前数据挖掘任何相关的记录和特征。由于收集和存储数据的方式多种多样,数据预处理可能是整个知识发现过程中最费力、最耗时的步骤。

  结束循环通常指将数据挖掘结构集成到决策支持系统的过程。例如,在商业应用中,数据挖掘的结果所揭示的归类可以结合商业活动管理工具,从而开展或测试 有效的商品促销活动。这样的结合需要后处理步骤,确保只将那些有效的和有用的结果集成到决策支持系统中。后处理的一个例子是可视化,它使得数据分析者可以从各种不同的视角探查数据和数据挖掘结果。在后处理阶段,还能使用统计度量或假设检验,删除虚假的数据挖掘结果。

1.2 数据挖掘要解决的问题

  可伸缩:由于数据产生和收集技术的进步,数G\T\P字节的数据越来月普遍。如果数据挖掘算法要处理这些海量数据集,则算法必须是可伸缩的(scalable)。许多数据挖掘算法使用特殊的搜索策略处理指数级搜索问题。为实现可伸缩可能还需要实现新的数据结构,才能以有效的方式访问每个记录。例如,当要处理的数据不能放进内存中,可能需要非内存算法。使用抽样技术活开发并行和分布算法也可以提高可伸缩程度。

  高维性:常常遇到具有成本上千属性的数据集。在生物信息学领域,微阵列技术的进步已经产生了涉及数千特征的基因表达数据。具有时间和空间分量的数据集也经常具有很高的维度。例如,考虑包含不同地区的温度测量结果的数据集,如果在一个相当长的时间周期内反复地测量,则维度(特征数)的增长正比于测量的次数。为低维数据开发的传统的数据分析技术通常不能很好地处理这样的高维数据。此外对于某些数据分析算法,随着维度的增加,计算复杂性迅速增加。

  异种数据和复杂数据:传统的数据分析方法只处理包含相同类型属性的数据集,或者是连续的,或者是分类的。随着数据挖掘在商务、科学、医学和其他领域的作用越来越大,越来越需要能够处理异种属性的技术。近年来,已经出现了更复杂的数据对象。这些非传统的数据类型的例子有:含有半结构化文本和超链接的web页面集、具有序列和三维结构的DNA数据、包含地球表面不同位置上的时间序列测量值(温度、气压等)的气象数据。为挖掘这种复杂对象而开发的技术应当考虑数据中的联系,如时间和空间的自相关性、图的连通性、半结构化文本和XML文档中元素之间的父子联系。

  数据的所有权和分布:有时,需要分析的数据并发存放在一个站点,或归属于一个机构,而是地理上分布在属于多个机构的资源中。这就需要开发分布式数据挖掘技术。分布式数据挖掘算法面临的主要挑战包括:(1)如何降低执行分布式计算所需的通信量?(2)如何有效地统一从多个资源得到的数据挖掘结果?(3)如何处理数据安全问题?

  非传统的分析:传统的统计方法基于一种假设-检验模式,即提出一种假设,设计实验来收集数据,然后针对假设分析数据。但是,这一过程劳力费神。当前的数据分析任务常常需要产生和评估数千种假设,因此需要自动地产生和评估假设,这促使人们开发了一些数据挖掘技术。此外,数据挖掘分析的数据集通常不是精心设计的实验的结果,并且他们通常代表数据的时机性样本,而不是随机样本。而且,这些数据集常常涉及非传统的数据类型和数据分布。

1.3 数据挖掘的起源

  数据挖掘利用来自如下一些领域的思想:(1)来自统计学的抽样、估计和假设检验,(2)人工智能、模式识别和及其学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、捷石化和信息检索。

  一些其他领域也起到重要的支撑作用。特别地,需要数据库系统提供有效的存储、索引和查询处理支持。源于高性能(并行)计算的技术在处理海量数据集方面常常是重要的。分布式技术也能帮助处理海量数据,并且当数据不能集中到一起处理时更是至关重要。

  如下图展示数据挖掘与其他领域之间的联系:

  

1.4 数据挖掘任务

  数据挖掘任务分为下面两大类:

  预测任务:这些任务的目标是根据其他属性的值,预测特定属性的值。被预测的属性一般称为目标变量target variable或因变量dependent variable。而用来做预测的属性称为说明变量explanatory variable或自变量independent variable。

  描述任务:其目标是导出概括数据中潜在联系的模式(相关、趋势、聚类、轨迹和异常)。本质上,描述性数据挖掘任务通常是探查性的,并且常常需要后处理技术验证和解释结果。

  如下图展示将要讲述的四种主要数据挖掘任务:

  

  预测建模(predictive modeling):涉及以说明变量函数的方式为目标变量简历模型。有两类预测建模任务:分类(classification),用于预测离散的目标变量;回归(regression),用于预测连续的目标变量。例如,预测一个Web用户是否会在网上书店买书是分类任务,因为该目标变量是二值的,而预测某股票的未来价格则是回归任务,因为价格具有连续值属性。两项任务目标都是训练一个模型,使目标变量预测值与实际值之间的误差达到最小。预测模型可以用来确定顾客对产品促销活动的反映,预测地球生态系统的扰动,或根据检查结果判断病人是否患有某种疾病。

  例1.1 预测花的类型   考虑如下任务:根据花的特征预测花的种类。考虑根据是否属于Setosa、Versicolour、Virginica这三类之一对鸢尾花Iris进行分类。为进行这一任务,我们需要一个数据集,包括这三类花的特性。一个具有这类信息的数据集是著名的鸢尾花数据集,可以从机器学习数据库中得到(http://www.ics.uci.edu/~mlearn)。除花的种类之外,该数据还包含萼片宽度、萼片长度、花瓣长度、花瓣宽度四个其他属性。下图给出鸢尾花数据集中150种花瓣宽度与花瓣长度的对比图。花瓣宽度也分成low、medium、high三类,分别对应于区间[0,0.75),[0.75,1.75),[1.75,+)。花瓣长度也分成low、medium、high三类,分别对应于区间[0,2.5),[2.5,5),[5,+)。根据花瓣宽度和长度的这些类别,可以推出如下规则:

    

  尽管这些规则不能对所有的花进行分类,但是已经可以对大多数花很好地进行分类。注意:根据花瓣宽度和花瓣长度,Setosa种类的花完全可以与Versicolour和Virginica种类的花分开,但是后两类花在这些属性上有一些重叠。

  关联分析(association analysis):用来发现描述数据中强关联特征的模式。所发现的模式通常用蕴涵规则或特征子集形式表示。由于搜索空间是指数据规模的,关联分析的目标是以有效的方式提取最有趣的模式。关联分析的应用包括找出具有相关功能的基因组、识别用户一起访问的web页面、理解地球气候系统不同元素之间的联系等。

  例1.2 购物篮分析  给出的事务是一家杂货店收银台收集的销售数据。关联分析可以用来发现顾客经常同时购买的商品。例如,我们可能发现规则{尿布}-->{牛奶}。该规则暗示购买尿布的顾客多半会购买牛奶。这种类型的规则可以用来发现各类商品中可能存在的交叉销售的商机。

  

  聚类分析(cluster analysis):旨在发现紧密相关的观测值组群,使得与属于不同簇的观测值相比,属于同一簇的观测值相互之间尽可能类似。聚类可用来对相关的顾客分组、找出显著影响地球气候的海洋区域以及压缩数据等。

  例1.3 文档聚类  给出的新闻文章可以根据它们各自的主题分组。每篇文章表示为词-频率对(w,c)的集合,其中w是词,而c是该词在文章中出现的次数。在该数据集中,有两个自然簇。第一个簇由前四篇文章组成,对应于经济新闻,而第二个簇包含后四篇文章,对应于卫生保健新闻。一个好的聚类算法应当能够根据文章中出现的词的相似性,识别这两个簇。

  

  异常检测(anomaly detection):任务是识别其特征显著不同于其他数据的观测值。这样的观测值称为异常点(anomaly)或离群点(outlier)。异常检测算法的目的是发现真正的异常点,而避免错误地将正常的对象标注为异常点,而避免错误地将正常的对象标注为异常点。换言之,一个好的异常检测器必须具有高检测率和低误报率。异常检测的应用包括检测欺诈、网络攻击、疾病的不寻常模式、生态系统扰动等。

  例1.4 信用卡欺诈检测  信用卡公司记录每个持卡人所做的交易,同时也记录信用限度、年龄、年薪和地址等个人信息。由于与合法交易相比,欺诈行为的数目相对较少,因此异常检测技术可以用来构造用户的合法交易的轮廓。当一个新的交易达到时就与之比较。如果该交易的特性与先前构造的轮廓很不相同,就把交易标记为可能是欺诈。

1.5 本书的内容和组织

  从算法的角度介绍数据挖掘所使用的主要原理和技术,为了更好地理解数据挖掘技术如何用于各种类型的数据,研究这些原理与技术至关重要。  

  从数据(第2章)开始本书的技术讨论。讨论数据的基本类型、数据质量、预处理技术以及相似性和相异性度量。是数据分析的重要基础。第3章讨论数据探究,讨论汇总统计、可视化技术和联机分析处理,这些技术可用来快速透彻理解数据集。

  第4章和第5章涵盖分类。第4章是基础,讨论决策树分类和一些重要的分类问题:过拟合、性能评估和不同分类器模型的比较。在此基础上,第5章介绍其他重要的分类技术:基于规则的系统、最近邻分类器、贝叶斯分类器、人工神经网络、支持向量机以及组合分类器。组合分类器是一组分类器。这一章还讨论多类问题和不平衡类问题。

  关联分析在第6章和第7章。第6章介绍关联分析的基础---频繁项集、关联规则以及产生它们的一些算法。特殊类型频繁项集(极大项集、闭项集和超团集)对于数据挖掘都是重要的。该章最后讨论关联分析的评估度量。第7章考虑各种更高级的专题,包括如何将关联分析用于分类数据和连续数据,或用于具有概念分层的数据。(概念分层是对象的层次分类,例如库存商品->服装->鞋->运动鞋)。还介绍如何扩展关联分析,以发现序列模式、图中的模式、负联系(如果一个项出现,则其他项不出现)。

  聚类分析在第8章和第9章讨论。第8章先介绍不同类型的簇,然后给出三种特定的聚类技术:K均值、凝聚层次聚类和DBSCAN。接下去讨论验证聚类算法结果的技术。更多的聚类概念和技术在第9章考察,包括模糊和概率聚类、自组织映射(SOM)、基于图的聚类和基于密度的聚类。这一章还讨论可伸缩问题和选择聚类算法需要考虑的因素。

  最后一张是关于异常检测的。在给出一些基本定义之后,介绍了若干类型的异常检测,包括统计的、基于距离的、基于密度的和基于聚类的。

 

posted on 2016-08-09 00:14  Pythoner_MLer  阅读(535)  评论(0编辑  收藏  举报