Massive Data Mining学习记录

第一周:

学习PageRank,

知识点:每个节点的权值由其他节点的投票决定,所有节点的权值和为1

当节点很多时候必须转换成矩阵运算来计算节点的最终值,由马尔可夫链可以证明,这个值可以迭代得到

问题:可能出现无出度节点,导致总体失衡

解决办法:每个节点的入读权值矩阵M' = 0.8*M + 0.2*1/n,以0.2的概率跳出当前节点 

第二周:

minhashing h(i) 随机排列后,一列数据的第一个不为1的下标

用普通hash替代每个minhashing(hash出每行每列,在移动行中,确定这一列的某hash的第一个下标)

LSH:使用hash应用到col,找出相似对

方法:把一列signature分成很多band,对每个band的r行进行hash,从而分到bucket。

这样有相似signature的列更容易分到同一个bucket中。

使用threshold t

Frequent Set:

从frequent items,筛选frequent pairs,再向其他扩展。

PCY:在第一次frequent items的时候,存储hash pair的count,满足count的bit个数为1否则为0

Simple: 随机取出Sample组判断frequent set

SON:顺序读取一部分,进行Simple,不会出现false negative

Toivonen :利用negative border防止丢失frequent set,如果有negative border被发现为frequent set,需要重新计算

negative border:所有直接子集都frequent

Week 2C Q1:参考这里,Total Memory Needed for the Triples = 3X = 3M(1+P/S) = T = (31/32)S,其中S=S/4(转换到integer)

第三周:

图,

使用Spectral Clustering on the Laplacian matrix来进行cluster,重要的点是找到second eigenvector(first is always 0,second is the eigenvalue second min)

stream:

DGIM(计算最近有多少个1):使用多个2^n组合而非bits来计数,在2^x有3个时,合并成2^(x+1),最大的2^n利用估算来统计

Sampling(取样本):将key hash到0-B-1数组,取h(key) <= t, t不断减小以丢弃存不下的Sample

Bloom Filter(过滤已经见过的):使用hash将key hash到n bucket也就是n bits,不会有false negative,但是又false positive

Flagolet-Martin lgorithm(计算不同值出现的次数):利用多个hash统计,得到每个hash的尾部0个数R,估算单个hash结果为2^R.将hash结果按照大小排列后分组计算平均值,对所有组的平均值取中位数。

week3 A q4

(defn ha [x] (rem (+ 7 (* 3 x)) 11))
(defn ham [coll] (map #(Integer/toBinaryString (ha %)) coll))

 AMS(计算surprise number):随机取x个timestam,计算每个t位置元素到目前的出现次数m,X=n(2m-1),最终结果为所有t的X的平均数

第四周:Recommendation Systems

ContentBased:需要得到Item Profiles,可以由用户评分等得到,也可以由Content中抽取Feature来组成

Colaborating filter:对于用户根据item选出相关用户,推荐相关产品。或者对于item根据用户选出相关item,推荐给用户。

item要比用户关联度更高,因为item更单纯。

降维的方法,可以利用基向量表示高纬度数据,忽略不重要的基对应的数据

SVD:将矩阵解构(decomp-svd)成S U V三个矩阵,分别代表一些概念,可以相乘得到原矩阵

第五周:

cluster的方法: 

Hierarchical Clustering,最好O(n^2*logn)

k-means:k为预选的中心点,多次循环调整中心点直到不再变化。可以用sample的HC选出来中心点个数。

BFR:要求正态分布,第一次获取:Discard Set,Compressed Set, Retained Set。第二次对RS进行HC,再将CS

Cure:第一次从Sample中选出相对最远的几个点做代表。第二次,根据代表来计算分布情况。

第六周:

SVD:找出最大margin的w向量(N维度需要N+1个点来support 这个分割线,这N+1个点叫做support vector),如果需要容忍错误,需要使用迭代的方式找到最优解

SVD的理解:从高维度里提取概念,通过概念将高维度合并到底维度。M= U sigma V^T

U 代表每个用户对应的合并后的分值

sigma 提取出来的概念

V^T 代表每一项与概念的相关程度

Decision Tree:生成各个节点的决策树,可以使用MapReduce

MapReduce可以解决矩阵相乘的问题

原文地址:https://www.cnblogs.com/TLightSky/p/4279327.html