我真的建议不要使用OOB评估模型,但是了解如何在外部运行网格搜索gridsearchcv()
(这是非常有用的(我经常这样做,这样我可以保存最佳网格的CV预测值以便于模型堆叠)非常有用)。我认为最简单的方法是通过创建参数网格,ParameterGrid()
然后循环遍历所有参数集。例如,假设您有一个名为“ grid”的网格字典,以及一个名为“ rf”的RF模型对象,则可以执行以下操作:
for g in ParameterGrid(grid):
rf.set_params(**g)
rf.fit(X,y)
# save if best
if rf.oob_score_ > best_score:
best_score = rf.oob_score_
best_grid = g
print "OOB: %0.5f" % best_score
print "Grid:", best_grid