其他分享
首页 > 其他分享> > 时间序列数据如何插补缺失值? - 知乎 https://www.zhihu.com/question/355799116

时间序列数据如何插补缺失值? - 知乎 https://www.zhihu.com/question/355799116

作者:互联网

时间序列数据如何插补缺失值? - 知乎 https://www.zhihu.com/question/355799116

 

时间序列数据如何插补缺失值?

目前有一个城市每天的温度、湿度、风速等天气数据,但是有些天没有记录数据,请问用什么办法插补比较好呢?

被浏览 21,555   查看全部 1 个回答 NaNNN NaNNN CS/HCI PhD Candidate 致知计划 · 科学季 · 已瓜分 10 亿流量 点击报名 马东什么QZhangXinyu Chen  等 

在多元时间序列中,数据缺失的情况十分普遍。最近我在做这方面的literature review,在这里回顾总结一下 。

时间序列缺失值处理方法主要分为三大类:

第一类是直接删除法,该方法可能会舍弃数据中的一些重要信息;

第二类是基于统计学的填充方法,如均值填充,中值填充,常用值填充,但这类方法忽略了数据的时序信息;

第三类是基于机器学习的填充方法,常见的方法有基于KNN(K-Nearest Neighbor),RNN(Recurrent Neural Networks) ,EM(Expectation-Maximization)和矩阵分解(Matrix Factorization)的缺失值填充算法。然而,这类方法也很少考虑到两个相邻数据间的时序信息。

另外,分享一个超级棒的Github资源(点击这里),作者用代码实现了当前最主流的时间序列缺失值填充算法和预测算法。

Trandim实现的主流算法

最后,不得不提的是,去年南开大学Yonghong Luo等人提出的用GAN来进行时间序列插值的算法 (发表于NIPS 2018 和IJCAI 2019)。他们提出的时间序列插值算法框架(E2GAN)如下所示

Generator本质上是一个降噪自编码器,输入的是一段含有缺失值的时间序列,生成一段相完整时间序列。判别器的loss分为两部分:squared error loss 和 discriminative loss,作用是使生成器生成的时间序列 (1) 和原始时间序列尽可能相似 (2) 尽可能真实 - 和generator输入的时间序列看起来比较像。

有兴趣可以去直接翻他们的两篇paper, 原作者的github代码点击这里

  1. Luo, Yonghong, et al. "Multivariate time series imputation with generative adversarial networks."Advances in Neural Information Processing Systems. 2018.
  2. Luo, Yonghong, et al. "E 2 GAN: end-to-end generative adversarial network for multivariate time series imputation."Proceedings of the 28th International Joint Conference on Artificial Intelligence. AAAI Press, 2019.

我的其他回答:

哪些 Python 库让你相见恨晚?

python如何画出漂亮的地图?

机器学习中的因果关系: 从辛普森悖论谈起

让我们跑一个最简单的GAN网络吧!(附Jupyter Notebook 代码)

欢迎大家关注我的机器学习笔记专栏,我争取用小白也能听懂的语言,为大家讲解机器学习中那些有趣好玩的知识 (*^▽^*)

机器学习笔记​zhuanlan.zhihu.com图标

 

编辑于 02-13      

标签:www,知乎,填充,插补,算法,时间,序列,com,缺失
来源: https://www.cnblogs.com/cx2016/p/13829586.html