如何处理 Python 中本应缺失的缺失值(不应插入 NaN)?

How to handle missing values in Python that are supposed to be missing (NaNs shouldn't be interpolated)?

我正在进行一个项目,根据许多变量对一个人的幸福感变化进行建模。

大多数解释变量是每天的(他们吃了多少食物、每天锻炼、睡眠等......)但其中一些是每周的 - 他们应该是每周的,并且对预测变量有影响每周一次。

例如,每周变量之一是一个人在每周的同一天称体重时的体重变化。

此数据每周仅提供一次,并影响当天的人的幸福度。

在那种情况下,有人可以告诉我如何在每周变量没有可用数据的日子里处理 python 中的缺失数据吗?

推断缺失日期的数据是错误的,因为在没有可用日期的那些每周变量中,人的幸福感根本不会受到影响。

我创建了一个虚拟对象,当每周数据可用时为 1,如果没有则为 0,但我不知道如何处理丢失的数据。我不能离开 NaN,否则 python 不会 运行 回归但我不能输入 0,因为有时数据可用当天的实际变量值(例如:体重变化)可以是 0。

SciKit-learn 提供了 类 称为 Imputers,它通过遵循用户定义的策略(即使用默认值、使用列的平均值...)来处理缺失值。如果你不想扭曲训练,我建议你使用统计数据而不是一些任意的默认值。

此外,您可以使用 MissingIndicator.

存储有关哪些值已被估算以及哪些值是有机值的信息

您可以通过 SciKit-Learn documentation

中的一些示例代码了解有关不同输入法的更多信息

解决此问题的一种方法:

  • 用最后一个值(在本例中是测量的重量)填入 NaN

  • 添加一个布尔变量"value available today"(已经按照问题中的描述完成)

  • 再添加一个变量:(最后可用值/先前值)* "value available today".

警告:对产品建模对于线性回归算法来说可能有点困难。