当前位置:  开发笔记 > 编程语言 > 正文

在python中没有交叉验证的网格搜索有简单的方法吗?

如何解决《在python中没有交叉验证的网格搜索有简单的方法吗?》经验,为你挑选了1个好方法。



1> David..:

我真的建议不要使用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


@David,为什么你认为OOB错误可能导致过度拟合?据我了解,根据https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm和其他文献,它应该是对错误率的无偏估计.
推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有