如何将 SciKit 随机森林的 oob_decision_function_ 用于学习曲线?

How to use SciKit Random Forests's oob_decision_function_ for learning curves?

有人可以解释如何使用 python SciKit 随机森林分类器的 oob_decision_function_ 属性吗?我想用它来绘制学习曲线,比较不同训练集大小的训练和验证错误,以识别过度拟合和其他问题。似乎找不到有关如何执行此操作的任何信息。

您可以将自定义评分函数传入模型评估字段中的任何 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 分数。顺便说一句,我不认为你应该过度适应随机森林,这是它们的好处之一。