ssa数据降噪算法简易实例

2018-11-30  本文已影响0人  CHENpq

原始数据是[1 9 2 8 3 7]

嵌入:

比如选择的窗口长度L为3,得到的矩阵就是:

[1 9 2]

[9 2 8]

[2 8 3]

[8 3 7]

SVD分解:

Python里自带一个函数进行分解,就不用它参考文献上写的啥X乘X的转置了,函数是这个:

u, s, v = np.linalg.svd(嵌入得到的矩阵)

得到的三个结果是这样的

u是个形状为(4, 4)的矩阵,为啥是4我不知道

[-0.34748861 -0.67722177  0.41306458 -0.5      ]

[-0.62332023  0.4373678  -0.41253036 -0.5      ]

[-0.38669102 -0.52074809 -0.57383924  0.5      ]

[-0.58411781  0.28089413  0.57437346  0.5      ]

s是,形状为(3,) 

[18.29004176  9.97102473  0.23030046]

奇艺谱就是s里取最大值,这里为 18.29004175999194

v是,形状是(3, 3)

[-0.62349202 -0.50409505 -0.59761683]

[ 0.44777196 -0.85683898  0.25559193]

[ 0.64090402  0.10823653 -0.7599519 ]

重构:

重构矩阵的计算方法是 newMatrix = value * u1 * v1

value就是奇艺谱,SVD分解里得到的s里的最大值,上面也提了一下,这里value是: 18.29004175999194

u1是在u的基础上,取第一行,为

[-0.34748861 -0.62332023 -0.38669102 -0.58411781]

v1是在u的基础上,取第一行,为

[-0.62349202 -0.50409505 -0.59761683]

计算时需要对u1进行转置,转置后的u1是:

[-0.34748861]

[-0.62332023]

[-0.38669102]

[-0.58411781]

重构完的矩阵就是:

[3.96265415 3.203817  3.79820225]

[7.10815385 5.74696232 6.81316231]

[4.40970654 3.56526011 4.22670177]

[6.66110146 5.38551921 6.3846628 ]

最后把重构完的矩阵再转变为一维数组:

设这个一维数组叫ret[],对于重构完的矩阵,对每一条次对角线进行计算,并把结果添加到ret[]里

利用两个动态的变量,这里分别叫sigma和alpha,sigma是每条次对角线的数据的和,alpha是次对角线长度

ret.append(sigma/alpha)

就相当于添加了每条次对角线的平均值。

过程大概是这样的:

pos is( 0 , 0 ) sigma+

alpha is 1 now

ret[] append

pos is( 1 , 0 ) sigma+,

pos is( 0 , 1 ) sigma+

alpha is 2 now

ret[] append

pos is( 2 , 0 ) sigma+

pos is( 1 , 1 ) sigma+

pos is( 0 , 2 ) sigma+

alpha is 3 now

ret[] append

pos is( 3 , 0 ) sigma+

pos is( 2 , 1 ) sigma+

pos is( 1 , 2 ) sigma+

alpha is 3 now

ret[] append

pos is( 3 , 1 ) sigma+

pos is( 2 , 2 ) sigma+

alpha is 2 now

ret[] append

pos is( 3 , 2 ) sigma+

alpha is 1 now

ret[] append

处理后的数据ret[]为:

[3.9626541544632476 5.155985423726059 4.651623704998423 5.67984129396347 4.806110489242382 6.384662797164128]

就是最终结果

备注:

因为窗口长度L的选择不宜超过数据长度的1/3,这里数据长度是6,L为了为了算着方便选的3,所以这个例子的效果不好,但是领会精神。

做为参考的话,处理数据的时候,数据长度是300+,L选的4。

源码访问:https://git.twtstudio.com/chenpeiqi/ssa/tree/master

参考文献https://www.ixueshu.com/document/8447b1aaa13538a2318947a18e7f9386.html

上一篇 下一篇

猜你喜欢

热点阅读