R glmnet批处理超大数据集
我正在用matlab中的glmnet进行多项式回归,数据集大约为6-10GB,这取决于我的测试集有多大。我可以将其加载到内存中,但glmnetmex似乎无法处理整个数据集,以获得更大的训练大小(例如遗漏一个)。我怀疑应该有一种方法可以批量输入到glmnetmex,但我似乎在文档中找不到它。它是否存在,或者您对如何进行其他操作有何建议?如果R版本能够解决这个问题,那么我可以使用它来代替它能够向方法提供批处理需要两件事:R glmnet批处理超大数据集,r,matlab,glmnet,R,Matlab,Glmnet,我正在用matlab中的glmnet进行多项式回归,数据集大约为6-10GB,这取决于我的测试集有多大。我可以将其加载到内存中,但glmnetmex似乎无法处理整个数据集,以获得更大的训练大小(例如遗漏一个)。我怀疑应该有一种方法可以批量输入到glmnetmex,但我似乎在文档中找不到它。它是否存在,或者您对如何进行其他操作有何建议?如果R版本能够解决这个问题,那么我可以使用它来代替它能够向方法提供批处理需要两件事: 使用先前拟合初始化学习算法的能力 能够在有限的迭代次数内运行学习算法 gl
- 使用先前拟合初始化学习算法的能力
- 能够在有限的迭代次数内运行学习算法
glmnet
有后者,但不幸的是,没有前者。我认为你有几种解决问题的方法:
- 找一台更好的机器。如果你的财务资源允许的话,你可以考虑使用一个云服务。
- 深入查看
代码。MATLAB和R包都是用FORTRAN编写的实际优化器的包装。在将模型变量传递给FORTRAN解算器之前,这两个包装器都对模型变量进行了新的初始化。您可以尝试修改它以使用预先计算的模型glmnet
<> LI>您可以考虑构建一个集合预测器,在每个批次上训练一个单独的<代码> GLMNET < /C>模型,并使用加权投票方案(其中每个预测器通过其交叉验证性能加权)进行最终预测。
- 我有一个提供了更通用的正则化框架,但它也可以用于训练标准的弹性网络模型,如
。我的软件包允许您使用预先计算的模型初始化训练,以及为固定的迭代次数运行训练。缺点是我只有一个二项式解算器,而不是多项式解算器。因此,您必须使用一对一或一对rest方案来破解它glmnet
- 最后,如果您不喜欢线性模型,那么还有很多其他的学习方法可以方便地批量输入。深度学习和神经网络框架是目前比较流行的框架
- 使用先前拟合初始化学习算法的能力
- 能够在有限的迭代次数内运行学习算法
glmnet
有后者,但不幸的是,没有前者。我认为你有几种解决问题的方法:
- 找一台更好的机器。如果你的财务资源允许的话,你可以考虑使用一个云服务。
- 深入查看
代码。MATLAB和R包都是用FORTRAN编写的实际优化器的包装。在将模型变量传递给FORTRAN解算器之前,这两个包装器都对模型变量进行了新的初始化。您可以尝试修改它以使用预先计算的模型glmnet
<> LI>您可以考虑构建一个集合预测器,在每个批次上训练一个单独的<代码> GLMNET < /C>模型,并使用加权投票方案(其中每个预测器通过其交叉验证性能加权)进行最终预测。
- 我有一个提供了更通用的正则化框架,但它也可以用于训练标准的弹性网络模型,如
。我的软件包允许您使用预先计算的模型初始化训练,以及为固定的迭代次数运行训练。缺点是我只有一个二项式解算器,而不是多项式解算器。因此,您必须使用一对一或一对rest方案来破解它glmnet
- 最后,如果您不喜欢线性模型,那么还有很多其他的学习方法可以方便地批量输入。深度学习和神经网络框架是目前比较流行的框架