有人可以解释如何使用python SciKit随机森林分类器的oob_decision_function_属性吗?我想用它来绘制学习曲线,将训练和验证误差与不同的训练集大小进行比较,以便识别过度拟合和其他问题。似乎无法找到有关如何执行此操作的任何信息。
答案 0 :(得分:2)
您可以将自定义评分函数传递到模型评估字段中的任何scoring
参数中,它需要具有签名classifier, X, y_true -> score
。
对于您的情况,您可以使用类似
的内容from sklearn.learning_curve import learning_curve
learning_curve(r, X, y, cv=3, scoring=lambda c,x,y: c.oob_score_)
这将针对不同的训练集大小计算3倍交叉验证的oob分数。顺便说一下,我认为你不应该过度使用随机森林,这是他们的好处之一。