在时间序列数据中填补缺失值的最佳方法是什么?数据在工作时间内变化很大,且缺失数据成块出现。
我尝试过后填、前填和均值填充技术来填补数据。我还使用pandas包尝试了插值法(线性、最近邻和多项式),但效果不太理想。输入图片描述
第一张图显示了4月6日至9日左右的缺失数据。第二张图是在使用线性插值填补缺失值后的结果。
填补这种数据的最佳方法是什么?我担心线性插值会导致数据污染。
我读了一些关于卡尔曼滤波器的内容,但不确定如何使用它。
回答:
这真的取决于缺失数据块的大小,但在某些情况下,训练模型以预测缺失值可能有效。
除了使用线性回归
,你还可以尝试其他模型,例如k-近邻回归
。此外,datawig
模块(Github)使用神经网络来学习机器学习模型,以填补表格中的缺失值。
Python中的卡尔曼滤波器可以在FilterPy
模块中找到。更多信息请阅读文档这里。
此外,由于你处理的是时间序列数据,你可以看看ARIMA模型是否能预测你的缺失值。