2

我正在运行一项相对较大的工作,其中涉及对数据集进行随机网格搜索,这(使用小的 n_iter_search)已经需要很长时间。

我在 64 核机器上运行它,大约 2 个小时,它使 2000 个线程在第一个折叠上工作。然后它完全停止向标准输出报告。它的最后报告是: [Parallel(n_jobs=-1)]: Done 4 out of 60 | elapsed: 84.7min remaining: 1185.8min

我在 htop 上注意到几乎所有核心​​都处于 0%,这在训练随机森林时不会发生。程序没有反馈或错误,如果不是 htop,我会认为它仍在训练中。这以前发生过,所以这是一个反复出现的问题。机器反应灵敏,过程似乎还活着。

我已经有verbose = 10。关于如何诊断RandomizedSearchCV中发生的事情有什么想法吗?

我正在做的网格搜索:

rfc = RandomForestClassifier(n_jobs=-1)

param_grid = { 'n_estimators': sp_randint(100, 5000), 'max_features' : ['auto', None], 'min_samples_split' : sp_randint(2, 6) }

n_iter_search = 20

CV_rfc = RandomizedSearchCV(estimator=rfc, param_distributions=param_grid, n_iter = n_iter_search, verbose = 10,n_jobs = -1)

4

1 回答 1

3

作为第一步,将verbose参数添加到RandomForestClassifieras 可以让您查看搜索是否真的卡住了。它将显示拟合树的进度(building tree 88 out of 100...)。

我真的不知道为什么您的搜索卡住了,但是考虑一下删除搜索n_estimators应该使您能够在 8 次迭代中对您在此处指定的整个参数空间进行网格搜索。

于 2015-07-18T16:29:20.060 回答