随机森林插补

机器算法验证 数据挖掘 预测模型 缺失数据 随机森林 数据插补
2022-03-04 12:12:02

我有两个关于使用随机森林(特别是 R 中的 randomForest)进行缺失值插补(在预测变量空间中)的问题。

1)插补算法是如何工作的——特别是插补需要类标签的方式和原因?是用于加权平均值以估算由类单独定义的缺失值的邻近矩阵吗?

2)如果需要类标签来估算缺失值 - 如何使用它来估算您试图预测的新数据的缺失值?

2个回答

基本思想是快速替换缺失数据,然后使用邻近度迭代改进缺失插补。要使用未标记的数据,只需复制带有所有标签的数据,然后将其视为标记数据。

一对观察共享一个终端节点的树的比例给出了邻近矩阵,因此明确使用类标签。

训练集:

  1. 用平均值替换缺失值。
  2. 重复直到满意:

    一种。使用到目前为止计算的估算值,训练一个随机森林。

    湾。计算邻近矩阵。

    C。使用接近度作为权重,将缺失值估算为非缺失值的加权平均值。

测试集:

  1. 如果存在标签,请使用从测试数据得出的插补。
  2. 如果数据未标记,请为每个类标签复制测试集,并像处理标记数据一样继续。

这里,(加权)平均值是指数值变量的(加权)中位数和分类变量的(加权)众数。参考文献中建议进行 4-6 次迭代。

R 文档 (pdf) , Breiman 手册 v4.0 (pdf) , Breiman 的 RF 页面

我曾尝试在 MICE 中使用随机森林进行多重插补,以处理生存分析中的缺失数据。我使用自举来解释插补模型中的抽样可变性。我发现当插补模型中未包含的预测变量之间存在交互时,随机森林 MICE 的表现优于参数 MICE。

CALIBERrfimpute 包为 MICE 中的随机森林插补提供了一个功能:http:
//cran.r-project.org/web/packages/CALIBERrfimpute/index.html

这是一篇描述该方法在模拟数据和真实流行病学数据集上的测试的文章:http:
//dx.doi.org/10.1093/aje/kwt312