大数据挖掘技术及应用(复习重点)
作者:互联网
又到了明天考试,今天突击的日子!!!!!
第1章 数据挖掘基本概念
前言:邦弗朗尼原理实际上对数据挖掘的过度使用提出了警告。
1、数据挖掘的基本概念:数据挖掘是指从数据中提取有用模型的过程。提出的模型有时可以是数据的一个汇总结果,而有时可以是数据中极端的特征所组成的集合。
数据挖掘是数据“模型”的发现过程,统计学家认为数据挖掘是统计模型的构建过程,而统计模型指的是课间数据所遵从的总体分布。
2、数据挖掘和机器学习的区别:目标不同,算法相同。
机器学习是一门多学科交叉专业, 涵盖概率论知识, 统计学知识, 近似理论知识和复杂算法知识, 使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。
机器学习三要素: 模型, 策略, 算法
数据挖掘技术是机器学习算法和数据存取技术的结合,利用机器学习提供的统计分析、知识发现等手段分析海量数据,同时利用数据存取机制实现数据的高效读写。
相同的算法比如贝叶斯网络、支持向量机、决策树、隐马尔可夫模型、k-means算法等。
3、数据建模的两种方法:
- 数据汇总:对数据进行简洁的近似汇总描述,比如PageRank、聚类。
- 特征提取:从数据中抽取出最突出的特征来代替数据并将剩余内容忽略,比如频繁项集、相似项。
4、邦弗朗尼原理基本概念:
在考察数据时,如果将某些对象视为数据的有趣特征,而这些对象中的许多实例都可能会在随机数据中出现,那么这些显著的特征就不可依赖。对于那些实际中并不充分罕见的特征来说,上述观察结果限制了从这些数据特征中进行挖掘的能力。
邦弗朗尼校正定理:该定理给出了一个统计上可行的方法来避免在搜索数据时出现的大部分“臆造”正响应。
数据挖掘所谓发现的模型可能是没有任何意义的, 统计上称为邦弗朗尼原理。
在数据随机性假设的基础上, 可以计算所寻找事件出现次数的期望值。 如果该结果显著高于你所希望找到的真正实例的数目, 那么可以预期, 寻找到的几乎任何事物都是臆造的。
5、TF.IDF(TF指词项频率,IDF指逆文档频率):度量给定词语在少数文档中反复出现程度的形式化指标。
假定有文档集中有N篇文档,fij为词项i在文档j中出现的频率,即次数。
于是词项i在文档j中的词项频率TFij定义为TFij=fij/max k fkj
假定词项i在文档集的ni篇文档中出现,那么词项i的IDF定义如下:IDFi=log2 N/ni
词项i在文档j中的得分被定义为TF.IDF=TFij*IDFi
具有最高TF.IDF得分的那些词项通常都是刻画文档主题的最佳词项。
如果某个词在少量文档当中频繁出现时,那么它在文档中的TF.IDF值较高。
6、哈希函数h的输入是一个哈希键值,输出是一个桶编号。假定桶的个数B,那么桶编号一般为0-B-1之间的整数。哈希键值可以是任何类型的数据。哈希函数的一个直观性质是它们将哈希键值“随机化”。
7、当处理大规模数据时,数据(尽量都放在内存)一开始在磁盘还是在内存那么计算的时间开销相差很大:
内存读取时间开销小,硬盘读取时间开销大。
8、幂定律:两个变量在对数空间下呈现出线性关系。
马太效应:某个特性获得高价值,那么会导致该特性获得更大价值。(强者愈强)
比如:Web图当中节点的度、商品的销量、Web网站的大小、Zipf定律
9、本章小结:
数据挖掘: 从数据中提取出有用模型的过程。
邦弗朗尼原理:显著特征不可依赖。
TF.IDF 指标: 确定文档中哪些词语对文档主题有用。
索引:给定字段值进行高效记录存取和检索。 哈希是构建索引的一种方式。
第2章 MapReduce
前言
“计算集群”:大规模普通硬件的集合,计算节点通过以太网或价格低廉的交换机连接而成。
软件栈下层是分布式文件系统,特征是存储单位大、提供数据冗余机制。
1、大数据的例子(并行化的处理方式):
Web网页重要性排序:大规模迭代矩阵-向量乘法,大规模矩阵迭代相乘
在社交网站上的朋友关系网络中进行搜索
2、解决大数据计算问题:
- 文件必须多副本存储。一旦某个节点存储出现故障,也不影响继续使用。
- 计算过程必须分多个任务。如果一个任务失败,可以在不影响其他任务的情况下重启这个任务。
3、MapReduce的计算过程(程序员只需编写Map函数和Redece函数)
(1)有多个Map任务,每个任务的输入是DFS中的一个或多个文件块。Map任务将文件块转化为一个键-值对序列。从输入数据产生键-值对的具体方式由用户编写的Map函数代码决定。
(2)主控制器从每个Map任务中收集一系列的键-值对,并将他们按照键大小排序。这些键又被分到所有的Reduce任务中,所以具有相同键的键-值对应该归到同一个Reduce任务中。
(3)Reduce任务每次作用于一个键,并将与此键关联的所有值以某种方式组合起来。具体的组合方式取决于用户所编写的Reduce函数代码。
4、节点失效后的处理:
(1)主控进程的计算节点崩溃,种植所有的MapReduce任务
(2)其他节点失效,通过主控进程来管理
(3)主控进程定期检查工作进程,发现节点的崩溃情况。重启相应的Map任务
(4)Reduce任务的计算节点失效,运行的Reduce任务的状态置为空闲,并安排给另外的工作节点按计划日程重新运行。
5、 MapReduce能处理哪些计算?主要目的是什么?
大规模的矩阵--向量乘法;关系代数运算(选择,投影,并交及差,自然连接,分组和聚合);字数统计;大规模的矩阵--矩阵乘法
MapReduce采用分而治之的策略,设计理念是“计算向数据靠拢”,将复杂的,运行于大规模集群上的并行计算过程高度的抽象到两个函数map和reduce上。编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算。
目的:允许人们在集群计算环境下开发并行程序,并能管理在长时间计算中可能出现的多节点硬件故障。
6、本章小结
分布式文件系统:文件块大小为 64MB 左右,每个文件块会有多个副本分别存放在不同的计算节点或机架上。
Map 函数: 输入对象的集合转换为 0 个或多个键值对, 键值不一定要有唯一性。
分布式文件系统(DFS)使用
(1) 文件非常大。
(2) 文件极少更新。
第3章 相似性发现
1、集合的Jaccard相似度:计算交集的相对大小来获得集合之间的相似度
集合S和T之间的Jaccrad相似度=|S∩T|/|S∪T|
2、文档相似性的应用:抄袭文档;镜像页面;同源新闻稿
3、协同过滤--集合相似度的应用:在线购物(基于用户和基于顾客),电影评级
4、文档的K-single:一篇文档就是一个字符串。文档的K-single定义为其中任意长度为k的字串。
将任意长度的空白穿替换为单个空格或许很合理。
- k应该选择足够大,以保证任意给定的shingle出现在任意文档中的概率较低。
5、两个集合经随机排列转换之后得到的两个最小哈希值相等的概率等于这两个集合Jaccard相似度
最小哈希:排列转换后的行排列次序下第一个列值为 1 的行的行号。
最小哈希签名:特征矩阵表示M。随机选择n个排列转换用于矩阵M的行处理。其中n一般为一百或几百。对于集合S对应的列,分别调用这些排列转换所决定的最小哈希函数h1, h2, h3, ......., hn,则可以构建S的最小哈希签名向量[h1(S),h2(S),.......,hn(S)],该向量通常写成列向量方式。因此, 基于矩阵M可以构建一个签名矩阵,其中M的每一列替换成该列所对应的最小哈希签名向量即可。
6、局部敏感哈希算法的基本思路:
对目标项进行多次哈希处理,使得相似项会比不相似项更可能哈希到同一个桶中。将至少有一次哈希到同一 桶中的文档对看作是候选对,只去检查这些候选对之间的相似度。我们希望大部分不相似的文档对不会哈希到相同的桶中,这样就永远不需要检查它们的相似度。
(1)把签名矩阵分成多个行条,对每个行条使用哈希函数
(2)具有相同部分的列将被哈希到同一个桶里。
(3)只考察那些哈希到同一个桶里面的列的相似性。
7、距离测度:是一个函数d(x,y),以空间中的两个点作为参数,输出是一个实数值
(1)d(x,y)大于等于 0 距离非负
(2)当且仅当x=y时,d(x,y)=0
(3)d(x,y)=d(y,x)对称性
(4)d(x,y)≤ d(x,z)+d(z,y) 三角不等式
- 欧氏距离
- Jaccard距离=1-Jaccard相似度
- 余弦距离=内积/每个向量的L2范式相乘
- 编辑距离:只适用于字符串的比较,表示将x转化为y所需要的单字符插入及删除操作的最小数目
- 海明距离:两个向量中不同分量的个数
8、LSH函数的应用:实体关联;指纹匹配;新闻报道匹配
实体关联:将代表同一真实世界实体的数据记录彼此关联。
指纹匹配:将指纹表示为集合。
新闻报道匹配
9、小结
Jaccard 相似度应用: 文本相似度、购物习惯的相似度计算
签名的 LSH: 给定集合的签名,我们可以将它们划分成行条,然后仅仅计算至少有一个行条
相等的集合对之间的相似度。
第4章 数据流挖掘
前言
(1)数据流处理的每个算法都在某种程度上包含流的汇总过程。
(2)汇总方法: a. 抽取有用样本,滤除不想要的元素。 b. 只观察一个“定长”窗口。
1、数据流模型:该模型假定数据以某种速率到达处理引擎,该速率使得无法在当前可用内存中存放东西。流处理的一种策略是保留流的某个概要信息,使之足够回答关于数据的期望的查询。另一种方法是维持最后到达数据的一个滑动窗口。
流数据:数据以大量、快速、时变的流形式持续到达
流可以在大容量归档存储器上进行处理, 流汇总数据或者部分流数据可以存储在工作存储器
上,该存储器可用于查询应答处理。
2、流数据例子:传感器数据;图像数据;互联网及Web流量
3、流查询的两种方式
- 固定查询:永远不变的执行并在适当的时候产生输出结果,从不停止。
- Ad hoc查询:对于当前某个或多个流只提交一次,存储数据流的合适部分,为查询做准备,根据存储的内容应答。
4、流处理的若干问题的2个重点结论
流元素地分发速度通常很快, 必须对元素进行实时处理。 流处理算法通常在内存中执行,一般不会或极少访问二级存储器。
- 通常情况下,获得问题的近似解比精确解要高效的多
- 一系列与哈希相关的技术被证明十分有用
5、流中的抽样问题
- 简单随机抽样:从总体N个单位中随机抽取n个单位作为样本,使得每一个样本都有相同的概率被抽中。通常只是在总体单位之间差异程度较小和数目较少时才采用这种方法。
- 系统抽样:将总体中的所有单位按一定顺序排列,在规定的范围内随机抽取一个单位作为初始单位,然后按事先规定好的规则确定其他样本单位。如从1-k中选取r作为初始单位,以后一次取r+k,r+2k等单位。
- 分层抽样:将抽样单位按某种特征或某种规则划分为不同的层,然后从不同的层中独立、随机抽取样本,保证样本的结构与总体的结构比较相近,从而提高估计的精度。
- 整群抽样:将总体中若干个单位合并为组,抽样时直接抽取群,然后对中选群的所有单位全部实施调查。抽样时只需群的抽样框,可简化工作量,缺点是估计的精度较差。
6、布隆滤波器的组成和检测过程,性能分析(检测时可能遇到的问题,如假阳性问题)
布隆过滤器是一种概率空间高效的数据结构。用于检索一个元素是否在一个集合中。存在“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况。
核心思想就是利用多个不同的Hash函数来解决冲突。
组成:
- n 个位组成的数组,每个位的初始值都为 0;
- 一系列哈希函数h1,h2---hk组成的集合,每个哈希函数将“键”值映射到上述的 n 个桶(对应于位数组中n个位)中;
- m 个键值组成的集合 S;
检测过程:位数组的所有位的初始值为0,对于 S 中每一个键值 K,利用哈希函数进行处理。对于一些哈希函数ℎ
标签:复习,购物篮,项集,算法,文档,哈希,数据挖掘,数据,应用 来源: https://www.cnblogs.com/0211ji/p/15763091.html