2012年9月15日

摘要: 如果有N个集合,求它们之间两两的相似度就需要N*(N-1)/2次计算,当N很大时这个代价仍然承受不起。于是我们需要一种方法能够不遍历所有可能的元素对就找出相似度较大的那些(大于某个给定的阈值t),这就是所谓Locality-Sensitive Hashing。第三章的后半部分基本全是围绕这一话题展开的。这里又要出现一个比较神奇的方法了:由上篇文章所述,对每一列c(即每个集合)我们都计算出了n行minhash值,我们把这n个值均分成b组,每组包含相邻的r=n/b行。对于每一列,把其每组的r个数都算一个hash值出来,把此列的编号记录到hash值对应的bucket里。如果两列被放到了同一个buck 阅读全文
posted @ 2012-09-15 20:56 Eve_Walle 阅读(272) 评论(0) 推荐(0)
摘要: 无意中发现这本貌似不错的书Mining of Massive Datasets,随便记一下学到的东西。因为对数据挖掘没什么研究,理解肯定很肤浅,请过往大牛指教。下面内容来自此书第三章的前面部分。在数据挖掘中经常需要用到比较两个东西的相似度。比如搜索引擎要避免非常相似的文档出现在结果的前几页,再比如很多网站上都有的“查找与你口味相似的用户”、“你可能喜欢什么什么”之类的功能。后者其实是很大的一块叫做“协同过滤”的研究领域,留待以后详谈。首先我们定义两个集合S,T的Jaccard相似度: Sim(S,T) = |S,T的交集| / |S,T的并集|。直观上就容易感觉出这是一个很简单而且比较合理的度 阅读全文
posted @ 2012-09-15 20:53 Eve_Walle 阅读(266) 评论(0) 推荐(0)
摘要: 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集合是用哈希表(hash table)来存储的。它的好处是快速准确,缺点是费存储空间。布隆过滤器只需要哈希表 1/8 到 1/4 的大小就能解决同样的问题。因为hash如果要work就要避免冲突, 要避免冲突就需要很大的bucket空间(bit). 而Bloom的优点时允许冲突, 但他通过增加hash函数的数量, 来减小同时冲突的概率, 所以可以用更小的空间.而且hash table的实现往往用的是指 阅读全文
posted @ 2012-09-15 20:51 Eve_Walle 阅读(517) 评论(0) 推荐(0)
摘要: 重复数据删除技术主要分为以下两大类:(1) 相同数据检测技术.相同数据主要包括相同文件及相同数据块两个层次.完全文件检测(whole file detection,简称WFD)技术主要通过hash 技术进行数据挖掘;细粒度的相同数据块主要通过固定分块(fixed-sized partition,简称FSP)检测技术、可变分块(content-defined chunking,简称CDC)检测技术、滑动块(sliding block)技术进行重复数据的查找与删除.(2) 相似数据检测和编码技术.利用数据自身的相似性特点,通过shingle技术、bloom filter技术和模式匹配技术挖掘出相同 阅读全文
posted @ 2012-09-15 20:41 Eve_Walle 阅读(264) 评论(0) 推荐(0)
摘要: 利用信息论的方法可以进行一些简单的自然语言处理,比如利用相对熵进行分类或者是利用相对熵来衡量两个随机分布的差距,当两个随机分布相同时,其相对熵为0.当两个随机分布的差别增加时,器相对熵也增加。我们下面的实验是为了横量概率分布的差异。试验方法、要求和材料要求: 1.任意摘录一段文字,统计这段文字中所有字符的相对频率。假设这些相对频率就是这些字符的概率(即用相对频率代替概率); 2.另取一段文字,按同样方法计算字符分布概率; 3.计算两段文字中字符分布的KL距离; 4.举例说明(任意找两个分布p和q),KL距离是不对称的,即D(p//q)!=D(q//p);方法:D(p//q)=sum(p(x)* 阅读全文
posted @ 2012-09-15 11:36 Eve_Walle 阅读(831) 评论(0) 推荐(0)
摘要: 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。本文目录:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯基距离5. 标准化欧氏距离6. 马氏距离7. 夹角余弦8. 汉明距离9. 杰卡德距离 & 杰卡德相似系数10. 相关系数 & 相关距离11. 信息熵1.欧氏距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自 阅读全文
posted @ 2012-09-15 11:29 Eve_Walle 阅读(395) 评论(0) 推荐(0)

2012年9月14日

摘要: SVD分解SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。基础知识1. 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数2. 对角矩阵:对角矩阵是除对角线外所有元素都为零的方阵3. 单位矩阵:如果对角矩阵中所有对角线上的元素都为零,该矩阵称为单位矩阵4. 特征值:对一个M x M矩阵C和向量 阅读全文
posted @ 2012-09-14 21:54 Eve_Walle 阅读(253) 评论(0) 推荐(0)
摘要: 分类(classification )是这样的过程:它找出描述并区分数据类或概念的模型(或函数),以便能够使用模型预测类标记未知的对象类。分类分析在数据挖掘中是一项比较重要的任务,目前在商业上应用最多。分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类中。分类和回归都可用于预测,两者的目的都是从历史数据纪录中自动推导出对给定数据的推广描述,从而能对未来数据进行预测。与回归不同的是,分类的输出是离散的类别值,而回归的输出是连续数值。二者常表现为决策树的形式,根据数据值从树根开始搜索,沿着数据满足的分支往上走,走到树叶就能确定类别。要构 阅读全文
posted @ 2012-09-14 20:49 Eve_Walle 阅读(276) 评论(0) 推荐(0)

导航