3

私は R でランダム フォレストの回帰モデルを使用しており、マニュアルによると「実験的」であるパラメーター corr.bias を見つけました。私のデータは非線形であり、このパラメーターを true に設定すると結果が向上するのではないかと思います。非線形データに対してどのように機能するか正確にはわかりません。そのため、この補正バイアスがランダム フォレスト パッケージでどのように機能するか、および回帰モデルを強化できるかどうかを誰かが説明してくれれば、本当に感謝しています。

4

1 に答える 1

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単純に線形回帰の 2 つの係数である要素が含まれます。

次に、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
}

データの非線形性は必ずしも関連性があるとは限りませんが、近似値と実際の値の関係が線形からかけ離れている場合、バイアス補正は非常に不十分である可能性があります。

いつでもモデルを適合させてから、適合値と実際の値を自分でプロットして、線形回帰に基づく補正が役立つかどうかを確認できます。

于 2013-07-24T14:17:35.440 に答える