时间序列间距离的影响因素
文章目录
时间序列间距离的影响因素
时间序列的相似性度量是衡量两个序列的相似程度的方法。两个序列是否相似,主要看他们的变化趋势是否一致。由于时间序列数据的复杂性特点,实际上不可能存在两条完全相同的时间序列,即使相似的时间序列往往也会呈现出各种各样的变化。
影响时间序列间距离的因素主要有6种,假设原始时间序列如下图所示:
原始数据的表达式为:
y
=
c
o
s
(
x
)
+
1
,
x
∈
(
0
,
4
π
)
y=cos(x)+1,x\in(0,4\pi)
y=cos(x)+1,x∈(0,4π)
1、噪声
图像表示
现实的大多数时间序列数据都存在噪声,体现在图像上是指数据曲线的不光滑。
原始时间序列添加噪声以后的图像为:
表达式为:
y
=
c
o
s
(
x
)
+
1
+
n
o
i
s
e
,
x
∈
(
0
,
4
π
)
y=cos(x)+1+noise,x\in(0,4\pi)
y=cos(x)+1+noise,x∈(0,4π)
其中noise为噪声,生成方式为:
noise = np.random.normal(0, 0.08, 2000)
简介
噪声数据(Noisy Data)就是无意义的数据,这个词通常作为损坏数据的同义词使用。但是,现阶段的意义已经扩展到包含所有难以被机器正确理解和翻译的数据,如非结构化文本。任何不可被源程序读取和运用的数据,不管是已经接收、存贮的还是改变的,都被称为噪声。
引起噪声数据的原因
数据噪声来源于数据的采集过程中,引起噪声数据的原因可能是硬件故障、编程错误、语音或光学字符识别程序识别出错等。例如:手机信号来自于基站发射的电磁波,有的地方比较强,有的地方比较弱。运营商的工程师会负责统计不同区域信号强弱来进行网络规划,工程师采集信号的方法就是将一个信号接受终端固定到车上,然后开车绕着基站转,信号终端就会自动采集不同区域的信号强度,生成一份数据。但是如果车在采集过程中遇到了突发事件、急刹车,就可能会对信号采集造成一定的影响,生成噪声数据。
噪声数据的影响
噪声数据未必增加存储空间量,它可能会影响对数据分析的结果。很多算法,特别是线性算法,都是通过迭代来获取最优解的,如果数据中含有大量的噪声数据,将会大大的影响数据的收敛速度,甚至对于训练生成模型的准确也会有很大的副作用。
噪声数据处理方法
回归
如果变量之间存在依赖关系,即y=f(x)
,那么我们可以设法求出依赖关系f
,从而根据x来预测y,这也是回归问题的实质。实际中更常见的假设是P(y)=N(f(x))
,N
是正态分布。假设y
是观测值且存在噪声,如果我们能求出x
和y
之间的依赖关系,从而根据x
来更新y
的值,就可以去除其中的随机噪声,这就是回归去噪的原理
异常值检测
数据中的噪声可能有两种,一种是随机误差,另外一种可能是错误,比如我们手上有一份顾客的身高数据,其中某一位顾客的身高纪录是20m,很明显,这是一个错误,如果这个样本进入了我们训练数据可能会对结果产生很大影响,这也是去噪中使用异常值检测的意义所在。
分箱方法是一种简单常用的预处理方法,通过考察相邻数据来确定最终值。所谓“分箱”,实际上就是按照属性值划分的子区间,如果一个属性值处于某个子区间范围内,就称把该属性值放进这个子区间所代表的“箱子”内。把待处理的数据(某列属性值)按照一定的规则放进一些箱子中,考察每一个箱子中的数据,采用某种方法分别对各个箱子中的数据进行处理。在采用分箱技术时,需要确定的两个主要问题就是:如何分箱以及如何对每个箱子中的数据进行平滑处理。
2、振幅平移
图像表示
即两条形态相似的时间序列分别绕高低不同的均值波动。
表达式为:
y
=
c
o
s
(
x
)
+
1.5
,
x
∈
(
0
,
4
π
)
y=cos(x)+1.5,x\in(0,4\pi)
y=cos(x)+1.5,x∈(0,4π)
引起振幅平移的原因
将振幅平移表达式进行变换并与加入噪声的表达式对比:
{
y
=
c
o
s
(
x
)
+
1
+
0.5
,
x
∈
(
0
,
4
π
)
y
=
c
o
s
(
x
)
+
1
+
n
o
i
s
e
,
x
∈
(
0
,
4
π
)
\begin{cases} y=cos(x)+1+0.5,x\in(0,4\pi)\\ y=cos(x)+1+noise,x\in(0,4\pi) \end{cases}
{y=cos(x)+1+0.5,x∈(0,4π)y=cos(x)+1+noise,x∈(0,4π)
可以看出振幅平移只是在原始数据的基础上加入了一个为常数的噪声。
振幅平移在聚类上的应用
时间序列度量就是对时间序列相似性的探究,对相似性的定义可以分为两个方面,一方面为距离近,另一方面为形状相似。
如图所示,很明显如果按照距离作为相似性度量指标,那么蓝色序列和绿色序列更为相似,但是如果以形状作为度量指标,则蓝色序列和红色序列更为相似。
假设现在又若干条时间序列,需要以其形状相似性作为聚类的度量指标,那么就需要对序列做振幅平移处理,结果如图:
现在很容易就可以看出在以形状作为度量指标的情况下,红色序列和蓝色序列更为相似。
数据的处理方法为:取各个序列的均值,将其以均值序列为基准进行振幅平移调整。黑色虚线为均值序列。
3、振幅伸缩
图像表示
即两条时间序列的变化趋势相同,但其中一条时间序列在纵轴上似乎被拉伸或者压缩过一样,即两个序列的振幅不同。
表达式为:
y
=
1.5
∗
c
o
s
(
x
)
+
1
,
x
∈
(
0
,
4
π
)
y=1.5*cos(x)+1,x\in(0,4\pi)
y=1.5∗cos(x)+1,x∈(0,4π)
振幅伸缩的应用
可以用于处理两条形状极为相似的序列
{
y
=
c
o
s
(
x
)
+
1
+
n
o
i
c
e
,
x
∈
(
0
,
2
π
)
y
=
c
o
s
(
x
)
+
1
+
n
o
i
s
e
,
x
∈
(
0
,
2
π
)
n
o
i
c
e
∈
(
0
,
0.01
)
\begin{cases} y=cos(x)+1+noice,x\in(0,2\pi)\\ y=cos(x)+1+noise,x\in(0,2\pi)\\ \end{cases} noice\in(0,0.01)
{y=cos(x)+1+noice,x∈(0,2π)y=cos(x)+1+noise,x∈(0,2π)noice∈(0,0.01)
表达式所示的函数图像为:
在处理数据时对表达式进行振幅伸缩变换:
{
y
=
0.1
∗
c
o
s
(
x
)
+
1
+
n
o
i
c
e
,
x
∈
(
0
,
2
π
)
y
=
0.1
∗
c
o
s
(
x
)
+
1
+
n
o
i
s
e
,
x
∈
(
0
,
2
π
)
n
o
i
c
e
∈
(
0
,
0.01
)
{
y
=
0.01
∗
c
o
s
(
x
)
+
1
+
n
o
i
c
e
,
x
∈
(
0
,
2
π
)
y
=
0.01
∗
c
o
s
(
x
)
+
1
+
n
o
i
s
e
,
x
∈
(
0
,
2
π
)
n
o
i
c
e
∈
(
0
,
0.01
)
\begin{cases} y=0.1*cos(x)+1+noice,x\in(0,2\pi)\\ y=0.1*cos(x)+1+noise,x\in(0,2\pi)\\ \end{cases} noice\in(0,0.01) \\ \begin{cases} y=0.01*cos(x)+1+noice,x\in(0,2\pi)\\ y=0.01*cos(x)+1+noise,x\in(0,2\pi)\\ \end{cases} noice\in(0,0.01)
{y=0.1∗cos(x)+1+noice,x∈(0,2π)y=0.1∗cos(x)+1+noise,x∈(0,2π)noice∈(0,0.01){y=0.01∗cos(x)+1+noice,x∈(0,2π)y=0.01∗cos(x)+1+noise,x∈(0,2π)noice∈(0,0.01)
可以看到,在进行不同比例的振幅伸缩以后数据的特征会更为明显。在处理两条形状极为相似的序列,可以对序列进行伸缩变换,这样可以让序列间的差异更为明显,以免在进行处理过程中因为计算精度问题造成对序列处理结构产生影响。
4、时间轴伸缩
图像表示
是指两条时间序列的波形相似,但其中一条时间序列在时间轴上按比例伸缩。
表达式为:
y
=
c
o
s
(
2
∗
x
)
+
1
,
x
∈
(
0
,
4
π
)
y=cos(2*x)+1,x\in(0,4\pi)
y=cos(2∗x)+1,x∈(0,4π)
时间轴伸缩的作用
在对高维时序数据进行分析时,往往会先对数据进行降维处理,时间轴伸缩可以作为一种数据降维的方法。
将一段时间内的数据利用其均值代替,使用时间轴伸缩的的方法,将一组数据转换成一个数据点。这种方法在很多时序数据库的图形化界面中有应用。体现在图象数可以使数据图像更加光滑,更容易判断数据的趋势。
5、线性漂移
图像表示
是指两条时间序列的波动节奏相似,但其中一条时间序列呈现线性递增或递减趋势。
表达式为:
y
=
c
o
s
(
x
)
+
1
+
b
i
a
s
,
x
∈
(
0
,
4
π
)
y=cos(x)+1+bias,x\in(0,4\pi)
y=cos(x)+1+bias,x∈(0,4π)
其中bias为偏置:
bias = np.arange(0, 1, 1/2000)
6、不连续(数据丢失)
图像表示
是指两条时间序列整体的波动趋势相同,只是在别的时间点或段出现间断。
数据丢失的产生
数据丢失情况的产生主要有三种,
如上图所示,这两种情况会产生坏的数据,对数据分析的结果造成较大的影响。第一种为在数据采集过程中,突然的机器故障或者断电导致数据丢失,随时间的推移设备继续正常工作产生的数据丢失;第二种情况为,假设采集一个电路中的电流,因为某种原因电阻短路,导致采集到的电流数据出现断崖式上升或下降。
第三种情况为连续数据中数据点的缺失,一般可以通过人工填写、特殊值填充、平均值填充等方法进行补全,不会对数据分析结果造成很大的影响。
数据丢失的处理
- 人工填写:由于最了解数据的还是用户自己,因此这个方法产生数据偏离最小,可能是填充效果最好的一种。然而一般来说,该方法很费时,当数据规模很大、空值很多的时候,该方法是不可行的。
- 特殊值填充:将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值。如所有的空值都用“unknown”填充。这样将形成另一个有趣的概念,可能导致严重的数据偏离,一般不推荐使用。
- 平均值填充:将信息表中的属性分为数值属性和非数值属性来分别进行处理。如果空值是数值型的,就根据该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,就根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值(即出现频率最高的值)来补齐该缺失的属性值。另外有一种与其相似的方法叫条件平均值填充法。在该方法中,缺失属性值的补齐同样是靠该属性在其他对象中的取值求平均得到,但不同的是用于求平均的值并不是从信息表所有对象中取,而是从与该对象具有相同决策属性值的对象中取得。这两种数据的补齐方法,其基本的出发点都是一样的,以最大概率可能的取值来补充缺失的属性值,只是在具体方法上有一点不同。与其他方法相比,它是用现存数据的多数信息来推测缺失值。
- 热卡填充:对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。该方法概念上很简单,且利用了数据间的关系来进行空值估计。这个方法的缺点在于难以定义相似标准,主观因素较多。
- K近邻法填充:先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。同均值插补的方法都属于单值插补,不同的是,它用层次聚类模型预测缺失变量的类型,再以该类型的均值插补。假设X=(X1,X2…Xp)为信息完全的变量,Y为存在缺失值的变量,那么首先对X或其子集行聚类,然后按缺失个案所属类来插补不同类的均值。如果在以后统计分析中还需以引入的解释变量和Y做分析,那么这种插补方法将在模型中引入自相关,给分析造成障碍。