如何知道随机森林生成的回归模型是否良好?(MSE和%Var(y))

Joh*_*hn 4 r variance random-forest mean-square-error

我试图使用随机森林进行回归.原始数据是218行和9列的数据帧.前8列是分类值(可以是A,B,C或D),最后一列V9的数值可以是10.2到999.87.

当我在训练集上使用随机森林时,它代表原始数据的2/3并随机选择,我得到了以下结果.

>r=randomForest(V9~.,data=trainingData,mytree=4,ntree=1000,importance=TRUE,do.trace=100)
       |      Out-of-bag   |
  Tree |      MSE  %Var(y) |
   100 | 6.927e+04    98.98 |
   200 | 6.874e+04    98.22 |
   300 | 6.822e+04    97.48 |
   400 | 6.812e+04    97.34 |
   500 | 6.839e+04    97.73 |
   600 | 6.852e+04    97.92 |
   700 | 6.826e+04    97.54 |
   800 | 6.815e+04    97.39 |
   900 | 6.803e+04    97.21 |
  1000 | 6.796e+04    97.11 |
Run Code Online (Sandbox Code Playgroud)

我不知道高方差百分比是否意味着模型是好的.此外,由于MSE很高,我怀疑回归模型并不是很好.有关如何阅读上述结果的任何想法?他们是否意味着模型不好?

Gor*_*ens 10

就像@Joran所说,%Var是随机森林模型解释的Y的总方差量.调整后,将模型应用于验证数据(保留1/3):

RFestimated = predict(r, data=ValidationData)
Run Code Online (Sandbox Code Playgroud)

检查残差也很有意思:

qqnorm((RFestimated - ValidationData$V9)/sd(RFestimated-ValidationData$V9))

qqline((RFestimated-ValidationData$V9)/sd(RFestimated-ValidationData$V9))
Run Code Online (Sandbox Code Playgroud)

估计值与观测值:

plot(ValidationData$V9, RFestimated)
Run Code Online (Sandbox Code Playgroud)

和RMSE:

RMSE <- (sum((RFestimated-ValidationData$V9)^2)/length(Validation$v9))^(1/2)
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!