2013-07-24 73 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 
} 

數據的非線性性質可能並不一定有意義,但該偏差校正可能會很差,如果擬合和實際之間的關係值與線性非常接近。

您可以隨時擬合模型,然後自行繪製擬合值與實際值並查看基於線性迴歸的校正是否有幫助。