时间序列预处理

article/2025/8/18 21:07:23

       数据预处理的主要流程为:数据清洗、特征选择、归一化处理、划分窗口、Shuffle和划分数据集等五个阶段。选用何种方法没有统一的标准,只能根据不同类型的分析数据和业务需求,在对数据特性做了充分的理解之后,再选择与其最适配的数据预处理技术。

时间序列预处理流程图(侵删)

下面来详细介绍每个阶段的处理

在这里插入图片描述

数据预处理流程图

数据预处理-平稳性检验

       一种是根据时序图和自相关图做出判断的图检验方法;一种是构造检验统计量进行假设检验的方法。 图检验操作简便,运用广泛,它的缺点是判别结论带有很强的主观色彩。所以最好能用统计检验的方法加以辅助判断。目前最常用的平稳性检验方法是单位根检验(unit root test)。
1.时序图检验
       根据平稳时间序列均值、方差Wie常数的性质,平稳时间序列的时序图应该是显示出该数列始终在一个常数值附近随机波动,而且波动的范围有界的特点。如下图中,图1为非平稳序列,图2为平稳序列。
在这里插入图片描述

图1:非平稳序列

在这里插入图片描述

图2:平稳序列

2.自相关图检验
       自相关图就是一个平面二维坐标垂线图,一个坐标轴表示延迟时期数,另一个坐标轴表示自相关系数,通过以垂线表示自相关系数的大小。
       平稳时间序列通常具有短期相关性,该性质使用自相关系数来描述就是随着延迟期数k的增加,平稳时间序列的自相关系数ρ会很快地衰减为0;反之,非平稳序列的自相关系数ρ衰减向0的速度通常会比较慢。

数据预处理-清洗转换

       当数据质量校验完成后,针对有问题的数据要进行的是数据清洗和转换,另外还包括对正常数据的转换。数据清洗的主要作用包括:纠正错误、删除重复项、统一规格、转换构造。

一、纠正错误

       错误数据是数据源环境中经常出现的一类问题。数据错误的形式包括:
       数据值错误: 数据直接是错误的,例如超过固定域集、超过极值、拼写错误、属性错误、源错误等。
