大数据的第一步(,)


21

假设您正在分析每天有数十亿个观测值的巨大数据集,其中每个观测值都有数千个稀疏值,可能还有多余的数值和类别变量。假设存在一个回归问题,一个不平衡的二元分类问题,以及一项“找出最重要的预测变量”的任务。我对如何解决该问题的想法是:

在数据的越来越大(随机)子样本上拟合一些预测模型,直到:

  1. 拟合和交叉验证模型在计算上变得困难(例如,我的笔记本电脑运行异常缓慢,R内存不足等),或者

  2. 训练和测试RMSE或精度/召回值稳定。

如果训练和测试错误不稳定(1.),请使用更简单的模型和/或实施该模型的多核或多节点版本,然后从头开始。

如果训练和测试错误稳定下来(2.):

  • 如果(即,我仍然可以在上运行算法,因为它还不太大),请尝试通过扩展特征空间或使用更复杂的模型并从头开始重新启动来提高性能。X 小号ü b 小号Ë ñsübsËŤñXsübsËŤ

  • 如果是'large'并且进行进一步的分析是昂贵的,则分析变量的重要性并结束分析。ñsübsËŤ

我打算使用像包biglmspeedglmmulticore,和ffR中最初,并在以后使用更复杂的算法和/或多节点(上EC2)是必要的。

这听起来像是一种合理的方法吗?如果是,那么您是否有任何具体建议或建议?如果没有,那么您将尝试使用这种大小的数据集吗?


1
这听起来很合理。我发现了有关类似方法的讨论:youtube.com/watch?v=X9YVSDWQokQ
alfa 2012年

2
jmlr.csail.mit.edu/proceedings/papers/v7/miller09/miller09.pdf这可能会有所帮助。有关数学的更多详细信息,请访问:ms.unimelb.edu.au/~millerh/papers/gencor_JCGS.pdf
dcl

@dcl:谢谢-这个主意是一种不错的,计算便宜的非线性变量选择方法,可以很好地并行化(尽管它是单变量的)。我可以尝试一下,因为它快速且非常简单。我本来是想使用这种非常酷的算法:code.google.com/p/rf-ace
锁定时间2012年

@alfa:我真的很喜欢这个主意!对越来越大的数据子集使用顺序测试,以顺序消除性能最差的元参数。这应该大大增加。谢谢!ps这里是演讲的纸质版本:biglearn.org/files/papers/biglearn2011_submission_2.pdf
锁定

Answers:


2

您应该查看在线方法来对这种大小的数据集进行回归和分类。这些方法使您可以使用整个数据集,而不必将其加载到内存中。

您也可以查看Vowpal Wabbit(VW):

https://github.com/JohnLangford/vowpal_wabbit/wiki

它使用核心以外的在线方法,因此它应该能够处理这种大小的数据集。您可以进行回归和分类,它支持稀疏格式。您还可以在大众汽车中进行惩罚性版本(例如套索类型回归/分类),这可以提高模型的准确性。


2

我建议使用Hadoop和RMR(R中Map Reduce的特定软件包)。通过这种策略,您可以以可承受的配置在商品计算机上运行大型数据集(大概在两个小时内即可安装并运行Hadoop和RMR(RHadoop))。

实际上,如果您拥有多台计算机,则可以创建集群,从而减少了处理时间。

我给您一些支持我的建议的链接:

  • 链接将带您进入在单节点群集(一台计算机)上安装Hadoop的教程。
  • 链接和此链接将向您展示如何在Hadoop集群上安装RMR。
  • 最后,您可以在此处找到通过RHadoop进行逻辑回归的示例。

因此,我的建议是遵循这些准则,因为如果您的数据量巨大,那肯定是值得的。


0

这不是评论,而是答案,但我不能将其发布为评论(需要50个代表)。

您是否尝试过在数据集中使用PCA?它可以帮助您减少变量空间并找到从回归模型中排除变量的可能方向。这样做,模型将更易于计算。在这里,您可以找到有关将PCA​​与分类变量一起使用的有趣讨论:主成分分析可以应用于包含连续变量和分类变量的数据集吗?

另外,我想您使用R的原因有很多(我也使用R),但是使用SAS或STATA之类的软件可能会更容易。它们在处理大数据时表现更好,您不必处理多核和并行计算。

最后,尝试考虑使用数据集中尽可能多的行是否有意义。这是人口数据集,准人口数据集还是抽样数据集?通过对数据集进行良好的采样,可以获得比使用整个数据更好的结果。看一下这篇文章:采样在“大数据”时代是否相关?

希望这可以帮助

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.