当前位置:文档之家› 互联网数据挖掘基本概念

互联网数据挖掘基本概念

【最新资料,Word版,可自由编辑!】介绍邦弗朗尼原理(Bonferroni’sprinciple),该原理实际上对数据挖掘的过度使用提出了警告。

本章还概述了一些非常有用的思想,它们未必都属于数据挖掘的范畴,但是却有利于理解数据挖掘中的某些重要概念。

这些思想包括度量词语重要性的TF.IDF权重、哈希函数及索引结构的性质、包含自然对数底e 的恒等式等。

最后,简要介绍了后续章节所要涉及的主题。

1.1数据挖掘的定义最广为接受的定义是,数据挖掘(datamining)是数据“模型”的发现过程。

而“模型”却可以有多种含义。

下面介绍在建模方面最重要的几个方向。

1.1.1统计建模最早使用“datamining”术语的人是统计学家。

术语“datamining”或者“datadredging”最初是贬义词,意指试图抽取出数据本身不支持的信息的过程。

1.2节给出了这种挖掘情况下可能犯的几类错误。

当然,现在术语“datamining”的意义已经是正面的了。

目前,统计学家认为数据挖掘就是统计模型(statisticalmodel)的构建过程,而这个统计模型指的就是可见数据所遵从的总体分布。

例1.1假定现有的数据是一系列数字。

这种数据相对于常用的挖掘数据而言显得过于简单,但这只是为了说明问题而采用的例子。

统计学家可能会判定这些数字来自一个高斯分布(即正态分布),并利用公式来计算该分布最有可能的参数值。

该高斯分布的均值和标准差能够完整地刻画整个分布,因而成为上述数据的一个模型。

1.1.2机器学习有些人将数据挖掘看成是机器学习的同义词。

毫无疑问,一些数据挖掘方法中适当使用了机器学习算法。

机器学习的实践者将数据当成训练集来训练某类算法,比如贝叶斯网络、支持向量机、决策树、隐马尔可夫模型等。

某些场景下上述的数据利用方式是合理的。

机器学习擅长的典型场景是人们对数据中的寻找目标几乎一无所知。

比如,我们并不清楚到底是影片的什么因素导致某些观众喜欢或者厌恶该影片。

因此,在Netflix竞赛要求设计一个算法来预测观众对影片的评分时,基于已有评分样本的机器学习算法获得了巨大成功。

在9.4节中,我们将讨论此类算法的一个简单形式。

另一方面,当挖掘的目标能够更直接地描述时,机器学习方法并不成功。

一个有趣的例子是,WhizBang!实验室1曾试图使用机器学习方法在Web上定位人们的简历。

但是不管使用什么机器学习算法,最后的效果都比不过人工设计的直接通过典型关键词和短语来查找简历的算法。

由于看过或者写过简历的人都对简历包含哪些内容非常清楚,Web页面是否包含简历毫无秘密可言。

因此,使用机器学习方法相对于直接设计的简历发现算法而言并无任何优势。

1.1.3建模的计算方法1 该初创实验室试图使用机器学习方法来进行大规模数据挖掘,并且雇用了大批机器学习高手来实现这一点。

遗憾的是,该实验室并没有能够生存下来。

近年来,计算机科学家已将数据挖掘看成一个算法问题。

这种情况下,数据模型仅仅就是复杂查询的答案。

例如,给定例1.1中的一系列数字,我们可以计算它们的均值和标准差。

需要注意的是,这样计算出的参数可能并不是这组数据的最佳高斯分布拟合参数,尽管在数据集规模很大时两者非常接近。

数据建模有很多不同的方法。

前面我们已经提到,数据可以通过其生成所可能遵从的统计过程构建来建模。

而其他的大部分数据建模方法可以描述为下列两种做法之一:(1)对数据进行简洁的近似汇总描述;(2)从数据中抽取出最突出的特征来代替数据并将剩余内容忽略。

在接下来的内容中,我们将探究上述两种做法。

