深度学习依赖历史特征数据。特征数据的质量通过频数分布图直观表现。
- 特征数据一般不能够直接进入神经网络,需要事前标准化处理。
- 标准化后的特征数据,虽然可以进入训练网络了,但是,如果数据太脏,会导致网络学习过程拉长、结构庞大、甚至崩溃。故需要在标准化化前,进行数据清洗。
- 数据清洗分为空间比较清洗、时间比较清洗。
- 空间比较清洗,使用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(