Vowpal Wabbit 如何处理 NA 或缺失值?

机器算法验证 预测模型 vowpal-wabbit
2022-03-15 07:37:31

我正在处理一个涉及大量 NA 的问题。大众如何解决这个问题?在管道输入大众格式之前,我是否应该尝试用 colmeans 或类似的东西来估算 NA?

1个回答

详细说明我的答案:

假设您的数据的第一行是:

y, v1, v2, v3
10, 5, NA, 3

该行的 VW 字符串编码为:

10 |v1:4 v2:NA v3:3

正如您可能发现v2:NA的那样不适用于大众,因为冒号后面的部分需要是数字。

一个简单的解决方案是:NA在您的 VW 字符串中找到,并将其替换为_NA

10 |v1:4 v2_NA v3:3

这在大众汽车中可以正常工作,因为它会在内部重新编码v2_NAv2_NA:1.

这将允许模型了解当 v2 为 NA 时会发生什么,以及这与已知情况有何不同。


您可以估算中位数,但这可能是一个更好的主意:

  1. 为每个变量计算一个“NA 标志”,当它是 NA 时为 1,当它不是时为 0。
  2. 从您的大众培训文件中省略 NA 变量。
  3. 在您的数据集上进行训练,省略 NA 并包括标志。

这将让大众建立一个模型,为 NA 变量预测一件事,当它存在时预测另一件事。