在居中和缩放之前或之后对缺失数据进行插补?

机器算法验证 机器学习 数据插补 定心 数据预处理
2022-02-17 14:01:56

我想为机器学习估算数据集的缺失值(knn 估算)。在插补之前或之后缩放和居中数据更好吗?

由于缩放和居中可能依赖于最小值和最大值,因此在第一种情况下,后续插补可能会添加新的最大值/最小值并篡改缩放/居中的数据。

但是,插补过程也可能受益于缩放和居中的数据集。

你认为什么更好,为什么?

2个回答

这实际上取决于所使用的插补技术。例如,如果我们使用基于距离的度量(例如 KNN)进行估算,则建议首先标准化数据,然后进行估算。这是因为较低的幅度值收敛得更快。

一个想法可能是使用 caret 包中的预处理功能。当您使用 method = knnImpute 时,它​​首先在插补之前居中并缩放数据。

preProcValues <- preProcess(data, method = c("knnImpute","center","scale"))

据推测,如果您确实需要对数据进行中心化和缩放,则应该在插补完成,因为插补可能会影响正确的中心和使用比例!

通常,插补应该是您进行的任何分析的第一步。

编辑@Inon 对评论的回答:

你说插补应该保持中心和规模,以及标准化。为什么?如果缺失值确实是随机缺失的,也许这并不重要,但通常缺失可能取决于其他观察到的变量,然后平均值和尺度的估计可能会因缺失中的这种模式而出现偏差。插补(更好的多重插补)是对抗这种偏差的一种方法。但是,如果您在缩放后进行插补,您只需保留缺失机制引入的偏差。插补是为了解决这个问题,而在缩放后进行插补就可以解决这个问题。