Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mapreduce 利用Map-Reduce实现油藏采样_Mapreduce_Sampling - Fatal编程技术网

Mapreduce 利用Map-Reduce实现油藏采样

Mapreduce 利用Map-Reduce实现油藏采样,mapreduce,sampling,Mapreduce,Sampling,此链接“”介绍如何使用map reduce框架实现储层采样。我觉得他们的解决方案很复杂,下面的简单方法会奏效 问题: 给定非常多的样本,生成一组大小为k的样本,使每个样本在该集合中存在的概率相等 建议的解决方案: 映射操作:对于每个输入数字n,输出(i,n),其中i在0到k-1范围内随机选择 减少操作:在所有具有相同键的数字中,随机选择一个 声明: k大小集合中任何数字的概率为k/n(其中n为样本总数) 证明直觉: 由于映射操作将每个输入样本随机分配给bucket number i(0您的参数中

此链接“”介绍如何使用map reduce框架实现储层采样。我觉得他们的解决方案很复杂,下面的简单方法会奏效

问题: 给定非常多的样本,生成一组大小为k的样本,使每个样本在该集合中存在的概率相等

建议的解决方案:

  • 映射操作:对于每个输入数字n,输出(i,n),其中i在0到k-1范围内随机选择
  • 减少操作:在所有具有相同键的数字中,随机选择一个
  • 声明: k大小集合中任何数字的概率为k/n(其中n为样本总数)

    证明直觉:


    由于映射操作将每个输入样本随机分配给bucket number i(0您的参数中有一个小缺陷。您的算法可能不会返回大小为k的样本,因为可能会发生元素没有映射到特定键的情况。在极端情况下(即使可能性很小),所有输入元素可能只映射到一个键,在这种情况下,算法只返回一个元素


    “丢失”特定密钥的事件具有概率((k-1)/k)^n=(1-1/k)^n,这大约是(使用泰勒近似)e^{-n/k}。如果k远小于n,这是可以忽略的,但是如果k与n成比例,比如k=n/2,那么这个坏事件实际上是以恒定的概率发生的。

    您的论点中有一个小缺陷。您的算法可能不会返回大小为k的样本,因为可能会发生没有元素映射到特定键的情况。在极端情况下(即使可能性很小),所有输入元素可能只映射到一个键,在这种情况下,算法只返回一个元素

    “丢失”一个特定键的事件具有概率((k-1)/k)^n=(1-1/k)^n,这大约是(使用泰勒近似)e^{-n/k}。如果k远小于n,这是可以忽略的,但是如果k与n成比例,比如k=n/2,那么这个坏事件实际上以恒定的概率发生