解释RandomForestRegressor的实际误差估计


9

我在数据上使用RandomForest回归器,可以看到oob得分为0.83。我不确定是怎么回事。我的意思是我的目标是10 ^ 7范围内的较高值。因此,如果是MSE,则应该更高。我不明白0.83在这里表示什么。

我正在使用sklearn工具包的python的RandomForestRegressor。

我做

模型= RandomForestRegressor(max_depth = 7,n_estimators = 100,oob_score = True,n_jobs = -1)model.fit(trainX,trainY)

然后我看到了model.oob_score_,得到的值像0.83809026152005295


@莫莫 我正在使用python的sklearn.ensemble的RandomForestRegressor。我只是使用类似的模型
user34790 2013年

Answers:


6

为了比较随机森林的地面真值(即正确/实际)目标值与估计(即预测)目标值,scikit-learn不使用MSE,而是使用(不同于MATLAB或(Breiman 1996b) ),如您在forest.py代码中所看到的[R2

self.oob_score_ = 0.0
for k in xrange(self.n_outputs_):
    self.oob_score_ += r2_score(y[:, k], predictions[:, k])
self.oob_score_ /= self.n_outputs_

r2_score()亦即计算确定系数。R2,其最高可能得分为1.0,而较低的值则更差。

仅供参考:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.