数据类型错误: 数据的存储类型不符合实际情况,如日期类型的以数值型存储,时间戳存为字符串等。
       数据编码错误: 数据存储的编码错误,例如将UTF-8写成UTF-80。
       数据格式错误: 数据的存储格式问题,如半角全角字符、中英文字符等。
       数据异常错误: 如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期越界、数据前后有不可见字符等。
       依赖冲突: 某些数据字段间存储依赖关系,例如城市与邮政编码应该满足对应关系,但可能存在二者不匹配的问题。
       多值错误: 大多数情况下,每个字段存储的是单个值,但也存在一个字段存储多个值的情况,其中有些可能是不符合实际业务规则的。这类错误产生的原因是业务系统不够健全,尤其是在数据产生之初的校验和入库规则不规范,导致在接收输入后没有进行判断或无法检测而直接写入后台数据库造成的。
       具体示例:
       1.处理非等间隔
       处理非等间隔时间序列的方法有两类,一类是内插法,最常用的是线性内插法。然而内插法往往会带来显著的且不易量化的偏差,因为分析拟合误差时往往不能区分哪些是模型本身带来的误差,哪些是由于内插带来的误差。另一类是直接对数据建模,例如可以把处理等间隔时间序列方法通过某种变换再应用之,或者直接考虑新的适用于非等间隔序列的模型。
       2.处理缺失值
       常见的方法有两种,一种是直接丢弃含缺失数据的记录;另一种是用新值替代缺失数据。实际中,后者的处理方式更常用,因为前者对数据分析而言是很大的浪费。用新值替代缺失值的常见方法有如下几种:
       1)替代法: 可考虑用该序列中已观测序列值的均值替代;或最近邻域替代法,即设t时刻的序列值缺失,而已观测到t-1时刻的序列值 x t − 1 x_{t-1} xt1,则寻找整个序列中与 x t − 1 x_{t-1} xt1最接近的观测值x且其后一时刻 x s + 1 x_{s+1} xs+1非缺失,则可用 x s + 1 x_{s+1} xs+1替代t时刻的序列值。
       2)内插法: 线性内插法,即根据两个时刻的观测值内插得到这两个时刻之间的时刻的序贯估计值。例如,设某一天的温度序列中,一点钟的气温为20℃,三点钟时为14℃,可以用线性内插法推测一点半及两点钟时的气温分别是18。5℃及17℃;K-最近距离法,即根据欧式距离或相关分析选取离缺失值最近的K个已观测序列值,将这K个值按照距离长度加权平均来估计该样本的缺失数据。
       3)统计模型: 即通过一些建模方法获得缺失处的预测值,常见的有样条法和回归模型法。样条法是通过对已观测序列值建立样条模型,如三阶样条、光滑样条等,从而预测出缺失值。回归模型包括一元线性回归和多元线性回归,即根据观测序列,构造出回归模型所需的自变量和因变量,从而得到自变量与因变量之间的关系,并得到缺失处的预测值。
       4)多重插补: 其思想来源于贝叶斯估计,认为待插补的值是随机的。实际中,通常先估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值;对每个插补数据集合,都用针对完整数据集的统计方法进行统计分析,从而得到不同的结果;并根据评分函数进行选择,产生最终的插补值。
       以上四种插补方法,均值替代法是最容易实现的,也是以前人们经常使用的,但是它对样本存在极大的干扰,尤其是当插补后的值作为解释变量进行回归时,参数的估计值与真实值的偏差很大。实践证明,线性内插法等直观方法所产生的结果也并不理想。回归模型往往效果不错,即用已有数据作为训练样本来建立预测模型,预测缺失数据。该方法最大限度地利用已知的相关数据,是比较流行的缺失数据处理技术。此外,多重插补法综合比较其他各种处理方法,并得到在某种评分准则下最优的处理方法,故应用较多。
       除了上述处理方法之外,还有基于EM算法的替代模型,最大似然估计,外推法如增长量推算法、发展速度推算法、比例推算法等方法。
       3.处理离群点
       离群点(Outlier)是指一个时间序列中,远离序列一般水平的极端大值和极端小值。
       离群点可分为四种类型:
       1)加性离群点: 该干扰只影响发生的那一个时刻t时的序列值而不影响该时刻以后的序列值;
       2)更新离群点: 造成离群点的干扰不仅作用于Xt,且影响t时刻以后序列的所有观测值;
       3)水平移位离群点: 造成这种离群点的干扰是在某一时刻t系统的结构发生了变化,并持续影响t时刻以后的所有观测值,在数列上往往表现出t时刻前后的序列均值发生水平位移;
       4)暂时变更离群点: 造成这种离群点的干扰是在t时刻干扰发生时具有一定初始效应,以后随时间根据衰减因子的大小呈指数衰减。

离群点常见的检测方法

       1.将序列值与平滑值(时间序列的平滑方法可百度/谷歌自查)进行比较,根据差异,结合相应的评价准则检验其是否显著大(或小)。这种方法比较简单,但对于判断离群点的类型存在着不足。
       2.干预分析法,其思想是,首先根据数据建立模型,利用拟合模型的残差序列计算特定的统计量,测出显著的离群点及其类型,并用所建立的模型对离群点进行修正,然后用修正后的时间序列再建立模型,重复上面的工作方法。
       3.检测序列值与其相应的时间序列平滑估计值的绝对离差是否大于某预先设定的值。

离群点处理方法

       若是离群点正是我们所关心的信息,直接提取出来并加以分析;若离群点不是我们所希望见到的,可以考虑把离群点光滑化,即用某些值替代离群点,然后再对处理后的时间序列进行分析。

二、 删除重复项

       由于各种原因,数据中可能存在重复记录或重复字段(列),对于这些重复项目(行和列)需要做去重处理。
对于重复项的判断,基本思想是“排序和合并”,先将数据库中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。
       常见的排序算法:插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序、基数排序、希尔排序。
       常见的判断相似度的算法:基本的字段匹配算法标准化欧氏距离、汉明距离、夹角余弦、杰卡德距离、马氏距离、曼哈顿距离、闵可夫斯基距离、欧氏距离、切比雪夫距离、相关系数、信息熵。
       对于重复的数据项,尽量需要经过业务确认并进行整理提取出规则。在清洗转换阶段,对于重复数据项尽量不要轻易做出删除决策,尤其不能将重要的或有业务意义的数据过滤掉,校验和重复确认的工作必不可少。

