Python环境基于Savitzky-Golay滤波和Transformer的水质预测模型
���质预测是根据历史水质数据,建立水质预测模型,预测未来一段时间内水质数据的变化趋势。水质预测作为水资源保护中的一项基础性工作,是将水污染由事后治理转变为事前预防的重要手段。在水污染防治中,水质预测能为水污染防治方案的制定提供依据。水质预测的准确度越高,对水污染防治的作用就越大。因此,为了制定科学、有效的水污染防治方案,提高水质预测的准确度显得尤为重要。
水质数据作为一种特殊的时间序列,具有时序性、差异性、混沌性等复杂特性。水质数据的时序性是指水质数据的变化具有一定时间相关性。水质数据的差异性是指水质数据在不同时刻所包含信息的重要程度存在差异。水质数据的混沌性是指水质数据在水环境系统中表现出一种类似混乱的、随机的状态。如果不能充分考虑这些特性对预测结果的影响,将不利于提高水质预测的准确度。因此,充分利用水质数据的时序性和差异性,并克服水质数据的混沌性带来的不利影响,对提高水质预测的准确度具有重要的研究意义。
传统的预测模型如自回归平均模型、灰色模型、支持向量机模型等无法准确地刻画水质数据的复杂特性。随着研究人员对水质预测的深入研究,发现神经网络、混合模型等新型预测模型具有良好的非线性映射能力,能够较好地处理水质数据的复杂特性。
因此,为了充分考虑水质数据的时序性、差异性、混沌性等复杂特性,提高水质预测的准确度,提出一种基于Savitzky-Golay滤波和Transformer网络的multi-step水质预测模型,程序运行环境为Python,采用Spyder IDE,所用模块如下:
from math import sqrt from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score from prepare_data_External_input import get_dataloader from Network import * from sklearn.preprocessing import MinMaxScaler import pandas as pd import numpy as np from uti import plot_curve import scipy.signal as sg
部分代码如下:
# 1.参数设置 #hyperparams enc_seq_len = 6 dec_seq_len = 1 output_sequence_length = 1 dim_val = 10 dim_attn = 5 lr = 0.0005 epochs = 61 n_heads = 5 n_decoder_layers = 3 n_encoder_layers = 3 batch_size = 15 scaler_DO = MinMaxScaler(feature_range=(0, 1)) #init network and optimizer # 2.模型初始化 t = Transformer(dim_val, dim_attn, 1,dec_seq_len, output_sequence_length, n_decoder_layers, n_encoder_layers, n_heads) optimizer = torch.optim.Adam(t.parameters(), lr=lr) # 3.数据集准备 dataset = pd.read_csv('data/fuhe.csv', header=0, index_col=0, parse_dates=True) df = pd.DataFrame(dataset) # 整体数据的全部字典类型 do = df['溶解氧(mg/L)'] # 返回溶解氧那一列,用字典的方式 DO = [] for i in range(0, len(do)): DO.append([do[i]]) sg = sg.savgol_filter(do, 5, 2) scaler_DO = MinMaxScaler(feature_range=(0, 1)) DO_sg = scaler_DO.fit_transform(np.array(sg).reshape(-1,1)) DO_train = DO_sg[0:8800]
出图如下:
流程图如下:
完整代码:Python环境基于Savitzky-Golay滤波和Transformer的水质预测模型
工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。
擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。