大数据算法学习笔记(四):数据流模型

一、数据流模型:

1、数据只能顺序扫描1次或几次。(超过O(n)的算法不可行)

2、能够使用的内存是有限的。(空间亚线性)

3、希望通过维护一个内存结果来给出相关性质的一个有效估计。


二、基础知识:

1、频繁元素:数据流中同一个元素可以出现多次,出现最频繁的元素。

n:不同元素个数。

m:数据流中元素个数。


2、zipf原则:典型的概率分布是高度倾斜的。只有少数是频繁元素


三、算法与分析:

Misra Gries(MG)算法:

处理元素x

已经为x分配计算器,增加之

没有相应计数器,但计数器的个数小于k,为x分配计数器,并设为1;否则,所有计数器减1,删除值为0的计数器。


统计x出现几次?

不精确估计:存在x的计数器,返回其值;否则,返回0.

精确估计:

设所有计数器的和为m',整个数据流的权重为m。

每一次计数器降低的步骤减少k个计数,同时并未记录此时输入的元素,即K+1次未计入。

最多有(m-m')/(k+1)个减少步骤。

估计值和真实值最多相差(m-m')/(k+1)


错误的界限和k成反比。


你可能感兴趣的:(大数据算法)