如何计算基于R ??的MapReduce互信息

时间:2017-10-13 16:22:11

标签: mapreduce rhadoop

我想为特征中的所有x,y计算互信息:I(x,y) 所以我需要计算数据中的P(x)P(y)和P(x,Y),例如:

  

X Y.       - - 是2否2是2否1是1

     

p(是)= 3/5 p(2)= 3/5 p(是,2)= 2/5

在Map Reduce中计算很容易,我为P(x)和P(y)做了 但对于p(x,Y),我想计算每个对象的共生现象。

我写了一个Map函数:

  mapper <- function(key, line) {

      fvec <- unlist(strsplit(line, split = " "))

      for(i in 1:55){

        for(j in (i+1):56){
               fvec<-c(fvec,paste0(fvec[i],",",fvec[j]))}}

      keyval(fvec, 1)
    }

“fvec”是我们示例中第一行的要素向量:

 fvec[1]="yes" "2"

在for循环中我想连接这些功能,以便

fvec[1]="yes" "2" "yes2"

为了在reduce func中计算yes-2的次数:

 reduce = function(k,v)
        {return(keyval(k,length(v)))

但由于Hadoop中的“LOOP PROBLEM”,它无法正常工作。 请帮我解决R问题:)

0 个答案:

没有答案