我正在使用matlab中的glmnet进行多项式回归,并且数据集大约为6-10GB,具体取决于我制作测试集的大小。我能够将它加载到内存中,但似乎glmnetmex无法处理更大的训练大小的整个数据集(例如留下一个)。我怀疑应该有一种方法来批量输入到glmnetmex,但我似乎无法在文档中找到它。它是否存在,或者您是否有任何其他方面的建议?如果它有办法解决这个问题,我可以使用R版本
答案 0 :(得分:0)
能够将批次提供给方法需要两件事:
glmnet
有后者,但不幸的是,不是前者。我认为你有几个选择来解决这个问题:
glmnet
代码。 MATLAB和R包都是实际优化器的包装器,它是用FORTRAN编写的。两个包装器在将模型变量传递给FORTRAN求解器之前进行新的初始化。您可以尝试修改它以使用预先计算的模型。glmnet
模型,并使用加权投票方案(其中每个预测变量按其交叉验证性能加权)进行最终预测。 / LI>
glmnet
一样。我的包确实允许您使用预先计算的模型初始化训练,以及针对固定数量的迭代运行训练。缺点是我只有二项式求解器,而不是多项式求解器。所以,你必须用一对一或一对一的方案来破解它。