3.12学习周报

本文提出两种基于长短时记忆网络(LSTM)的混合模型,用于水流量和降雨量的预测。一种是结合小波变换的WLSTM,通过小波分解增强预测精度;另一种是结合卷积层的CLSTM,利用CNN提取时间特征。实验显示,这两种模型在长时间步预测中比传统LSTM有更高准确性。同时,文中探讨了相关性分析的基本概念和应用。
摘要由CSDN通过智能技术生成


前言

本周阅读文献《Streamflow and rainfall forecasting by two long short-term memory-based models》,文献主要提出两种基于长短时记忆网络的混合模型用于对水流量和降雨量进行预测。小波-LSTM(即WLSTM)模型,应用小波变换的trous算法进行时间序列分解,小波变换将高频和低频提取到不同的子时间序列中,将时间序列分解为更简单的分量,把传统的数据流预测数据驱动模型集成了数据预处理技术来进行预测。另一个模型将LSTM与卷积层相结合,应用CNN提取时间特征。最后通过实际的案例证明提出的两个模型在时序预测方面提高了LSTM的预测精度。其次,学习了相关性的基础知识。

This week,I read an article which proposes two hybrid models, based on long short-term memory network (LSTM), for monthly streamflow and rainfall forecasting. One model, wavelet-LSTM , applies a trous algorithm of wavelet transform to do series decomposition.Traditional data-driven models for streamflow forecasting require data pre-processing techniques integrated with novel models to forecast streamflow. And the other, convolutional LSTM (namely, CLSTM), couples convolutional neural network to extract temporal features.The results obtained indicate that the wavelet transform and convolutional layers improved the forecast accuracy of LSTM, especially for longer time step ahead forecasting. Then I learn the basics of correlation.


文献阅读

题目:Streamflow and rainfall forecasting by two long short-term memory-based models
作者:Lingling Ni ,Dong Wang ,Vijay P. Singh,Jianfeng Wu,Yuankun Wang ,Yuwei Tao ,Jianyun Zhang ,

摘要

Prediction of streamflow and rainfall is important for water resources planning and management. In this study, we developed two hybrid models, based on long short-term memory network (LSTM), for monthly streamflow and rainfall forecasting. One model, wavelet-LSTM (namely, WLSTM), applied a trous algorithm of wavelet transform to do series decomposition, and the other, convolutional LSTM (namely, CLSTM), coupled convolutional neural network to extract temporal features. Two streamflow datasets and two rainfall datasets are used to evaluate the proposed models. The prediction accuracy of WLSTM and CLSTM was compared with that of multi-layer perceptron (MLP) and LSTM. Results indicated that LSTM was applicable for time series prediction, but WLSTM and CLSTM were superior alternatives.

简介

合适的数据预处理提高了数据驱动模型的性能,将数据预处理技术与机器学习相结合,许多研究表明,具有更高的准确性。基于小波的模型是最受欢迎的混合模型之一,因为它通常可以显着提高预测准确性。小波变换(WT)可以将时间序列分解为单独的子序列,并为数据驱动的模型提供更连贯的序列结构,因此它已成为水文和气象预报的流行工具。与WT类似,卷积神经网络(CNN)使用基于滤波器组的离散卷积操作来检测特征的局部合相,滤波器组是指卷积层。本研究的目的是研究LSTM在预测流量和降雨方面的潜力,并开发两个基于LSTM的模型来提高预报的准确性。一种模型将LSTM与小波变换(以下简称WLSTM)耦合,并采用小波变换将时间序列分解为更简单的分量。另一个模型将LSTM与卷积层(以下简称CLSTM)相结合,应用CNN提取时间特征。

方法介绍

小波变换 (WT)
小波变换是一种工具,可将数据切割成不同的频率分量,然后以与其比例相匹配的分辨率研究每个分量。它的主要特性是它提供了所考虑过程的时间尺度本地化。自然界中观测到的水文序列通常是离散信号,因此通常首选离散小波变换(DWT)。

