no_*_*123 5 python python-2.7 random-forest scikit-learn
我从Python scikit-learn包中实现了随机森林分类器(RF)以解决ML问题.在第一阶段,我使用交叉验证来检查其他算法,现在我可以选择RF.
后来我还查看了RF的OOB估计告诉我的内容.但是,当我将'oob_score_'中的回报与我的CV结果进行比较时,我有很大的差异.
scikit-learn文档告诉我:
oob_score:bool
是否使用袋外样本来估计泛化误差.
由于doc,我假设参数'oob_score_'是误差估计.但是寻找原因,我也想到它可能实际上估计了准确性而不是这个 - 至少有点 - 更接近我的简历结果.我也检查了代码,更多的是相信这是准确性,但我想确定...(在这种情况下,我发现该文档误导BTW).
oob_score_是scikit-learn准确度还是误差估计?
它与.score方法类似,可返回模型的准确性。它只是概括为oob场景。文档确实确实有点误导。
您可能会在代码中找到https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py
for k in range(self.n_outputs_):
if (predictions[k].sum(axis=1) == 0).any():
warn("Some inputs do not have OOB scores. "
"This probably means too few trees were used "
"to compute any reliable oob estimates.")
decision = (predictions[k] /
predictions[k].sum(axis=1)[:, np.newaxis])
oob_decision_function.append(decision)
oob_score += np.mean(y[:, k] ==
np.argmax(predictions[k], axis=1), axis=0)
Run Code Online (Sandbox Code Playgroud)
它仅计算正确分类的平均值。
| 归档时间: |
|
| 查看次数: |
4145 次 |
| 最近记录: |