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

标签 python scikit-learn random-forest cross-validation grid-search

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

我在一台 64 核机器上运行它,在大约 2 小时的时间里,它让 2000 个线程在第一次折叠时处于事件状态。然后它完全停止向标准输出报告。它的最新报告是: [Parallel(n_jobs=-1)]:完成 60 次中的 4 次 |已用:84.7 分钟 剩余:1185.8 分钟

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

我已经有 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 的搜索应该使你能够在仅 8 次迭代中对你在此处指定的整个参数空间进行网格搜索。

关于python - 如何使随机网格搜索更加冗长? (似乎停止了,但无法诊断),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491583/

相关文章:

python - Pandas python 用字符串替换空行

python - scikit-learn 中的不平衡

python - Scikit-learn 随机森林拟合方法中的值误差

R机器学习包处理大量级别的因素

python - 从列表的每个列表中创建索引为 i 的新元组

python - 插入数据以协调链接不同端的读数的算法?

python - Python sklearn 中 Matlab 的 PCA 的等效项

python - sklearn auc 分数 - diffmetrics.roc_auc_score & model_selection.cross_val_score

python - RandomForestClassifier(sklearn)的predict_proba(X)似乎是静态的?

python - sqlalchemy:上一行和下一行的id