GridSearchCV - 每次迭代保存结果

Posted

技术标签:

【中文标题】GridSearchCV - 每次迭代保存结果【英文标题】:GridSearchCV - save result each iteration 【发布时间】:2018-06-11 23:40:32 【问题描述】:

我正在使用GridSearchCV,每次迭代后我都想将clf.cv_results_ 属性保存到文件中(以防进程在中间崩溃)。

我尝试寻找解决方案,但我就是想不通。

任何帮助将不胜感激。

【问题讨论】:

请添加一些示例代码和数据集的一些元素以提供帮助 【参考方案1】:

其中一种方法是将网格搜索的 verbose 参数设置为大于 0 的整数,例如 10 或更大,它将每次迭代的结果打印到控制台。

有了这个,你的输出应该被打印或记录到你的控制台, 然后按照this 或this 问题的答案查看如何将记录的结果放入文件中。

基本上,在运行GridSearch之前把这个:

import sys
old_stdout = sys.stdout

log_file = open("message.log","w")

sys.stdout = log_file

然后在运行你的GridSearch 之后,你应该关闭所有资源:

sys.stdout = old_stdout
log_file.close()

【讨论】:

以上是关于GridSearchCV - 每次迭代保存结果的主要内容,如果未能解决你的问题,请参考以下文章

为啥 sklearn.grid_search.GridSearchCV 在每次执行时都会返回随机结果?

GridSearchCV 参数不能改善分类

RandomizedSearchCV 和 GridsearchCV 结果不可重现

Sklearn gridsearchCV 对象在 pickle 转储/加载后更改

用于多项式回归的 GridsearchCV

如果有多个具有相同分数的估计器,GridsearchCV 会选择啥?