在scikit learn中,我很难弄清楚oob_score_在随机森林回归器上的含义。文件上写着:
oob_score_:浮动使用袋外估计获得的训练数据集的分数。
起初,我认为它会返回包外实例集上每个实例的分数。但这是由属性给出的:
oob_prediction_:形状数组=[n_samples]在训练集上使用袋外估计计算的预测。
返回一个数组,其中包含每个实例的预测。然后分析文档上的其他参数,我意识到该方法score(X,y,sample_weight=None)返回决定系数R²。
考虑到调用属性oob_score_返回一个浮点值,它代表什么?如果可能的话,我也想知道它是如何计算的。
该文档的链接是RandomForestProgsor。
它准确地返回文档中所说的内容
oob_score_:使用开箱即用估计获得的训练数据集的float score。
得分
score(X,y,sample_weight=None)返回决定系数R²。
袋外估计是由于装袋程序而未用于训练的样本。
看看来源,727-740 行
predictions /= n_predictions
self.oob_prediction_ = predictions
if self.n_outputs_ == 1:
self.oob_prediction_ =
self.oob_prediction_.reshape((n_samples, ))
self.oob_score_ = 0.0
for k in range(self.n_outputs_):
self.oob_score_ += r2_score(y[:, k],
predictions[:, k])
self.oob_score_ /= self.n_outputs_
换句话说,它只是oob_prediction_
上的R2分数