首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >glmnet批处理超大数据集

glmnet批处理超大数据集
EN

Stack Overflow用户
提问于 2016-08-23 21:33:37
回答 1查看 171关注 0票数 1

我正在用matlab中的glmnet做多项式回归,并且有一个大约6-10 in的数据集,这取决于我做测试集的大小。我可以将它加载到内存中,但是glmnetmex似乎无法处理更大规模的培训的整个数据集(例如排除一个数据集)。我怀疑应该有一种方法对glmnetmex的输入进行批量处理,但我似乎无法在文档中找到它。它是否存在,或者您对如何进行其他操作有任何建议吗?如果R版本有解决这个问题的方法,我可以使用R版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-26 15:01:02

能够将批处理提供给方法需要两件事:

  • 能够用以前的拟合来初始化学习算法
  • 在有限的迭代中运行学习算法的能力

glmnet有后者,但不幸的是,前者没有。我认为你有几个选择来解决这个问题:

  • 找一台更好的机器。如果财力允许的话,您可以考虑使用其中一个云服务。
  • 深入研究glmnet代码。MATLAB和R包都是实际优化器的包装器,它是用FORTRAN编写的。两个包装器在将模型变量传递给FORTRAN求解程序之前都会对它们进行新的初始化。您可以尝试修改它以使用预先计算的模型。
  • 您可以考虑构建一个集成预测器,其中您在每个批处理上训练一个单独的glmnet模型,并使用一个加权投票方案(其中每个预测器根据其交叉验证性能进行加权)来进行最终预测。
  • 我有一个R包,它提供了一个更通用的正则化框架,但它也可以用来训练标准弹性网模型,就像用glmnet一样。我的包确实允许您使用预先计算的模型初始化训练,以及为固定次数的迭代运行训练。不利的一面是,我只有一个二项式的解,而不是一个多项式的。所以,你必须用一比一或一比一的rest方案破解它。
  • 最后,如果您不依附于线性模型,那么还有很多其他的学习方法可以方便地分批输入。深入学习和神经网络框架是目前比较流行的框架之一。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39111035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档