我正在学习 xgboost 并计划运行树模型。我的数据集包括重复测量。在 GLMM 中,我将包含 ID 以说明重复测量,我很好奇是否应该使用 xgboost 执行此操作。
另一种方法是将我的数据集从长数据集转换为宽数据集(例如,每次测量项目时创建不同的列)。
如果我要删除 ID 列并仅包含有意义的预测变量,我会违反 xgboost 树模型的任何假设吗?
我正在学习 xgboost 并计划运行树模型。我的数据集包括重复测量。在 GLMM 中,我将包含 ID 以说明重复测量,我很好奇是否应该使用 xgboost 执行此操作。
另一种方法是将我的数据集从长数据集转换为宽数据集(例如,每次测量项目时创建不同的列)。
如果我要删除 ID 列并仅包含有意义的预测变量,我会违反 xgboost 树模型的任何假设吗?
您担心使用集群数据然后忽略它们的继承集群是正确的。这可能导致信息泄漏,因为特定于集群/主题的方差模式可能会指示无法推广到基础人群的模式,即导致我们过度拟合我们的样本数据。在这个程度上,完全忽略主题信息,同样不能保护我们免于过度拟合;我们的学习者可能会自行检测特定主题的模式。
此问题的部分解决方法相对简单。我们不会完全随机地分割我们的可用数据,而是设计我们的训练和测试集,使来自同一主题的测量值要么只存在于训练中,要么只存在于测试集中。这很容易实现,因为我们只需要对主题进行采样而不是原始测量。在训练期间我们可能仍然会过度拟合特定主题的模式,但理论上这些会在测试期间受到惩罚,从而引导我们对我们的学习任务进行更普遍的表示。套用 Karpievitch 等人的说法。(2009 年)基于随机森林的分类器的内省比较,用于通过 RF++ 分析聚类相关数据:这实际上是增长的想法“引导样本(通过替换选择的随机样本)上的每棵树在主题级别而不是在训练数据的复制级别“。
从理论上讲,已经有一些工作特别是关于将 GBM 用于聚类数据(例如 Groll & Tutz (2012) Regularization for Generalized Additive Mixed Models by Likelihood-Based Boosting或 Miller et al. (2017) Gradient Boosting Machine for Hierarchically Clustered数据)我认为可以对你想要的东西有洞察力。这些工作的基本思想是,给定对我们的固定效应、随机效应和方差分量(例如通过lme4::lmer
)的一些初始估计,我们通过惩罚似然函数的梯度提升来计算新的固定和随机效应的估计。然后考虑那些固定的,我们重新估计方差分量。然后我们多次这样做,直到在EM中令人满意地收敛喜欢的方法。
一般的一点是,固定效应和随机效应之间的区别通常是方便和/或现有命名法的问题(有关更多详细信息,请参阅主题:固定效应、随机效应和混合效应模型之间的区别是什么?)。根据特定的任务,某些因素可以被视为随机的或固定的。我认为最重要的是确保我们不做出不合理的假设。
一些最终的蓝天想法: 1. 有一个核心 ML 问题通过 GBM 解决并且与集群数据有关:学习排名。在这种情况下,查询是分析单位,随后的度量(例如,平均倒数排名或(标准化)贴现累积增益)都与每个分析单位相关。你也可以从那里得到一些想法。2. 有专门为聚类数据开发的回归树和随机森林的实现(首先参见 Hajjem et al. (2011) Mixed Effects Regression Trees for Clustered Data和 Hajjem et al. (2014)分别用于聚类数据的混合效应随机森林)。稍微简单地说,我假设如果这些程序在提升框架中用作基础学习器,那么提升程序在与聚类数据一起使用时应该表现得一致。
通常,简单地删除 ID 列不是一个好主意,因为您忽略了潜在的重要信息。此外,将 ID 列作为分类变量在某些情况下可能存在缺点:当类别很多且每个类别的样本数量相对较少时,学习效率不高,并且树算法可能会遇到高基数分类变量的问题。为避免这些问题,您可以使用混合效应模型,该模型使用随机效应对 ID 进行建模。
GPBoost 库建立在LightGBM 之上,并允许组合树增强模型和混合效果模型。简单地说,它是线性混合效应模型的扩展,其中固定效应是使用树增强来学习的。有关详细信息,请参阅此博客文章和Sigrist (2020)。
免责声明:我是 GPBoost 库的作者。