1.1.4数据汇总一种最有趣的数据汇总形式是PageRank,它也是使谷歌成功的关键算法之一,我们将在第5章对它进行详细介绍。

在这种形式的Web挖掘当中,Web的整个复杂结构可由每个页面所对应的一个数字归纳而成。

这种数字就是网页的PageRank值,即一个Web结构上的随机游走者在任意给定时刻处于该页的概率(这是极其简化的一种说法)。

PageRank的一个非常好的特性就是它能够很好地反映网页的重要性,即典型用户在搜索时期望返回某个页面的程度。

另一种重要的数据汇总形式是聚类,第7章将予以介绍。

在聚类中,数据被看成是多维空间下的点,空间中相互邻近的点将被赋予相同的类别。

这些类别本身也会被概括表示,比如通过类别质心及类别中的点到质心的平均距离来描述。

这些类别的概括信息综合在一起形成了全体数据集合的数据汇总结果。

例1.2一个利用聚类来解决问题的着名实例发生在很久以前的伦敦,在整个问题的解决中并没有使用计算机2。

内科医生JohnSnow在处理霍乱爆发时在城市地图上标出了病例的发生地点。

图1-1给出了该图的一个小片段,展示了病例的传播情况。

图1-1在伦敦市地图上标出的霍乱病例的传播情况示意图图中显示,病例聚集在某些交叉路口。

这些路口的水井已经被污染,离这些水井最近的居民染上了疾病,而清洁的水井附近的居民则没有染病。

如果没对这些数据进行聚类,霍乱的病因就难以揭开。

1.1.5特征抽取典型的基于特征的模型会从数据中寻找某个现象的最极端样例,并使用这些样例来表示数据。

熟悉机器学习的一个分支——贝叶斯网络(并不在本书的讨论范围内)的读者应该会知道,在贝叶斯网络中,可以利用寻找对象间的最强统计依赖来表示所有统计关联,从而表示出对象之间的复杂关系。

我们将要介绍大规模数据集下的一些重要的特征抽取类型,它们包括以下两种。

(1)频繁项集(frequentitemset)该模型适用于多个小规模项集组成的数据,就像我们将在第6章讨论的购物篮问题(market-basketproblem)一样。

我们寻找那些在很多购物篮中同时出现的小规模项集,这些频繁项集就是我们要找的刻画数据的特征。

这种挖掘的原始应用的的确确发生在真实的购物篮场景下:在商店或者超市收银台结账的时候确实会发现某些物品会被顾客同时购买,例如汉堡包和番茄酱,这些物品就组成所谓的项集。

(2)相似项(similaritem)很多时候,数据往往看上去相当于一系列集合,我们的目标是寻找那些共同元素比例较高的集合对。

一个例子是将在线商店(如Amazon)的顾客看成是其已购买的商品的集合。

为了使Amazon能够向某顾客推荐他可能感兴趣的其他商品,Amazon可以寻找与该顾客相似的顾客群,并把他们当中大部分人购买过的商品也推荐给他。

该过程称为协同过滤(collaborativefiltering)。

如果顾客的兴趣都很单一,即他们只购买某一类的商品,那么将顾客聚类的方法可能会起作用。

然而,由于顾客大都对许多不同的商品感兴趣,因此对每个顾客而言,寻找兴趣相似的那部分顾客并根据这些关联对数据进行表示的做法会更有用。

我们将在第3章讨论相似性。

1.2数据挖掘的统计限制一类常见的数据挖掘问题涉及在大量数据中发现隐藏的异常事件。

本节主要讨论这个问题,并介绍对数据挖掘的过度使用进行警告的邦弗朗尼原理。

1.2.1 整体情报预警2002年,美国布什政府提出了一项针对所有可获得的数据进行挖掘的计划,目的用于追踪恐怖活动,这些数据包括信用卡收据、酒店记录、旅行数据以及许多其他类型的情报。

该计划被称为整体情报预警(TotalInformationAwareness ,TIA )。

