假设您正在分析一个每天数十亿次观察的庞大数据集,其中每个观察都有几千个稀疏且可能冗余的数值和分类变量。假设有一个回归问题,一个不平衡的二元分类问题,以及一个“找出哪些预测变量最重要”的任务。我对如何解决这个问题的想法是:
在逐渐变大(随机)的数据子样本上拟合一些预测模型,直到:
拟合和交叉验证模型在计算上变得困难(例如,我的笔记本电脑速度过慢、R 内存不足等),或者
训练和测试 RMSE 或精度/召回值稳定。
如果训练和测试错误没有稳定 (1.),请使用更简单的模型和/或实现模型的多核或多节点版本并从头开始。
如果训练和测试误差稳定(2.):
如果(即,我仍然可以在上运行算法,因为它还不是太大),尝试通过扩展特征空间或使用更复杂的模型并从头开始来提高性能。
如果是“大”并且运行进一步分析的成本很高,请分析变量重要性并结束。
我计划最初在 R 中使用 、 、 和 等包biglm
,speedglm
然后multicore
根据ff
需要使用更复杂的算法和/或多节点(在 EC2 上)。
这听起来像一个合理的方法吗?如果是,你有什么具体的建议或建议吗?如果没有,你会尝试什么来代替这种大小的数据集?