对于大量缺失,插补与对随机森林可用子集进行训练相比有何优势?

Posted

技术标签:

【中文标题】对于大量缺失,插补与对随机森林可用子集进行训练相比有何优势?【英文标题】:For large missingness, what are the advantages of imputation versus training on available subsets for random forest? 【发布时间】:2020-07-25 10:16:53 【问题描述】:

我想在缺失较大的数据集上训练一个随机森林模型。我知道“标准方法”,我们在训练集中估算缺失数据,使用相同的估算规则估算测试集,然后在估算的训练集上训练一个随机森林模型,并使用相同的模型来预测测试集(可能使用多重插补)。

我想了解的是与我想使用的以下方法的区别

根据缺失的模式对数据集进行子集化。为每个缺失的模式训练随机森林模型。使用在缺失模式 A 上训练的随机森林模型从缺失模式 A 的测试集中预测数据。使用在模式 B 上训练的模型从带有模式 B 的测试集中预测数据等。

这个方法的名称是什么?这两种方法的统计优势或劣势是什么?如果有人能指导我查阅有关第二种方法的一些文献,或者将两者进行比较,我将不胜感激。

【问题讨论】:

“缺失模式”到底是什么意思? 缺失变量的组合:假设我们有变量 a、b、c、d。例如,a 和 b 中可能有 10 条记录缺失。这是第一个缺失的模式。 7 条记录在 a 和 c 中有缺失。这是另一个缺失的模式......等等 【参考方案1】:

方法的区别在于预测能力。

如果您将根据不同的缺失模式训练不同的模型,它将在较少的数据量上进行训练(由于缺失模式分离),并且仅用于预测相应的测试集。使用这种方法,您很容易错过所有数据集的数据中的常见模式,否则(使用所有数据)您会检测到这些模式。

这仍然很大程度上取决于您的具体情况和您的数据。将检查由于特定缺失模式而训练的模型是否能够很好地泛化的良好测试将采用另一个缺失模式数据集,在其中进行简单快速的插补(均值/众数/中值等)并检查指标的差异。

在我看来,这种方法听起来有点极端,因为您自愿将您的火车数据集切割成比实际小得多的部分。也许,它可以在大量数据上表现得更好,而减少训练数据集不会对模型性能造成太大影响。

关于文章 - 我不知道有任何文章比较这两种方法,但可以就各种“标准”插补方法提出一些好的建议:

https://towardsdatascience.com/how-to-handle-missing-data-8646b18db0d4 https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779

【讨论】:

以上是关于对于大量缺失,插补与对随机森林可用子集进行训练相比有何优势?的主要内容,如果未能解决你的问题,请参考以下文章

单元无回答的缺失数据处理方法

我可以使用训练和测试数据进行插补吗?

为啥与 MSE 相比,使用 MAE 标准训练随机森林回归器如此缓慢?

如何从提升树 Estimator 迁移到 TensorFlow 决策森林

集成学习与随机森林随机森林与随机子空间

如何从提升树 Estimator 迁移到 TensorFlow 决策森林