TIA 计划无疑在隐私倡导者当中受到了极大关注,虽然最终它并没有被国会通过,但其实我们并不清楚这种计划是否已被冠以其他名称而得以真正实施。

隐私和安全的折中困难姑且不在本书的讨论目的之列,然而,TIA 或类似系统若想进一步发展,在其可行性和所依赖假设的现实性方面还需做更多的技术改进。

很多人关心的是,如果浏览了这么多数据,并且想从这些数据当中发现疑似的恐怖行为,那么难道最终就不会找出很多无辜的行为?乃至虽然非法但不是恐怖行为的行为?这些发现会导致警察的登门造访甚至更糟的情形。

答案取决于所定义行为的严密程度。

统计学家已经发现了该问题的各种伪装形式,并且提出了一个理论。

该理论将在下一节介绍。

1.2.2 邦弗朗尼原理假定人们有一定量的数据并期望从该数据中找到某个特定类型的事件。

即使数据完全随机,也可以期望该类型事件会发生。

随着数据规模的增长,这类事件出现的数目也随之上升。

任何随机数据往往都会有一些不同寻常的特征,这些特征看上去虽然很重要,但是实际上并不重要,除此之外,别无他由,从这个意义上说,这些事件的出现纯属“臆造”。

统计学上有一个称为邦弗朗尼校正(Bonferronicorrection )的定理,该定理给出一个在统计上可行的方法来避免在搜索数据时出现的大部分“臆造”正响应。

这里并不打算介绍定理的统计细节,只给出一个非正式的称为邦弗朗尼原理的版本,该原理可以帮助我们避免将随机出现看成真正出现。

在数据随机性假设的基础上,可以计算所寻找事件出现次数的期望值。

如果该结果显着高于你所希望找到的真正实例的数目,那么可以预期,寻找到的几乎任何事物都是臆造的,也就是说,它们是在统计上出现的假象,而不是你所寻找事件的凭证。

上述观察现象是邦弗朗尼原理的非正式阐述。

以寻找恐怖分子为例,可以预期在任何时候都几乎没有恐怖分子在活动。

按照邦弗朗尼原理,只需要寻找那些几乎不可能出现在随机数据中的罕见事件来发现恐怖分子即可。

下一节将给出一个扩展的例子。

1.2.3 邦弗朗尼原理的一个例子假设我们确信在某个地方有一群恶人,目标是把他们揪出来。

再假定我们有理由相信,这些恶人会定期在某个宾馆聚会来商讨他们的作恶计划。

为限定问题的规模,我们再给出如下假设:(1)恶人数目可能有10亿;(2)每个人每100天当中会有一天去宾馆;(3)一个宾馆最多容纳100个人。

因此,100000个宾馆已足够容纳10亿人中的1%在某个给定的日子入住宾馆;(4)我们将对1000天的宾馆入住记录进行核查。

为了在上述数据中发现恶人的踪迹,我们可以找出那些在两个不同日子入住同一宾馆的人。

但是假设并没有恶人,也就是说,给定某一天,对每个人来说,他们都是随机地确定是否去宾馆(概率为0.01),然后又是随机地从105个宾馆中选择一个。

从上述数据中,我们能否推断出某两个人可能是恶人?接下来我们做个简单的近似计算。

给定某天,任意两个人都决定去宾馆的概率为0.0001,而他们入住同一宾馆的概率应该在0.0001基础上除以105(宾馆的数量)。

因此,在给定某天的情况下,两个人同时入住同一宾馆的概率是10?9。

而在任意给定的不同的两个日子,两人入住同一宾馆的概率就是10?9的平方,即10?18。

需要指出的是,上述推理中只需要两人两次中每次住的宾馆相同即可,并不需要两次都是同一家宾馆3。

基于上述计算,我们必须要考虑到底事件出现多少次才意味着作恶事件的发生。

上例中,“事件”的含义是指“两个人在两天中的每一天入住相同宾馆”。

相关主题