具有随机森林的sklearn校准分类器

时间:2018-05-13 12:41:29

标签: python scikit-learn random-forest

Scikit有一个非常有用的分类器包装器CalibratedClassiferCalibratedClassifierCV,它们试图确保分类器的predict_proba函数真正预测概率,而不仅仅是一个任意数字(虽然可能排名很高,但在0和1之间。

但是,在使用随机森林时,习惯使用oob_decision_function_来确定训练数据的性能,但在使用校准模型时不再可用。因此,校准应该适用于新数据,但不适用于训练数据。我们如何评估训练数据的表现以确定例如过度拟合?

1 个答案:

答案 0 :(得分:0)

显然,对此确实没有解决方案,因此我向scikit-learn发出了请求请求。

问题是在学习期间创建了袋外预测。因此,在CalibratedClassifierCV中,每个子分类器确实具有其自己的oob决策功能。但是,此决策函数是根据数据的折叠计算的。因此,有必要存储每个oob预测(保留不在折叠中的样本的nan值),然后使用校准变换转换所有预测,然后对校准的oob预测求平均值以创建更新的oob预测。

如上所述,我在https://github.com/scikit-learn/scikit-learn/pull/11175创建了一个拉取请求。不过,将其合并到软件包中可能还需要一段时间,因此,如果有人真的需要使用它,请随时使用https://github.com/yishaishimoni/scikit-learn上我的scikit-learn分叉。