三、统一规格

       由于数据源系统分散在各个业务线,不同业务线对于数据的要求、理解和规格不同,导致对于同一数据对象描述规格完全不同,因此在清洗过程中需要统一数据规格并将一致性的内容抽象出来。
       数据字段的规则大致可以从以下几个方面进行统一:
       名称: 对于同一个数据对象的名称首先应该是一致的。例如对于访问深度这个字段,可能的名称包括访问深度、人均页面浏览量、每访问PV数。
       类型: 同一个数据对象的数据类型必须统一,且表示方法一致。例如普通日期的类型和时间戳的类型需要区分。
       单位: 对于数值型字段,单位需要统一。例如万、十万、百万等单位度量。
       格式: 在同一类型下,不同的表示格式也会产生差异。例如日期中的长日期、短日期、英文、中文、年月日制式和缩写等格式均不一样。
       长度: 同一字段长度必须一致。
       小数位数: 小数位数对于数值型字段尤为重要,尤其当数据量累积较大时会因为位数的不同而产生巨大偏差。
       计数方法: 对于数值型等的千分位、科学计数法等的计数方法的统一。
       缩写规则: 对于常用字段的缩写,例如单位、姓名、日期、月份等的统一。例如将周一表示为Monday还是Mon还是M。
值域:对于离散型和连续型的变量都应该根据业务规则进行统一的值域约束。
       约束: 是否允许控制、唯一性、外键约束、主键等的统一。
       统一数据规格的过程中,需要注意的一点是确认不同业务线带来数据的规格一致性,这需要业务部门的参与、讨论和确认,以明确不同体系数据的统一标准。

四、转换构造

       数据变换是数据清理过程的重要步骤,是对数据的一个的标准的处理,几乎所有的数据处理过程都会涉及该步骤。数据转换常见的内容包括:数据类型转换、数据语义转换、数据值域转换、数据粒度转换、表/数据拆分、行列转换、数据离散化、提炼新字段、属性构造、数据压缩等。
       1.数据类型转换
当数据来自不同数据源时,不同类型的数据源数据类型不兼容可能导致系统报错。这时需要将不同数据源的数据类型进行统一转换为一种兼容的数据类型。
       2.数据语义转换
传统数据仓库中基于第三范式可能存在维度表、事实表等,此时在事实表中会有很多字段需要结合维度表才能进行语义上的解析。例如,假如字段M的业务含义是浏览器类型,其取值分为是1/2/3/4/5,这5个数字如果不加转换则很难理解为业务语言,更无法在后期被解读和应用。
       3.数据粒度转换
业务系统一般存储的是明细数据,有些系统甚至存储的是基于时间戳的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库中不同的粒度需求进行聚合。
       4.表/数据拆分
某些字段可能存储多中数据信息,例如时间戳中包含了年、月、日、小时、分、秒等信息,有些规则中需要将其中部分或者全部时间属性进行拆分,以此来满足多粒度下的数据聚合需求。同样的,一个表内的多个字段,也可能存在表字段拆分的情况。
       5.行列转换
某些情况下,表内的行列数据会需要进行转换(又称为转置),例如协同过滤的计算之前,user和term之间的关系即互为行列并且可相互转换,可用来满足基于项目和基于用户的相似度推荐计算。
       6.数据离散化
将连续取值的属性离散化成若干区间,来帮助消减一个连续属性的取值个数。例如对于收入这个字段,为了便于做统计,根据业务经验可能分为几个不同的区间:0~3000、3001~5000、5001~10000、10001~30000、大于30000,或者在此基础上分别用1、2、3、4、5来表示。
       7.数据标准化
不同字段间由于字段本身的业务含义不同,有些时间需要消除变量之间不同数量级造成的数值之间的悬殊差异。例如将销售额进行离散化处理,以消除不同销售额之间由于量级关系导致的无法进行多列的复合计算。数据标准化过程还可以用来解决个别数值较高的属性对聚类结果的影响。
       8.提炼新字段
很多情况下,需要基于业务规则提取新的字段,这些字段也称为复合字段。这些字段通常都是基于单一字段产生,但需要进行复合运算甚至复杂算法模型才能得到新的指标。
       9.属性构造
有些建模过程中,也会需要根据已有的属性集构造新的属性。例如,几乎所有的机器学习都会讲样本分为训练集、测试集、验证集三类,那么数据集的分类(或者叫分区)就属于需要新构建的属性,用户做机器学习不同阶段的样本使用。

