纵向大数据如何建模?

机器算法验证 机器学习 数据转换 随机森林 面板数据 大数据
2022-01-29 05:32:02

传统上我们使用混合模型来建模纵向数据,即数据如下:

id obs age treatment_lvl yield
1  0   11   M  0.2
1  1   11.5 M  0.5
1  2   12   L  0.6
2  0   17   H  1.2
2  1   18   M  0.9

我们可以为不同的人假设随机截距或斜率。然而,我试图解决的问题将涉及巨大的数据集(数百万人,每天观察 1 个月,即每个人将有 30 次观察),目前我不知道是否有包可以做这个级别的数据。

我可以访问 spark/mahout,但他们不提供混合模型,我的问题是,无论如何我可以修改我的数据,以便我可以使用 RandomForest 或 SVM 来建模这个数据集?

我可以利用任何特征工程技术来帮助 RF/SVM 解释自相关?

非常感谢!

一些潜在的方法,但我没有时间将它们写入 spark

如何将随机效果包含在 randomForest 中

纵向数据的 SVM 回归

3个回答

如果您只有几个变量,如示例中所示,那么您应该对lme4.

机器学习技术真正闪耀的地方是当你有很多变量并且你希望对变量之间的非线性和交互进行建模时。很少有机器学习方法可以用纵向数据做到这一点。RNN 是一种选择,尽管它们通常针对时间序列问题而不是面板数据进行优化。

原则上,前馈神经网络是(广义)线性模型,回归量是输入数据的非线性函数。如果派生的回归量——输出之前的模型顶层——被认为是非参数部分,那么没有什么能阻止你添加参数结构——也许是随机效应的形式。

然而,这尚未针对分类问题实施,我假设您正在这样做是因为您对作为候选者的 SVM 感兴趣。

重复纵向数据的机器学习技术交叉验证 sklearn 文档具有用于分组数据的交叉验证迭代器!请参阅GroupKFoldLeaveOneGroupOutLeavePGroupsOut

如果您对纯预测感兴趣,最好的选择可能是使用递归神经网络另一种选择是隐马尔可夫模型

您的纵向数据真的需要随机森林、神经网络等吗?lme4能够处理数百万个人:

https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf

它可以轻松处理线性混合模型,从链接中可以看出,它还支持非线性混合模型(尽管我不希望它对于非线性模型也很快)。