如何获取用于计算OOB分数的数据?

How to get the data used to calculate OOB score?

我知道您可以通过在 RandomForestRegressor 函数中设置 oob_score=True 来获得 sklearn 随机森林中的 OOB 分数。我不确定这是否可行,但有没有办法获得用于计算此 OOB 分数的观察结果和预测?

这存储在属性 oob_prediction_ 下,预测是通过对行或观察为 OOB 的所有树的平均预测获得的。

例如前 10 个观测值的前 10 个 OOB 预测:

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
X, y = make_regression(n_features=4, n_informative=2,
                       random_state=0, shuffle=False)
regr = RandomForestRegressor(max_depth=2, random_state=0,oob_score=True)
regr.fit(X, y)

regr.oob_prediction_[:10]