数据预处理-特征选择

一、基于Filter的

       1.方差选择法  
       使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。
       2.相关系数法  
       使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值。
       3.卡方检验  
       经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:
在这里插入图片描述
       不难发现,这个统计量的含义简而言之就是自变量对因变量的相关性。
       4.互信息法  
       经典的互信息也是评价定性自变量对定性因变量的相关性的,互信息计算公式如下:
在这里插入图片描述

二、基于Wrapper的

       递归特征消除法  
       递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。

三、基于Embedded的

       基于惩罚项的特征选择法  
       使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。如LASSO:Least Absolute Shrinkage and Selection Operator 最小绝对收缩和选择算子。
       基于树模型的特征选择法  
       树模型中的GBDT也可用来作为基模型进行特征选择。

数据预处理-降维

       主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。

数据预处理-归一化处理

       数据归一化是对所有维度的数据进行数值上缩放到统一的固定区间,不同维度上的数据具有不同范围的数据将会导致模型收敛很慢甚至很难收敛。常用归一化方法主要为 Min-Max 和 Z-score。
       Min-Max 也被称为离差标准化,是对原有数据的线性变换,使得数据被缩放至[0,1]区间,其变换公式为: x ^ = x − x min ⁡ x max ⁡ − x min ⁡ \widehat{x}=\dfrac{x-x_{\min }}{x_{\max }-x_{\min }} x =xmaxxminxxmin
       Z-score 则利用原始数据的均值和方差进行放缩: x ^ = x − μ σ \widehat{x}=\dfrac{x-\mu }{\sigma } x =σxμ,归一化后的数据将符合标准正态分布,同时消除数据量纲对建模的影响。

数据预处理-划分窗口

       划分窗口是将数据集按照时间步长进行划分,同时也意味着模型根据一个窗口长度的历史数据信息进行预测。

数据预处理-Shuffle与数据集划分

       Shuffle 阶段是打乱上一步骤划分滑动窗口的输出序列,而数据集化分则将原始数据集大小按照 10%,10%,20%进行划分,其中训练集数据量占原始数据的 80%,验证集占10%用于调整模型参数,最后测试集占10%用于评估模型性能。


学识浅薄,欢迎指正补充。


http://chatgpt.dhexx.cn/article/byTqyXxn.shtml

相关文章

时间序列分析相关概念

1. 在时间序列分析中, 数学模型是什么?数学公式又是什么?数学推导过程又是什么?… … 一句话:用数学公式后者符号来表示现实存在的意义。数学是“万金油”的科学,它是作为工作和分析方法运用到某个学科当中…

时间序列预测方法总结

前言 对时间序列数据预测模型做个简单的分类,方便日后对其进一步研究,理清楚技术更新发展方向。 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。 预测场景 单步预测 单步单变量预测 :在时间序…

时间序列的聚类方法

时间序列的聚类方法 时间序列是按照时间排序的一组随机变量,它通常是在相等间隔的时间段内,依照给定的采样率,对某种潜在过程进行观测的结果。 时间序列数据是实值型的序列数据,具有数据量大、数据维度高以及数据是不断更新的等…

【时间序列预测】Autoformer 长时间序列预测

论文链接:http://xxx.itp.ac.cn/pdf/2106.13008.pdf Abstract 延长预测时间是极端天气预警和长期能源消耗规划等实际应用的关键需求。本文研究时间序列的长期预测问题。先前的基于 Transformer 的模型采用各种 self-attention 机制来发现长期依赖关系。然而&…

时间序列分析预测

全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 时间序列中常用预测技术,一个时间序列是一组对于某一变量连续时间点或连续时段上的观测值。参考:https://blog.csdn.net/u010414589/article/details/49622625…

时间序列预测

问题简介 简单来说,时间序列是按照时间顺序,按照一定的时间间隔取得的一系列观测值,比如我们上边提到的国内生产总值,消费者物价指数,利率,汇率,股票价格等等。时间间隔可以是日,周…

时间序列分析

http://blog.csdn.net/pipisorry/article/details/62053938 时间序列简介 时间序列是时间间隔不变的情况下收集的时间点集合。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。但是什么时间序列?与常见的回归问题的不同&…

时间序列模型调查