离散小波变换可以通过金字塔算法计算,该算法在多个时间和频率分辨率下计算其表示。通过两组线性滤波器(小波和缩放滤波器),小波和缩放系数定义为:
在这里插入图片描述
典型的DWT是一种非冗余变换,其敏感性容易变化,因此在应用于与预测相关的问题时是一个不希望出现的特征。这个问题是由边界条件引起的,可以通过trous(AT)小波变换来克服,它促进了对观测数据中潜在过程特性的理解。
性能度量
以下三种性能度量用于定性评估所开发模型的性能:均方根误差(RMSE),纳什-萨特克利夫模型效率系数(NSE)和平均绝对相对误差(MARE),分别表示为
在这里插入图片描述

两种混合预测模型

小波-LSTM模型(即WLSTM)
在水文和水资源领域,基于小波的预测通常采用Mallat离散小波变换算法,其中执行WT会将一些未来信息发送到预报中。此问题通常通过迭代地将追加-分解-采样 (ADS) 操作应用于测试数据集来解决,这非常耗时。为了克服“未来数据”问题,以及ADS运算的高计算成本,本研究应用了trous(AT)算法进行时间序列分解,不需要未来时间(>t)的数据来计算当前(t)的小波(缩放)系数。由于AT的特性,WT可以直接对整个数据集执行,而不是迭代应用ADS操作。WLSTM 模型首先选择需要分解的解释变量,然后使用 AT 将所选解释变量和目标变量的时间序列划分为几个更稳定的子序列。然后,它删除了受序列开始时边界条件影响的小波系数。之后,它将整个数据集分为训练集和测试集。训练包含两层 LSTM 且顶部有一个密集层的网络,以使用 q (用作输入的先前时间步长的数量)滞后记录计算 p (我们想要预测的下一个时间段的数量)提前一步预测。
CLSTM
第二个模型将LSTM与卷积神经网络(CNN)耦合,即CLSTM。在 CLSTM 中,应用卷积层堆栈来捕获变量的时间特征。CNN提取的特征被馈送到一个包含两层LSTM的网络,上面有一个密集层。然后,训练整个 CLSTM 模型以使用 q 滞后记录计算 p 提前预测。
应用

在这里插入图片描述
在Cuntan的情况下,WLSTM模型在RMSE方面对提前6个月和8个月的预测具有最佳的准确性。对于提前1步预测,所有神经网络均显示出令人满意的结果,当预测步骤调整为 3 和 6 时,与其他基于 LSTM 的模型相比,MLP 的性能迅速下降。尽管CLSTM的RMSE,MARE和NSE高于LSTM,但与WLSTM相比,它并没有显着提高预测准确性。WLSTM的表现优于LSTM。

讨论

用于多步骤提前预测时MLP和LSTM之间的区别,于 MLP,滞后记录被视为固定大小的输入,而提前多步预测是固定大小的输出。这种处理模式是一对一的情况,其中所有时间记录通过神经元权重直接相互连接,而 LSTM 的处理方式与 MLP 不同,因为它被视为序列到序列(即一次处理序列输入的一个元素,然后一个接一个地生成输出)的问题。LSTM 一次处理一个元素的输入序列,并生成序列输出,其中过去的时间信息由存储单元隐式维护。与LSTM类似,CLSTM和WLSTM将预测作为序列到序列问题进行处理。

关于CLSTM和WLSTM之间的区别。CLSTM 和 WLSTM 都可以看作是数据预处理方法,因为它们都应用卷积操作来提取数据的时间局部信息。小波变换将高频和低频提取到不同的子时间序列中。CNN在一个卷积层的水平上对时间局部信息进行编码。但是,WLSTM 的筛选器是预先指定的结构化筛选器,而 CLSTM 的筛选器是由数据训练的,这些数据是可学习的。此外,卷积层的输出由非线性函数激活。从应用结果可以看出,尽管WLSTM显示出其优于LSTM的优越性,但在大多数情况下,可学习和非线性CLSTM的性能优于WLSTM。有人建议,当解释变量较小且更期望准确预测峰值时,WLSTM 似乎是更好的选择。如果没有关于建模的先验信息,CLSTM 似乎是更好的选择,因为它在大多数情况下表现良好。在这项研究中,我们只应用了两个卷积层来构建CLSTM作为数据不足的极限。可用于训练 CLSTM 的数据越多,可以堆叠的卷积层就越多。此外,堆叠卷积层越大,输入数据的表示形式就越丰富,预测结果就越好。

结论

