摘要: word-doc矩阵在进行文件分类或文档检索的时候,我们通常需要建立一个word-doc矩阵,来记录每个词在每篇文档中出现的次数。class Mapper method map(docid id,doc d) foreach term in d Emit(pair(term,id),1)一种更高效的方法是在mapper侧进行聚合。class Mapper method map(docid id,doc d) H := new AssociativeArray foreach term in d H{term} := H{term}+1 foreach term in H E... 阅读全文
posted @ 2012-08-05 23:48 高性能golang 阅读(1452) 评论(0) 推荐(0) 编辑
摘要: 本文介绍几种MapReduce算法设计的技巧,全部内容翻译自《Data-Intensive Text Processingwith MapReduce》。Local Aggregation说到Local Aggregation,你可能会想不就是Combiner吗。实际上在mapper中进行combining比使用真正的combiner高效得多。首先combiner只是作为MapReduce的可选优化方案(就像inline对于C++编译器是一种可选优化方案一样),不一定会被执行。其次在mapper中进行combining可以减少很多的I/O操作,提高效率,毕竟mapper的每个结果都个结果都要被 阅读全文
posted @ 2012-08-05 19:12 高性能golang 阅读(4575) 评论(0) 推荐(1) 编辑
摘要: 本文试图用最简单的例子、最浅显的方式说明EM(Expectation Maximization)算法的应用场景和使用方法,而略去公式的推导和收敛性的证明。以下内容翻译自《Data-Intensive Text Processingwith MapReduce》。Maximum Likelihood EstimationMaximum Likelihood Estimation(MLE)是要选择一个最佳参数θ*,使得从训练集中观察到和情况出现的概率最大。即模型:举例来说明。如下图一个小黑球沿着一个三角形的木桩滚入杯子a或b中,可建立一个概率模型,由于是二值的,设服从Bernoulli分布,概率密 阅读全文
posted @ 2012-08-05 09:39 高性能golang 阅读(30545) 评论(4) 推荐(7) 编辑