RNN 模型 Recurrent Neural Network (回流神经网络,有的译做递归神经网络) 时间序列模型最常用最强大的的工具就是递归神经网络(recurrent neural network, RNN)。相比与普通神经网络的各计算结果之间相互独立的特点,RNN的每一次隐含层的计算结果都与当前输入以及上一次的…

时间序列模型

1. 时间序列分析方法概述 一个时间序列往往是一下几类变化形式的叠加或耦合。 (1)长期趋势变动:反映主要变化趋势; (2)季节变动 (3)循环变动 (4)不规则变动 使…

python创建时间序列_python 时间序列

将dataframe的列转化为时间序列 #https://www.cnblogs.com/bolgbjg/p/14013300.html #datetime.now()获取现在的时间,now.year,获取现在的年份,其他以此类推 #timedelta()表示两个datetime之间的时间差,默认单位是天 strftime()参数, strftim…

时间序列(数据分析)

目录 第11章 时间序列 11.1 日期和时间数据的类型及工具 11.1.1 字符串与datetime互相转换 11.2 时间序列基础 11.2.1 索引、选择、子集 11.2.2 含有重复索引的时间序列 11.3 日期范围、频率和移位 11.3.1 生成日期范围 11.3.2 频率和日期偏置 11.3.3 移位&#xff0…

时间序列介绍

什么是时间序列? 时间序列是按照一定时间顺序,按照一定的时间间隔取得的一系列观测值。 怎样做时间序列分析? 时间序列分析尝试找出序列值在过去所呈现的特征模式,假定这种模式在未来能够持续,进而对未来进行预测 时…

时间序列

时间序列 一、时间序列是什么?二、时间序列分类1.白噪声序列2.平稳非白噪声序列3.非平稳序列 三. 时间序列主要模型1. ARIMA如何挑选模型参数:Example and application: 总结 一、时间序列是什么? 时间序列是指某种现象某一指标在不同时间上…

经典时间序列的学习(一)简单的认识时间序列

1. 什么是时间序列 同一统计指标数值按照时间先后顺序排列而成的数据。本质上是反映一个变量随时间序列变化的趋势。 简单的例子就像是学生每一年的身高数据,这个也是一个时间序列。变量是我们的身高;每一年都不一样。我们支付宝或者微信的零钱,每一天…

【时间序列】时间序列基本概念总结

最近一直在接触时间序列,所以打算写一些有关时间序列的文章,预测部分会从规则开始、到传统模型、到机器学习、再到深度学习,此外也会介绍一些时间序列的基本概念,包括自相关、平稳性、滞后性、季节性等。 1.基本概念 1.1 时间序列…

备战数学建模35-时间序列预测模型

目录 一、时间序列概念与分解模型 1-时间序列数据与基本概念 2-时间序列分解 二、SPSS中七种指数平滑模型 1-七种指数平滑模型简介 2-七种指数平滑模型具体分析 三、ARIMA模型相关的知识点 四、时间序列模型经典案例 1-时间序列建模思路介绍 2-案例1销售数据预测 3-…

【时间序列】最完整的时间序列分析和预测(含实例及代码)

时间序列 在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻所得到的离散数字组成的序列集合,称之为时间序列。 pandas生成时间序列过滤数据重采样插值滑窗数据平稳性与差分法 pandas生成时间序列 时间戳(ti…

UCF 2021 Qualifying - H . Time to Eat + UCF HSPT 2020 - E . Use Giant Fans to Deal With Hurricanes?

题目: H . Time to Eat [ 问题 8933 ] [ 讨论 ] Description The UCF Programming Team has made it to the World Contest Finals (WF), thanks to the great team members and coaches. Fortunately for Dr. Orooji (Team Faculty Advisor), WF is in a city wit…

MTU

MTU 是出接口方向的MTU值,跟入接口方向无关。 MTU 是双方向的,也就是说两个方向的数据流可以有不同的MTU值。 在实施中遇到这么个问题: 用户在BigIP的VLAN设置中修改了MTU值,并保存。但系统重启后,这个值又恢复为原来的默认值了。 有兄弟遇到过么?望指点一二。 [ 本帖最…

Mahout学习

Mahout学习 Mahout学习(主要学习内容是Mahout中推荐部分的ItemCF、UserCF、Hadoop集群部署运行) 1、Mahout是什么? Mahout是一个算法库,集成了很多算法。 Apache Mahout 是 Apache Software Foundation(ASF)旗下的…