Scikit-learn 参数 oob_score, oob_score_, oob_prediction_
Posted
技术标签:
【中文标题】Scikit-learn 参数 oob_score, oob_score_, oob_prediction_【英文标题】:Scikit-learn parameters oob_score, oob_score_, oob_prediction_ 【发布时间】:2016-02-11 09:32:25 【问题描述】:我很难找出 oob_score_ 对 scikit-learn 中随机森林回归器的含义。在文档上它说:
oob_score_: 浮动 使用袋外估计获得的训练数据集的分数。
起初我以为它会返回袋外实例集上每个实例的分数。但这是由属性给出的:
oob_prediction_ : 形状数组 = [n_samples] 使用训练集的袋外估计计算的预测。
它返回一个包含每个实例预测的数组。然后分析文档上的其他参数,我意识到该方法 score(X, y, sample_weight=None) 返回确定系数 R²。
考虑到调用属性 oob_score_ 返回一个浮点值,它代表什么?如果可能的话,我也想知道它是如何计算的。
文档的链接是RandomForestRegressor。
【问题讨论】:
【参考方案1】:它准确地返回文档中所说的内容
oob_score_ :使用袋外估计获得的训练数据集的浮点分数。
分数在哪里
score(X, y, sample_weight=None) 返回确定系数 R²。
和袋外估计是由于装袋过程而未用于训练的样本。
看看source,第 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 分数
【讨论】:
以上是关于Scikit-learn 参数 oob_score, oob_score_, oob_prediction_的主要内容,如果未能解决你的问题,请参考以下文章
使用 scikit-learn 对多类支持向量机进行参数优化
ValueError:Numpy中的非字符串名称仅在AWS Lambda上进行unpickling