由于溪流的非线性和非平稳性,传统的数据流预测数据驱动模型需要与新模型集成的数据预处理技术来预测溪流。长短时记忆(LSTM)是一种流行的神经网络(NN),适用于时序数据。本文研究了LSTM在流量和降雨预报中的潜在用途,并提出了两种基于LSTM的模型来执行多步提前预测。一个模型WLSTM应用“trous”小波变换算法进行序列分解,另一个模型CLSTM耦合卷积层来提取时间特征。利用该模型预测长江昆滩站和后口站月流量,对济南站、温江站进行月降雨量预报。

将结果与MLP和LSTM的结果进行比较。结果表明,LSTM适用于水流量和降雨预报,小波变换和卷积层提高了LSTM的预报精度,特别是对于长时间提前的预测。CLSTM 和 WLSTM 是更好的替代方案,当预计预测的时间更长时。

相关性分析

相关分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度,相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。
如何利用相关系数判断数据之间的关系?
1.绘制散点图
在这里插入图片描述
2.相关系数
Pearson相关系数
一般用于分析,两个连续变量之间的关系,是一种线性相关系数,公式为:
在这里插入图片描述
|r|<= 0.3 不存在线性相关

0.3<=|r|<= 0.5 低度线性关系

0.5<=|r|<= 0.8 显著线性关系

|r| > 0.8 高度线性关系
Spearman相关系数
Pearson相关系数要求连续变量的取值服从正态分布,不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数,也称等级相关系数来描述。公式:
在这里插入图片描述
对两个变量成对的取值分别按照从小到大(或者从大到小)顺序编秩,Ri代表xi的秩次,Qi代表yi的秩次,Ri-Qi为xi、yi的秩次之差。
3.判定系数
判定系数是相关系数的平方,用r2表示;用来衡量回归方程对y的解释程度。判定系数取值范围:0≤r2≤1。r2越接近于1,表明x与y之间的相关性越强;r2越接近于0,表明两个变量之间几乎没有直线相关关系。

应用场景
1.利用相关系数来减少统计指标
当业务指标繁杂,叙述笼统,给报告制作,分析解读带来巨大的成本的时候。根据相关系数删减指标是方法之一,一般来说相关性大于0.8的时候可以选择其一。

2.利用相关系数来挑选回归建模的变量。
在建立多元回归模型前,需要解决把那些数据放入模型作为自变量。最常规的方式就是先计算所有字段与因变量的相关系数,把相关系数较高的放入模型。然后计算自变量间的相关系数。若自变量间的相关系数高,说明存在多重共线性,需要进行删减。
代码学习

'''
相关性分析

分析连续变量之间的线性相关程度的强弱

 Pearson相关系数(皮尔逊相关系数)

'''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
%matplotlib inline
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
# Pearson相关系数

data1 = pd.Series(np.random.rand(100)*100).sort_values()
data2 = pd.Series(np.random.rand(100)*50).sort_values()
data = pd.DataFrame({'value1':data1.values,
                     'value2':data2.values})
print(data.head())
print('------')
# 创建样本数据

u1,u2 = data['value1'].mean(),data['value2'].mean()  # 计算均值
std1,std2 = data['value1'].std(),data['value2'].std()  # 计算标准差
print('value1正态性检验:\n',stats.kstest(data['value1'], 'norm', (u1, std1)))
print('value2正态性检验:\n',stats.kstest(data['value2'], 'norm', (u2, std2)))
print('------')
# 正态性检验 → pvalue >0.05

data['(x-u1)*(y-u2)'] = (data['value1'] - u1) * (data['value2'] - u2)
data['(x-u1)**2'] = (data['value1'] - u1)**2
data['(y-u2)**2'] = (data['value2'] - u2)**2
print(data.head())
print('------')
# 制作Pearson相关系数求值表

r = data['(x-u1)*(y-u2)'].sum() / (np.sqrt(data['(x-u1)**2'].sum() * data['(y-u2)**2'].sum()))
print('Pearson相关系数为:%.4f' % r)
# 求出r
# |r| > 0.8 → 高度线性相关

在这里插入图片描述


总结

本周在阅读文献时主要了解到一种数据预处理技术小波变换方法,对时间序列进行分解从而提高预测的准确性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值