如何处理不存在(不丢失)的数据?

机器算法验证 缺失数据
2022-03-27 04:28:36

我从来没有真正找到任何关于如何处理任何类型分类器输入的“不存在”数据的好的文本或示例。我已经阅读了很多关于缺失数据的内容,但是对于与多变量输入相关的不能或不存在的数据可以做些什么。我知道这是一个非常复杂的问题,并且会因使用的培训方法而异...

例如,如果试图用准确的数据预测几位跑步者的单圈时间。在众多输入中,可能的变量包括:

  1. 输入变量 - 首次参赛者 (Y/N)
  2. 输入变量 - 上一圈时间(0 - 500 秒)
  3. 输入变量 - 年龄
  4. 输入变量 - 高度。. . 更多输入变量等

& 输出预测器 - 预测单圈时间(0 - 500 秒)

“2.Previous laptime”的“缺失变量”可以通过多种方式计算,但“1. First time runner' 总是等于 N 。但是对于第一次跑步者的“不存在的数据”(其中“1.第一次跑步者”= Y)我应该为“2. 上一圈”?

例如分配'2。以前的单圈时间为 -99 或 0 可以显着扭曲分布,使其看起来像一个新的跑步者表现良好。

我目前的训练方法一直在使用逻辑回归、SVM、NN 和决策树

2个回答

对于通过最大似然拟合的逻辑回归,只要模型中同时具有 (1) 和 (2),那么无论您为 (2) 提供什么“默认”值,对 (1) 的估计会相应调整。

例如,让是“是新跑步者”的指示变量,而是变量“以前的单圈时间,以秒为单位”。那么线性预测器是:X1X2

η=α+β1X1+β2X2+

的默认值为零,则新跑步者的线性预测值为:X2

η=α+β1+

而对于现有的跑步者,它将是:

η=α+β2X2+

现在假设您将的默认值从 0 更改为 -99。那么新跑步者的线性预测器现在是:X2

η=α+β199β2+

但对于现有的跑步者,它将保持不变。所以你所做的就是重新参数化模型,使得,并且由于最大似然是参数化不变的,因此估计会相应地调整。β199β2=β1

当然,如果您没有使用最大似然(即您在参数上使用某种惩罚或先验),那么除非您相应地调整惩罚/先验,否则您将获得不同的值。如果模型是非线性的(例如 SVM、NN 和决策树),那么这个论点根本不起作用。

无需为不存在的第一次跑者上一圈时间分配特殊值,只需使用与首次跑者假人相反的上一圈时间的交互项:

Yi=β0+β1FTRi+β2(NFTRi)×PLTi+...

这里

  • Yi是您的输入变量,
  • ...是你的其他变量,
  • FTRi对于第一次跑步者来说是假的,
  • PLTi是前一圈时间,
  • NFTRi时,NFTR_i为非第一次跑步者等于 1,否则为 0。FTRi=0

那么第一次跑步的模型将是:

Yi=(β0+β1)+...

对于非第一次跑步者:

Yi=β0+β2PLTi+...