- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在 Hadoop 上为以下任务实现“ strip ”方法和“对”方法,但我想知道如何在多个映射器之间进行通信以及如何在内部进行面向概率的聚合我的 reducer 。
每一行记录一次交易(一起购买的一组商品):输入数据集是具有以下格式的交易数据:
25 52 164 240 274 328 368 448 538 561 630 687 730 775 825 83439 120 124 205 401 581 704 814 825 83435 249 674 712 733 759 854 95039 422 449 704 825 857 895 937 954 96415 229 262 283 294 352 381 708 738 766 853 883 966 97826 104 143 320 569 620 7987 185 214 350 529 658 682 782 809 849 883 947 970 979227 39071 192 208 272 279 280 300 333 496 529 530 597 618 674 675 720 855 914 932================================================ =====================================**
最佳答案
对您的问题的简短回答是,您不在映射器之间直接通信……这与 map-reduce 计算模式背道而驰。相反,您需要构建您的算法,以便您的 map 阶段输出的键值可以被您的 reducer 阶段以智能方式使用和聚合。
从您在问题中的背景信息可以清楚地了解到,计算您感兴趣的条件概率实际上只是一种计数练习。这里通常的模式是在一个 map-reduce pass 中进行所有计数,然后获取这些输出并在之后划分适当的数量(尝试将它们处理到 map-reduce pass 中会增加不必要的复杂性)
您实际上只需要一个数据结构来跟踪您要计数的事物。如果速度是必须的,您可以使用一组具有隐式索引的数组来完成此操作,但是根据单个 HashMap 进行说明很简单。因为我们不感兴趣
用于 hadoop 流的 python 映射器代码
import sys
output={}
for line in sys.stdin:
temp=line.strip().split('\t')
# we should sort the input so that all occurrences of items x and y appear with x before y
temp.sort()
# count the occurrences of all the single items
for item in temp:
if item in output:
output[item]+=1
else:
output[item]=1
#count the occurrences of each pair of items
for i in range(len(temp)):
for j in range(i+1,len(temp)):
key=temp[i]+'-'+temp[j]
if key in output:
output[key]+=1
else:
output[key]=1
#you can triple nest a loop if you want to count all of the occurrences of each 3 item pair, but be warned the number of combinations starts to get large quickly
#for 100 items as in your example there would be 160K combinations
#this point of the program will be reached after all of the data has been streamed in through stdin
#output the keys and values of our output dictionary with a tab separating them
for data in output.items():
print data[0]+'\t'+data[1]
#end mapper code
reducer 的代码现在与所有如此多产的字数统计示例相同。可以找到带有 map-reduce 流的 python 代码示例 here . map-reduce 程序的输出将是一行,其中的键描述了已计算的内容以及每个项目的出现次数以及所有对的键和出现次数,您可以从那里编写程序计算您感兴趣的条件概率。
关于hadoop - mapreduce 条件概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572348/
接下来是我的代码: with open("test.txt") as f_in: for line in f_in: for char in line:
我们有一个六面骰子,面编号为 1 到 6。随着 n 的增加,在第 n 卷中第一次看到 1 的概率降低。我想找到最小的卷数,使得这个概率小于某个给定的限制。 def probTest(limit):
我只是想知道为什么运行下面的代码时出现错误。我正在尝试使用 numpy 为基于文本的游戏计算概率。下面的代码不是游戏本身的代码。这仅用于测试目的和学习。感谢您提前的答复,请对我宽容一点。 from n
我目前正在创建一个与多个arduino板通信的服务器软件。由于硬件原因,我使用UDP协议(protocol)。我有一个非常简单的机制,在大多数情况下,当包裹丢失时,它会重新发送包裹。我现在有两个问题:
我想在 LinearLayout 上添加一个 fling Action 。为此,我使用了以下代码。 public class NewsActivity extends Activity { .
下面是其中一个 facebook 谜题:我无法理解如何进行此操作。 你有 C 个容器、B 个黑球和无限数量的白球。您希望以一种方式在容器之间分配球,即每个容器至少包含一个球,并且选择白球的概率大于或等
我有一个希伯来语文本,就像 "×گض¸×¨ض´×™×،ض°×کוض¹×ں",我想将它转换为可读的 unicode 希伯来语字符。 我试过这段代码: const string Str = "×گض¸×
我正在尝试使用 Random.nextDouble() 获取 1.0 和 10.0 之间的随机双数: double number = 1.0 + (10.0-1.0) * Random.nextDou
我目前已经为二进制类实现了概率(至少我这么认为)。现在我想扩展这种回归方法,并尝试将其用于波士顿数据集。不幸的是,我的算法似乎被卡住了,我当前运行的代码如下所示: from sklearn impor
我在 2D 空间中有一小组数据点(大约 10 个),每个数据点都有一个类别标签。我希望根据现有数据点标签对新数据点进行分类,并关联属于任何特定标签类别的“概率”。 基于最近邻的标签来标记新点是否合适(
我正在做我的第一个 tensorflow 项目。 我需要获得给定输入和预期序列的 ctc 概率(不是 ctc 损失)。 在 python 或 c++ 中是否有任何 api 或方法可以做到这一点? 我更
我正在尝试通过 assignment 1斯坦福 cs244n 类(class)。问题 1b 强烈建议对 Softmax 函数进行优化。我设法得到了N维向量的Softmax。我还得到了 MxN 维矩阵的
我有一个预测算法的想法,该算法可以根据所选项目先前出现的顺序准确预测随机值,并分析模式以提高准确性。 基本上是一种接受两个参数的算法,一个是一组可能的选择;另一个是这些数字的历史,分析该模式并预测序列
自 HOURS 以来,我一直在努力思考这个 TopCoder 问题,但无法找到一个完美的解决方案,并找到了下面给出的一个使用得非常漂亮的解决方案! 我想弄清楚这个解决方案如何适用于给定的问题?而我当初
我只知道如何生成随机 boolean 值(真/假)。默认概率为 50:50 但是我怎样才能用我自己的概率生成真假值呢?假设它以 40:60 或 20:80 等的概率返回 true... 最佳答案 一种
对于以下示例,我如何计算 julia 中的百分位数/概率值/尾部区域 Example : N(1100, 200) #Normally distributed with mean 1100 & st
我正在尝试修改标准 kNN 算法来获取属于某个类别的概率,而不仅仅是通常的分类。我还没有找到太多关于概率 kNN 的信息,但据我了解,它的工作原理与 kNN 类似,不同之处在于它计算给定半径内每个类的
我正在使用 PostgreSQL 为我所有数据中的变量对计算经验概率密度函数。我试图确定在计算 PDF 之前索引是否/何时更有效。我像这样运行 EXPLAIN CREATE INDEX, EXPLAI
有谁知道当查询有偏移时如何在 MySql 中请求“实时结果集”(例如:select * from table limit 10 offset 20;)。它正在经历类似 的错误 'invalid use
unsigned long long int first( int b , int c){ int h=b; //int k; for(int k=b-1;k>c;k--){ b=b*k;
我是一名优秀的程序员,十分优秀!