并行随机森林缺少MSE和R平方

时间:2011-10-24 18:56:07

标签: r

我运行一个非并行的randomForest对象,没有这样的问题:

> rf <- randomForest(t2[,-c(1,2,7,12)],t2[,2],
+                    ,sampsize=c(10000),do.trace=F,importance=TRUE,ntree=1,,forest=TRUE)
Warning message:
In randomForest.default(t2[, -c(1, 2, 7, 12)], t2[, 2], , sampsize = c(10000),  :
  The response has five or fewer unique values.  Are you sure you want to do regression?
> rf

Call:
 randomForest(x = t2[, -c(1, 2, 7, 12)], y = t2[, 2], ntree = 1,      sampsize = c(10000), importance = TRUE, do.trace = F, forest = TRUE) 
               Type of random forest: regression
                     Number of trees: 1
No. of variables tried at each split: 2

          Mean of squared residuals: 0.07444926
                    % Var explained: -19.36
> rf$rsq
[1] -0.1936248

现在我使用并行的东西运行相同的代码并且没有得到MSE或%Var解释:

> library("foreach")
> library("doSNOW")
> registerDoSNOW(makeCluster(2, type="SOCK"))
> 
> 
> 
> rf <- foreach(ntree = rep(1, 2), .combine = combine, .packages = "randomForest") %dopar%
+ randomForest(t2[,-c(1,2,7,12)],t2[,2],
+                    ,sampsize=c(10000),do.trace=F,importance=TRUE,ntree=1,,forest=TRUE)
> rf

Call:
 randomForest(x = t2[, -c(1, 2, 7, 12)], y = t2[, 2], ntree = 1,      sampsize = c(10000), importance = TRUE, do.trace = F, forest = TRUE) 
               Type of random forest: regression
                     Number of trees: 2
No. of variables tried at each split: 2

> rf$rsq
NULL

知道我做错了什么吗?感谢。

1 个答案:

答案 0 :(得分:7)

它不是并行位,而是使用randomForest包中的combine。引用?combine

  

混乱,错误,mse和rsq组件(以及   测试组件中的相应组件(如果存在)   组合对象将为NULL。

所以你必须自己使用预测值来计算这些东西。