如何使随机网格搜索更加冗长? (似乎停止了,但无法诊断)

How can I get randomized grid search to be more verbose? (seems stopped, but can't diagnose)

我是 运行 一项相对较大的工作,其中涉及对数据集进行随机网格搜索,这(使用较小的 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)

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

我真的不知道为什么你的搜索卡住了,但考虑一下删除 n_estimators 上的搜索应该能让你网格搜索你在这里指定的整个 space 参数8 次迭代。