2013-07-24 74 views
3

我使用R中随机森林的回归模型,我发现参数corr.bias,根据手册是“实验”,我的数据是非线性的,我只是想知道将这个参数设置为真是否可以提高结果,加上我不知道它是如何工作的非线性数据,所以我非常感谢,如果有人能够向我解释这种修正偏差如何在随机森林包中工作,可以增强我的回归模型与否。corr.bias参数在R中的随机森林回归模型

回答

3

简单的答案是,它基于实际值和拟合值的线性回归进行简单校正。

regrf.c

/* Do simple linear regression of y on yhat for bias correction. */ 
if (*biasCorr) simpleLinReg(nsample, yptr, y, coef, &errb, nout); 

和功能的前几行只是:

void simpleLinReg(int nsample, double *x, double *y, double *coef, 
      double *mse, int *hasPred) { 
/* Compute simple linear regression of y on x, returning the coefficients, 
    the average squared residual, and the predicted values (overwriting y). */ 

所以,当你安装一个回归随机森林与corr.bias = TRUE返回的模型对象将包含coef元素,它只是线性回归中的两个系数。

然后当你调用predict.randomForest发生这种情况:

## Apply bias correction if needed. 
yhat <- rep(NA, length(rn)) 
names(yhat) <- rn 
if (!is.null(object$coefs)) { 
    yhat[keep] <- object$coefs[1] + object$coefs[2] * ans$ypred 
} 

数据的非线性性质可能并不一定有意义,但该偏差校正可能会很差,如果拟合和实际之间的关系值与线性非常接近。

您可以随时拟合模型,然后自行绘制拟合值与实际值并查看基于线性回归的校正是否有帮助。