BIT大数据应用算法2022年期末考试A卷解析

北京理工大学2022年大数据应用算法期末考试A卷

一、请简要回答为什么需要设计可合并的 \(Sketch\) 算法?可合并的 \(Sketch\) 算法主要是用于什么场景?

解答:

二、给定数据流 \(D=(1,2,5,1,4,2,3,3,2,4,5,2)\),假设 \(k=3\),请详细描述 \(Misra‐Gries\) 算法在该数据流上的运行步骤。

解答:设 \(T\) 值为第 \(T\) 个元素到达的时间,\(S\) 为算法生成的计数器集合,其中元素 \(a:b\) 代表类别为 \(a\) 的元素计数为 \(b\) 个。
\(~~~~~~~~~\) \(T=1\)\(S=\left\{1:1\right\}\)
\(~~~~~~~~~\) \(T=2\)\(S=\left\{1:1,2:1\right\}\)
\(~~~~~~~~~\) \(T=3\)\(S=\left\{1:1,2:1,5:1\right\}\)
\(~~~~~~~~~\) \(T=4\)\(S=\left\{1:2,2:1,5:1\right\}\)
\(~~~~~~~~~\) \(T=5\)\(S=\left\{1:1\right\}\)
\(~~~~~~~~~\) \(T=6\)\(S=\left\{1:1,2:1\right\}\)
\(~~~~~~~~~\) \(T=7\)\(S=\left\{1:1,2:1,3:1\right\}\)
\(~~~~~~~~~\) \(T=8\)\(S=\left\{1:1,2:1,3:2\right\}\)
\(~~~~~~~~~\) \(T=9\)\(S=\left\{1:1,2:2,3:2\right\}\)
\(~~~~~~~~~\) \(T=10\)\(S=\left\{2:1,3:1\right\}\)
\(~~~~~~~~~\) \(T=11\)\(S=\left\{2:1,3:1,5:1\right\}\)
\(~~~~~~~~~\) \(T=12\)\(S=\left\{2:2,3:1,5:1\right\}\)

三、请解释 \(Morris\) 计数算法的基本原理?它为什么能够做到只用 \(O(loglogn)\)的空间来对 \(n\) 个数据进行计数?

解答:\(Morris\) 计数器是用概率计数法,初始值设 \(s\)\(0\)。然后每个数到来时,以 \(2^{-s}\) 的概率在计数器上加1,最后以 \(2^{s}-1\) 作为估计值。因为我们有 \(E[2^s-1]=n\) 成立,那么 \(s=O(logn)\),所以记录 \(s\) 只需要 \(O(loglogn)\) 的空间。

四、\(MinHash\) 算法有哪三种实现方式?它们各自有哪些优缺点?

解答:

五、已知指数分布的概率密度函数为\(\begin{equation} f(x)=\left\{ \begin{array}{cl} ne^{-nx} & x>=0 \\ 0 & x< 0 \\ \end{array} \right. \end{equation}\),请证明指数分布的无记忆性。也即证明\(\forall t,y>0,Pr[x-y>t|x>y]=Pr[x>t]\)

解答:证明如下:

\[ \begin{align} Pr[x-y>t|x>y] = \frac{Pr[x>y+t∩x>y]}{Pr[x>y]} \\ = \frac{Pr[x>y+t]}{Pr[x>y]} \\ = \end{align} \]

六、 给定一个包含 \(n\) 个不同元素的集合 \(A\) ,请证明在采用 \(k‐mins\ MinHash\) 算法来构造集合 \(A\)\(k‐mins\) \(sketch\) 的过程中, \(sketch\) 发生更新的期望次数为\(O(klnn)\)

解答:

七、 给定集合 \(A={a, b, c, d, e, h}\), \(B={a, c, e, f, g, m, n}\)。假设采用 \(k‐mins\) \(MinHash\) 算法来处理集合 \(A\)\(B\)。令 \(k=4\),得到集合 \(A\) 和集合 \(B\)\(k‐mins\) \(sketch\) 分别为 \(S(A)=( 0.22, 0.11, 0.14, 0.22)\), \(S(B)=( 0.18, 0.24, 0.14, 0.35)\)

  1. 请计算 \(A\)\(B\)\(Jaccard\) 相似性。
  2. 请根据 \(S(A)\)\(S(B)\) 来计算集合 \(A\)\(B\) 合并后的 \(k‐mins sketch\),即 \(S(A∪B)\)
  3. 请基于 \(S(A∪B)\) 估计集合 \(A\) 和集合 \(B\)\(Jaccard\) 相似性。
  4. 在该问题中,基于 \(k‐mins\) \(MinHash\) 算法的估计方差为多少?

解答:
1. \(Jaccard(A,B) = \dfrac{|A∩B|}{|A∪B|} = \dfrac{|a,c,e|}{|a,b,c,d,g,h,m,n|} = \dfrac{3}{10}\)
2.
3.
4.

八、 给定一个有向图 \(G=(V, E)\),以及一个节点 \(v\)。在图 \(G\) 中可以到达节点 \(v\) 的集合定义为 \(Reach^{‐1}(v)=\left\{u∈V|u 在图 G 中可达 v\right\}\)。对于集合 \(Reach^{‐1}(v)\),我们可以采用 \(k‐mins\) \(MinHash\) 算法来生成该集合的一个 \(k‐mins\) \(sketch\),记为 \(S(v)\)

  1. 请设计一个算法计算图中所有节点的 \(k‐mins sketch\),即对于任意的 \(v\) 计算所有的 \(S(v)\)
  2. 请描述如何用 \(S(u)\)\(S(v)\) 来计算\(| Reach^{‐1}(v)∪Reach^{‐1}(u)|\)?

解答:

posted @ 2023-11-23 19:34  ~英姿~  阅读(189)  评论(0)    收藏  举报