交通流数据异常据修复方法--基于时间序列的修复--python语言的实现
【摘要】
文章目录
1、修复原理2、数据修复的代码3、数据修复前后的比较4、参考文献
1、修复原理
2、数据修复的代码
# -*- coding: UTF-8 -*-
"""
@Autho...
1、修复原理
2、数据修复的代码
# -*- coding: UTF-8 -*-
"""
@Author :远方的星
@Time : 2021/7/5 22:50
@CSDN :https://blog.csdn.net/qq_44921056
@腾讯云 : https://cloud.tencent.com/developer/column/91164
"""
import numpy as np
data = [1360, 1359, 1336, 1325, 1295, 1297, 1299, 1281, 1270, 1265, 1267, 0, 0, 0, 1248, 1260, 1256, 1249, 1263, 1228,
1221, 0, 0, 0, 1229, 1220, 1221, 1246, 1228, 1239]
# 得到数据长度
length = len(data)
# 定义一个空列表用于存放差值数据
difference = []
for i in range(length):
# 挑出为0的地方,即需要修复的数据
if data[i] == 0:
# 计算预测值之前所有值的和
sum_1 = 0
for j in range(i):
sum_1 += data[j]
# 求去平均值
average = sum_1/(i+1)
for k in range(i-1):
a = data[k+1] - data[k]
difference.append(a)
# 求得变化量
difference_average = np.mean(difference)
# 求得修复数据
data_fix = int(round(average + difference_average, 0))
# 使用修复数据替代原来的0值
data[i] = data_fix
print('第{}位数据已经修复,修复的结果为{}'.format(i+1, data_fix))
print('数据全部修复后的结果为:', data)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
3、数据修复前后的比较
在数据修复之前,可以使用拉依达准则
或者狄克逊准则
判断数据是否为异常数据。
为了方便表示,将异常数据表示为空数据。
- 修复前:
- 修复后:
4、参考文献
[1]王英会. 高速公路交通流异常数据识别及修复方法研究[D].北京交通大学,2015.
文章来源: luckystar.blog.csdn.net,作者:爱打瞌睡的CV君,版权归原作者所有,如需转载,请联系作者。
原文链接:luckystar.blog.csdn.net/article/details/118539972
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)