我有一个太大而无法容纳在内存中的数据集,所以我必须分批训练模型。我已经将我的模型包装在GridSearchCV,RandomizedSearchCV或BayesSearchCV(来自scikit-optimize)中,并且看到我无法在我庞大的数据集的不同部分训练这些实例,并期望每个人找到的最佳超参数都会同意。 / p>
我已经考虑将我的估算器包装在BatchVoter(我自己设计的)中,它批量管理从数据库读取并保留模型列表。将此传递给XSeachCV并更新参数空间字典,以便所有带有'estimator__'的键可以指示搜索设置子对象的参数,但仍然存在问题:搜索开始时调用.fit()方法,必须采取数据。
是否有一种聪明的方法可以将原生GridSearchCV用于太大而无法传递给.fit()方法的数据?
答案 0 :(得分:1)
试试dask。它支持数据框架,数组和集合。它由调度程序和工作人员组成。它还有一个distributed调度程序,允许在几台PC上处理数据帧。
Here是关于如何并行化模型的描述。
Here是指向完整模块的链接,可以直接替换GridSearchCV