yke*_*ke9 20 python random-forest scikit-learn grid-search
在scikit中有一个绝对有用的类GridSearchCV - 学习网格搜索和交叉验证,但我不想做交叉验证.我想在没有交叉验证的情况下进行网格搜索,并使用整个数据进行训练.更具体地说,我需要在网格搜索期间使用"oob得分"评估RandomForestClassifier制作的模型.有简单的方法吗?或者我应该自己上课?
要点是
Dav*_*vid 32
我真的建议不要使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9883 次 |
| 最近记录: |