【问题标题】:Scikit-learn parameters oob_score, oob_score_, oob_prediction_Scikit-learn 参数 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

【问题讨论】:

    标签: python-2.7 scikit-learn random-forest


    【解决方案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 分数

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 2014-02-18
      • 2015-07-11
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 2017-09-05
      相关资源
      最近更新 更多