我注意到,在建立随机森林回归模型时,至少在中R
,预测值永远不会超过训练数据中看到的目标变量的最大值。例如,请参见下面的代码。我正在建立一个回归模型以mpg
根据mtcars
数据进行预测。我建立了OLS和随机森林模型,并使用它们来预测mpg
假设的汽车应该具有非常好的燃油经济性。OLS预计会mpg
达到预期的高,但随机森林则不会。我在更复杂的模型中也注意到了这一点。为什么是这样?
> library(datasets)
> library(randomForest)
>
> data(mtcars)
> max(mtcars$mpg)
[1] 33.9
>
> set.seed(2)
> fit1 <- lm(mpg~., data=mtcars) #OLS fit
> fit2 <- randomForest(mpg~., data=mtcars) #random forest fit
>
> #Hypothetical car that should have very high mpg
> hypCar <- data.frame(cyl=4, disp=50, hp=40, drat=5.5, wt=1, qsec=24, vs=1, am=1, gear=4, carb=1)
>
> predict(fit1, hypCar) #OLS predicts higher mpg than max(mtcars$mpg)
1
37.2441
> predict(fit2, hypCar) #RF does not predict higher mpg than max(mtcars$mpg)
1
30.78899
人们将线性回归称为OLS是否很常见?我一直认为OLS是一种方法。
—
浩业
我相信OLS是线性回归的默认方法,至少在R.
—
拉夫邦萨尔
对于随机树木/森林,预测是相应节点中训练数据的平均值。因此,它不能大于训练数据中的值。
—
杰森
我同意,但至少有其他三个用户回答了它。
—
HelloWorld