Sha*_*eer 2 python machine-learning scikit-learn
是否有一种简单/预先存在的方式在scikit-learn中执行网格搜索,然后自动返回前k个最佳表现模型或自动平均其输出?我打算尝试以这种方式减少过度拟合.我还没有找到与此相关的任何内容.
编辑:为了澄清,我知道sklearn的GridSearch,我正在寻找一个选项来执行网格搜索,然后返回最佳k表现最好的模型或平均值,而不是只返回最好的单一模型.
如果你有适合的GridSearchCV对象grid,你可以得到每个参数的结果grid.cv_results_.我通常将其加载为pandas DataFrame.
import pandas as pd
results = pd.DataFrame(grid.cv_results_)
results.sort_values(by='rank_test_score', inplace=True)
Run Code Online (Sandbox Code Playgroud)
然后,您可以从params列中获取每个模型的参数.例如,我想要第二个最佳参数集:
params_2nd_best = results.loc[1, 'params']
clf_2nd_best = grid.best_estimator_.set_params(**params_2nd_best)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |