深度学习依赖历史特征数据。特征数据的质量通过频数分布图直观表现。
- 特征数据一般不能够直接进入神经网络,需要事前标准化处理。
- 标准化后的特征数据,虽然可以进入训练网络了,但是,如果数据太脏,会导致网络学习过程拉长、结构庞大、甚至崩溃。故需要在标准化化前,进行数据清洗。
- 数据清洗分为空间比较清洗、时间比较清洗。
- 空间比较清洗,使用knn,将梯度值很大的异常数据给清洗掉;
- 时间比较清洗,根据平稳时间序列思路,将相邻时间变化异常的数据给平滑掉。清洗前后的频数分布图,可以直观体验清洗前后的效果。
- 频数分布图,也对深度学习网络的clamp(min,max)层,提供剪裁依据。看看下边的图形就知道了。
- 仅仅空间、时间清洗是不够的,还需要同化分析。要素间的同化作用,可以弥补时间、空间残缺信息。让要素集合更加整齐。看看下边同化后的频数图,更光滑了。
import matplotlib.pyplot as plt
import netCDF4
import numpy as np
url="http://hxfcalf:8080/thredds/dodsC/data/calf/ft_std/2019/20191001/201910012300.nc"
f = netCDF4.Dataset(url)
sf_var = f.variables['sf']
sf = sf_var[:]
np_sf = np.array(sf).flat
plt.hist(np_sf, bins=500)
histg,bins = np.histogram(np_sf,bins=500)
plt.plot(.5 * (bins[1:] + bins[:-1]),histg)
plt.show()
![6ffeafaa36cc52850a507f829d5c2b40.png](https://i-blog.csdnimg.cn/blog_migrate/9073a4a52b810b85697af11b5f550cc5.jpeg)
![42abe8b9688473603ed55139c6c39ce4.png](https://i-blog.csdnimg.cn/blog_migrate/79c299b5aaab84ddd7bfe05c939452db.jpeg)
表明经过10分钟时间降噪处理后,所有特征都集中在[-5,5]区间,其中-4.6 是无降水。发现数据干净了许多(没有毛刺)。
![09656e15aab28f7be465de918bb271ea.png](https://i-blog.csdnimg.cn/blog_migrate/a75232475da803c73c559a3d0b24a004.jpeg)
上图为未经过降噪清洗的分布。
时间序列降噪处理前的频数图,由很多毛刺。意味着后续深度学习负担加重。
![c446e23bbef58b1a37a1ce4e6b01cf14.png](https://i-blog.csdnimg.cn/blog_migrate/509a9eff45cbbf7b1b320f0db2547a66.jpeg)
上图为标准化后的特征二维数据图
![6712db5ab2805ad3aec477d0636577a0.png](https://i-blog.csdnimg.cn/blog_migrate/69212eca33293238e58f7c73a94ba04a.jpeg)
看看202005010000z
![cefd2bf50983caab0208305bd1448322.png](https://i-blog.csdnimg.cn/blog_migrate/dc1a3d167418aeb7f030189aa0754ff9.jpeg)
也是比较好的哈(没有毛刺),请问读者,你知道clamp(min,max)中,min=?,max=?
进一步,经过降水,气压,气温,风,能见度,湿度同化处理后:
![aaed14e2786d69b874bd60b2f7d7d551.png](https://i-blog.csdnimg.cn/blog_migrate/f91a04eabb435709cf35da32e569fc5a.jpeg)
![305210dfc45170680ec94a8d39e88ed2.png](https://i-blog.csdnimg.cn/blog_migrate/0a7b3e756569c635e1819d473b5dfbae.jpeg)
数据打磨得更好看了!