R语言在hadoop的线性回归的可用代码

本文介绍了一种利用MapReduce技术实现大规模线性回归的方法。通过将矩阵运算拆分成多个子任务并行处理,有效地解决了大规模数据集上的线性回归计算问题。文中详细展示了如何构建输入数据、定义Map和Reduce函数以及最终求解回归系数的过程。
X=matrix(rnorm(20000),ncol=10)

X.index=to.dfs(cbind(1:nrow(X),X))

y=as.matrix(rnorm(2000))

Sum=function(.,YY)

  keyval(1,list(Reduce('+',YY)))

XtX=values(

  from.dfs(

    mapreduce(

      input=X.index,

      map=function(.,Xi){

        yi=y[Xi[,1],]

        Xi=Xi[,-1]

        keyval(1,list(t(Xi) %*% Xi))

      },

      reduce=Sum,

      combine=TRUE)))[[1]]

Xty=values(

  from.dfs(

    mapreduce(

      input=X.index,

      map=function(.,Xi){

        yi=y[Xi[,1],]

        Xi=Xi[,-1]

        keyval(1,list(t(Xi) %*% yi))

      },

      reduce=Sum,

      combine=TRUE)))[[1]]

 solve(XtX,Xty)

转载于:https://my.oschina.net/thomas2/blog/609136

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值