第一周:
学习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可以解决矩阵相乘的问题