小波神经网络的时间序列预测-短时交通流量预测
- 格式:doc
- 大小:33.00 KB
- 文档页数:6
短时交通流量预测分析交通流量的预测对于交通管理和规划至关重要。
在城市中,交通流量的准确预测可以帮助决策者优化交通信号控制系统、规划道路和公共交通线路,以及改善交通拥堵状况,提高出行效率。
短时交通流量预测涉及对未来较短时间范围内交通流量的估计,通常在小时或更短的时间段内。
本文将探讨短时交通流量预测的分析方法和应用。
短时交通流量预测的分析方法可以分为经验模型和机器学习模型两类。
经验模型基于专家经验和规则来建立预测模型,包括时间序列分析、回归分析和模糊推理等方法。
时间序列分析可以利用历史数据的周期性和趋势性来预测未来的交通流量。
回归分析可以根据交通流量与其他因素之间的关系来建立预测模型。
模糊推理可以模拟人类的推理过程来预测交通流量。
这些方法通常需要手动选择模型和参数,并且对数据的要求比较高。
机器学习模型基于数据来学习交通流量的特征和模式,并利用学习的结果来预测未来的交通流量。
常用的机器学习方法包括神经网络、支持向量机、决策树和随机森林等。
这些方法通常不需要手动选择模型和参数,可以自动学习数据的特征和模式。
机器学习模型的性能通常受数据质量、特征选择和模型调优等因素的影响。
短时交通流量预测的应用包括交通信号控制、交通调度和交通规划等。
交通信号控制可以根据预测的交通流量来优化交通信号的配时,以减少交通拥堵和等待时间。
交通调度可以根据预测的交通流量来调整公交车和出租车的行驶路线和时间,以提高服务质量和效率。
交通规划可以根据预测的交通流量来规划道路和公共交通线路,以满足未来的出行需求。
总之,短时交通流量预测是交通管理和规划中的重要任务。
通过收集和处理数据,应用经验模型和机器学习模型,可以对未来较短时间范围内的交通流量进行准确预测。
这些预测结果可以应用于交通信号控制、交通调度和交通规划等多个领域,以优化交通系统的性能和效率。
随着数据收集和分析技术的不断发展,短时交通流量预测的准确性和实用性将进一步提高。
基于时间序列分析的交通流量预测研究随着城市化进程的不断推进,交通问题成为城市发展中不可忽视的重要因素。
为了更好地解决交通拥堵,需要深入研究交通流量的变化和预测方法。
其中,基于时间序列分析的交通流量预测成为研究的热点之一。
时间序列分析是一种利用数据随时间变化的规律,对未来一段时间内的数据进行预测的方法。
在交通领域中,交通流量时间序列包含了一段时间内的交通流量变化的数据,可以通过该数据进行交通流量的预测。
对于城市交通管理者来说,准确的交通流量预测可以帮助他们合理调配交通资源,提高交通运输效率。
交通流量受多种因素的影响,包括季节性变化、工作日与非工作日差异以及特殊节假日等。
在进行交通流量预测时,需要考虑到这些因素的影响。
常见的时间序列分析方法包括ARIMA模型、指数平滑法和灰度预测法等。
ARIMA模型是一种常用的时间序列预测方法,它基于时间序列的自相关和部分自相关性来进行预测。
ARIMA模型分为AR、I、MA三个部分,分别代表时间序列的自回归、差分和滑动平均。
通过对历史交通流量数据进行ARIMA模型的拟合,可以得到未来交通流量的预测结果。
指数平滑法是另一种常见的时间序列预测方法,它适用于没有明显趋势和季节性的时间序列数据。
该方法通过计算历史数据的加权平均值来进行预测。
指数平滑法假设未来的交通流量与过去的交通流量具有相似的特征,因此可以通过对历史交通流量数据进行指数平滑来得到未来交通流量的预测结果。
灰度预测法是一种基于灰色系统理论的时间序列预测方法,它主要用于处理缺乏数据和不确定性较大的情况。
该方法可以通过构建灰色模型对历史交通流量数据进行预测。
与ARIMA模型和指数平滑法相比,灰度预测法更适用于短期交通流量的预测。
在进行交通流量预测时,还需要考虑到交通流量数据的特征。
交通流量数据通常呈现出周期性和随机性的变化。
因此,在进行时间序列分析时,需要对这两种变化进行建模。
周期性变化可以通过季节性分解来捕捉,而随机性变化则可以通过随机误差来表示。
高速公路短时交通量预测高速公路短时交通量预测随着城市化进程的不断加快,交通拥堵问题日益突出。
高速公路作为主要的城市交通干道,交通量的预测对于交通管理和规划非常重要。
高效准确地预测高速公路短时交通量,可以为交通管理部门提供决策依据,优化交通流量,缓解交通拥堵问题。
高速公路交通量预测是指预测未来一段时间内高速公路上的车辆数目,准确预测能够帮助交通管理部门提前做好交通组织、交通控制和资源调配等准备工作。
现代交通量预测方法主要基于历史数据与实时数据相结合的方式。
下面将介绍几种常见的高速公路短时交通量预测方法。
一、基于时间序列的预测方法时间序列预测方法是通过分析历史交通量数据的变化趋势和规律,对未来的交通量进行预测。
常用的时间序列模型有ARIMA 模型、指数平滑模型等。
ARIMA模型是一种常见的线性模型,通过分析历史数据的自相关性和移动平均性来进行参数估计,从而进行未来交通量的预测。
指数平滑模型是一种多项式拟合方法,通过对历史数据进行平滑处理,利用平滑后的数据来进行预测。
二、基于回归分析的预测方法回归分析可以通过建立交通量与影响因素(如时间、天气、节假日等)之间的数学模型,来进行交通量的预测。
回归分析方法需要准备足够的历史交通量数据和影响因素数据,通过线性或非线性回归模型,对交通量进行建模预测。
三、基于神经网络的预测方法神经网络是一种模拟人脑神经元连接方式的数学模型,可以通过学习历史数据的规律,对未来交通量进行预测。
神经网络模型可以通过调整各层之间的连接权值,使得网络的输出结果与实际交通量相匹配。
神经网络模型具有良好的非线性逼近能力,可以更好地适应交通量数据的复杂特征。
高速公路短时交通量预测的准确性和可靠性受多个因素的影响。
首先,数据质量是预测模型的基础,只有收集到准确完整的历史数据和实时数据,才能构建有效的预测模型。
其次,影响因素的选择也非常重要,需要考虑交通量的周期性、趋势性以及外界因素的影响。
为了提高交通量预测的准确性和可靠性,可以采用以下方法。
基于循环神经网络与时序数据挖掘的交通流量预测研究交通流量预测是城市交通规划和管理中的关键问题之一。
准确预测交通流量可以帮助交通部门优化路网规划、交通信号控制以及旅行者信息提供等操作,最终提高城市交通运行效率和减少交通拥堵。
随着循环神经网络(Recurrent Neural Network, RNN)技术和时序数据挖掘方法的发展,基于RNN和时序数据挖掘的交通流量预测研究被广泛应用。
循环神经网络是一类特殊的神经网络结构,适用于处理序列数据、时间序列等具有时间依赖性的问题。
与传统的前馈神经网络(Feedforward Neural Network)相比,RNN的隐状态可以通过一个循环的连接实现信息在时序上的传递,从而对前序信息进行记忆和利用。
这使得RNN成为处理交通流量预测问题的强有力工具。
在交通流量预测中,时序数据挖掘扮演着至关重要的角色,其可以从历史交通流量数据中识别出重要的模式和趋势,从而为预测模型提供准确的输入。
常见的时序数据挖掘方法包括时间序列分析、周期性分析、自回归模型、移动平均模型等。
这些方法可以帮助我们理解交通流量数据中的季节性、周期性和趋势性,并提取出有效的特征用于交通流量预测。
基于循环神经网络和时序数据挖掘的交通流量预测方法可以分为两个主要步骤:特征提取和流量预测。
首先,通过时序数据挖掘方法,我们可以从历史交通流量数据中提取出有意义的特征。
例如,我们可以提取每天的交通流量变化模式、周末与工作日的流量差异、季节性和节假日对流量的影响等。
这些特征可以用于后续的流量预测模型。
针对特征提取之后的交通流量预测问题,循环神经网络被广泛应用。
基于RNN的交通流量预测模型能够利用历史交通数据中的时序信息和交通流量的动态特性进行预测。
这种方法能够捕获与时间相关的特征,同时还能够考虑到交通流量之间的相互影响。
常见的基于RNN的交通流量预测模型包括基本的循环神经网络(Simple RNN)、长短期记忆网络(Long Short-Term Memory, LSTM)和门控循环单元(Gated Recurrent Unit, GRU)等。
短时交通流预测的研究随着城市化进程的加速和交通工具的普及,城市交通流量不断增加,给城市交通管理带来了巨大挑战。
为了更好地提高城市交通的运行效率和减少交通拥堵,研究人员开始关注短时交通流预测的问题。
短时交通流预测是指对未来一段时间内交通流量的变化进行预测,通常是以分钟或小时为单位。
这种预测可以帮助交通管理部门做出合理的决策,包括交通信号灯的调整、交通疏导的安排以及交通资源的合理配置等。
同时,对于驾驶员来说,短时交通流预测也可以提供实时的交通信息,帮助他们选择最佳的出行路线,减少出行时间。
短时交通流预测的研究面临着许多挑战。
首先,交通流量受到许多影响因素的影响,包括天气、道路状况、节假日等。
因此,需要考虑这些因素,并将其纳入预测模型中。
其次,交通流量的变化具有一定的不确定性,因此需要建立合适的模型来捕捉这种不确定性。
最后,交通流量的预测需要具备高的准确性和实时性,以满足实际应用的需求。
为了解决这些问题,研究人员提出了各种各样的短时交通流预测方法。
其中,基于统计模型的方法是最常见的一种。
这种方法利用历史交通数据来建立预测模型,通过分析历史数据中的交通流量与影响因素的关系,来预测未来一段时间内的交通流量。
另外,基于机器学习的方法也被广泛应用于短时交通流预测中。
这种方法通过训练模型来学习交通数据的模式和规律,从而预测未来的交通流量。
除了以上方法,还有一些新兴的研究方向,如基于深度学习的方法和基于移动手机信号数据的方法。
这些方法利用大数据和人工智能的技术,可以更好地预测交通流量,并且具有较高的准确性和实时性。
总之,短时交通流预测的研究对于改善城市交通管理和提高出行效率具有重要意义。
随着技术的不断发展,我们相信短时交通流预测的准确性和实时性将会得到进一步提高,为城市交通运行带来更大的便利。
基于小波分解的网络流量时间序列建模与预测张晗;王霞【期刊名称】《计算机应用研究》【年(卷),期】2012(029)008【摘要】提出一种基于小波分解的网络流量时间序列的分析和预测方法.将非平稳的网络流量时间序列通过小波分解成为多个平稳分量,采用自回归滑动平均方法分别对各平稳分量进行建模,将所有分量的模型进行组合,得到原始非平稳网络流量时间序列的预测模型.在仿真实验中,利用网络流量文库的时间序列数据建立了预测模型,并对其进行独立测试检验.仿真结果表明,本预测方法提高了网络流量时间序列的预测准确率,是一种有效、稳健的网络流量预测方法.%This paper proposed a network traffic forecasting methods based on wavelet decomposition and time series analysis method. Firstly,the method decomposed the network traffic time series in multiple stationary components by wavelet decomposition, then used the autoregressive moving average method to model the each stationary component separately. Finally combined all the components of the model to get the forecasting model of the original non-stationary network traffic time series. It carried out the simulation experiment on time series data of the network library. The simulation results show that, the proposed method improves the network traffic time series forecasting accuracy rate, and it is an efficient, robust network traffic forecasting method.【总页数】3页(P3134-3136)【作者】张晗;王霞【作者单位】吉林大学计算机科学与技术学院,长春130012;吉林大学计算机科学与技术学院,长春130012【正文语种】中文【中图分类】TP181【相关文献】1.基于多尺度小波分解和时间序列法的风电场风速预测 [J], 李东福;董雷;礼晓飞;廖毅2.基于小波变换和时间序列的网络流量预测模型 [J], 麻书钦;范海峰3.基于双树复小波分解的云量时间序列模型预测 [J], 白云博; 欧阳斯达; 杨朦朦; 夏学齐; 王婷4.基于区间时间序列小波多尺度分解的组合预测方法 [J], 刘金培;汪漂;黄燕燕;陶志富5.基于小波分解和支持向量机的网络流量组合预测 [J], 段谟意因版权原因,仅展示原文概要,查看原文内容请购买。
短时交通流量预测分析短时交通流量预测分析随着城市化进程的加速,交通拥堵已经成为现代城市面临的一个重大问题。
为了有效应对交通拥堵,交通管理部门和交通研究人员迫切需要开发可靠的短时交通流量预测模型。
本文将重点探讨短时交通流量预测分析的方法和技术。
首先,我们需要了解短时交通流量预测的概念和意义。
短时交通流量预测是指通过对交通流量数据进行分析和建模,根据历史数据和当前交通状况,对未来一段时间内的交通流量进行预测。
这对于交通管理部门和交通研究人员来说是至关重要的,因为准确预测未来交通流量可以帮助他们采取相应的交通管理措施,优化交通流动,并减少交通拥堵。
在短时交通流量预测分析中,首先需要收集和准备交通数据。
这些数据包括交通流量、车辆速度、车流密度等。
一般来说,交通流量数据是由交通监控设备(如交通摄像头、交通流量监测器)收集得到的。
这些数据通常是以时间序列的形式进行记录,包括每个时间点的交通流量。
基于收集到的交通数据,短时交通流量预测分析可以采用不同的方法和技术。
其中最常见的是基于统计方法的预测模型,如时间序列模型、回归分析模型等。
这些模型可以通过对历史交通流量数据的拟合和建模,预测未来一段时间内的交通流量。
时间序列模型中,传统的ARIMA模型和SARIMA模型常被应用于交通流量预测。
回归分析模型中,可以考虑影响交通流量的因素,如天气、事件等,以构建更准确的预测模型。
另外,近年来,机器学习方法在短时交通流量预测分析中得到了广泛应用。
机器学习方法通过从历史交通数据中学习交通流量模式和规律,构建预测模型。
其中,支持向量回归、随机森林、神经网络等方法都可以用于短时交通流量预测。
这些方法具有较强的非线性建模能力,能够更好地应对复杂的交通流量变化。
此外,短时交通流量预测分析还可以结合交通流模拟模型。
交通流模拟模型是一种仿真工具,可以模拟路网中车流的动态变化。
通过将短时交通流量预测模型和交通流模拟模型相结合,可以获得更准确的交通流量预测结果。
神经网络中的时间序列预测模型详解时间序列预测是一种重要的数据分析和预测方法,广泛应用于金融、交通、气象等领域。
神经网络作为一种强大的机器学习工具,在时间序列预测中也发挥着重要作用。
本文将详细介绍神经网络中的时间序列预测模型。
一、时间序列预测的基本概念时间序列是指按时间顺序排列的一组数据,具有时间相关性。
时间序列预测的目标是根据过去的观测值,预测未来的值。
常见的时间序列预测方法包括移动平均法、指数平滑法和ARIMA模型等。
然而,这些传统方法在处理复杂的非线性时间序列时表现不佳,而神经网络能够更好地捕捉数据中的非线性关系。
二、前馈神经网络模型前馈神经网络(Feedforward Neural Network)是一种最基本的神经网络模型,也是时间序列预测中常用的模型之一。
它由输入层、隐藏层和输出层组成,每个神经元与相邻层的神经元完全连接。
前馈神经网络通过学习输入和输出之间的映射关系,实现时间序列的预测。
在时间序列预测中,前馈神经网络通常使用滑动窗口的方式进行训练。
滑动窗口是指将时间序列划分为多个子序列,每个子序列包含固定长度的历史观测值作为输入,下一个观测值作为输出。
通过训练神经网络,使其能够根据历史观测值预测下一个观测值。
三、循环神经网络模型循环神经网络(Recurrent Neural Network,RNN)是一种具有记忆功能的神经网络模型,能够处理时间序列数据。
与前馈神经网络不同,循环神经网络在隐藏层之间引入了循环连接,使得网络能够保存过去的信息并传递到未来。
在时间序列预测中,循环神经网络通常使用长短期记忆网络(Long Short-Term Memory,LSTM)或门控循环单元(Gated Recurrent Unit,GRU)作为隐藏层的组成单元。
这些单元通过门控机制来控制信息的流动,有效解决了传统RNN中的梯度消失和梯度爆炸问题。
四、卷积神经网络模型卷积神经网络(Convolutional Neural Network,CNN)是一种在图像处理领域取得巨大成功的神经网络模型,近年来也被应用于时间序列预测中。
交通流量预测中的时间序列分析技巧时间序列分析是一种从历史数据中推断未来的方法,通过对过去的观测值进行建模和分析,以预测未来的趋势和模式。
在交通流量预测中,时间序列分析技巧可以帮助我们理解交通流量的变化规律,并提供准确的预测结果。
本文将介绍几种常用的时间序列分析技巧,并探讨其在交通流量预测中的应用。
1. 移动平均法移动平均法是一种简单且常用的时间序列分析技巧,它通过计算一段时间内的平均值来平滑数据并预测未来的趋势。
在交通流量预测中,我们可以使用移动平均法来预测未来某个时间段的交通流量。
通过选择适当的时间窗口大小,可以在较短的时间内获取较准确的预测结果。
2. 季节性分解交通流量受到多种因素的影响,其中季节性是一个重要的因素。
季节性分解技术可以将时间序列数据拆分成趋势、季节性和随机成分。
通过分析交通流量数据的季节性特征,我们可以更好地理解交通流量的周期性变化,并预测未来的季节性变动。
这种技巧可以在交通规划和交通控制方面提供有用的数据支持。
3. 自回归移动平均模型(ARMA)自回归移动平均模型是一种经典的时间序列分析方法,它结合了自回归和移动平均的优点。
ARMA模型通过建立当前值和滞后值之间的关系来预测未来的数值。
在交通流量预测中,ARMA模型可以帮助我们理解交通流量的趋势和波动,并提供准确的预测结果。
通过不断优化模型参数,我们可以提高预测的准确性和可靠性。
4. 季节性自回归移动平均模型(SARMA)SARMA模型是在ARMA模型的基础上加入季节性成分的一种扩展模型。
考虑到交通流量数据通常具有明显的季节性特征,使用SARMA模型可以更好地捕捉和预测交通流量的季节性变化。
这种技巧在预测交通流量高峰期和低谷期的时段非常有效,帮助交通规划部门合理制定路况管理策略。
5. 神经网络模型神经网络模型是一种强大的预测工具,在交通流量预测中有着广泛的应用。
神经网络模型可以通过学习历史数据的复杂模式和关联性来预测未来的交通流量。
120交通科技与管理智慧交通与信息技术0 引言 短时交通流预测是智能交通系统(Intelligent Transportation System, ITS)[1]中的一个关键技术,通过分析当前交通流的变化规律,提前感知交通系统状态的变化情况,为主动式交通管理和控制提供支撑。
为此,准确、快速和可靠是实施短时交通流预测的基本要求。
短时交通流预测的研究至今已有近60年的研究历程,国内外专家学者已经提出了众多的预测模型和方法。
传统的预测方法如历史平均[2]和指数平滑[3],基于参数的预测方法如随机时间序列[4]、卡尔曼滤波[5];基于非参数的预测方法如神经网络[6]、支持向量机[7]、非参数回归[8]、小波理论[9]等;基于组合预测的方法如多个神经网络预测结果的组合[10]、神经网络与卡尔曼滤波的组合[11]。
这些预测方法基本上都是数据驱动,利用历史的交通流数据进行预测模型标定或训练,以获得高精度的预测结果。
对于基于非参数的预测方法来说,特别是广泛应用的神经网络,主要存在三个方面的问题,训练速度慢、容易陷入局部极小点和学习效率选择的敏感性。
为此,本文研究一个针对单隐含层前馈网络的算法,即极限学习。
该算法随机产生输入层与隐含层的连接权值及隐含层神经元的阈值,且在训练过程中无需调整,只需要设置隐含层神经元个数,就可以获得唯一的最优解。
与传统的训练方法相比,具有学习速度快、泛化性能好等优点。
1 基于极限学习的前馈神经网络1.1 单隐含层前馈神经网络图1 典型的单隐含层前馈神经网络 典型的单隐含层前馈神经网络结构如图1所示,由输入层、隐含层和输出层组成,输入层与隐含层、隐含层与输出层神经元间全连接。
其中,输入层有n 个神经元,对应n 个输入变量,隐含层有l 个神经元,输出层有m 个神经元,对应m 个输出变量。
在短时交通流预测建模过程中,利用已有的交通流数据进行模型训练,假设有N 个训练数据样本(X i , Y i ),X i =[x i1, x i2, …, x in ]T ,Y i =[y i1, y i2, …, y im ]T ,i=1,2,…,N,其中X i 为神经网络的输入数据样本,Y i 为神经网络的输出数据样本,有l 个隐含层节点和激励函数g(x),则图1所示的神经网络数学模型可以表示为: (1) 式中,w i =[w i1, w i2,…, w il ,]T 表示第i 个隐含层节点和输入层节点之间的权向量,βi =[βi1, βi2,…, βim ,]T 表示第i 个隐含层节点和输出层节点之间的权向量,b i 表示第i 个隐含层节点的阈值,w i ·x i 表示权向量w i 和样本x i 的内积。
交通流量预测在城市交通管理和规划中起着至关重要的作用。
通过对交通流量的预测,可以更好地安排交通信号、规划道路建设和优化交通运输系统。
而时序预测作为一种常用的预测方法,也被广泛应用于交通流量预测中。
本文将探讨如何利用时序预测进行交通流量预测,并介绍一些常用的时序预测方法。
时序预测是指根据过去的数据来预测未来的数据,常用于分析和预测时间序列数据。
在交通流量预测中,时序预测可以利用历史的交通流量数据来预测未来某一时间段内的交通流量情况。
这种方法能够帮助交通管理者更准确地预测交通状况,从而制定更合理的交通管理策略。
首先,利用时序预测进行交通流量预测需要收集并整理历史的交通流量数据。
这些数据通常包括每小时、每天或每周的交通流量信息,可以是车辆数量、车速、车流密度等。
通过对这些数据进行分析和处理,可以得到一个时间序列,即按时间顺序排列的交通流量数据。
其次,一种常用的时序预测方法是基于统计模型的预测。
这种方法通过对历史数据的统计分析,建立数学模型来预测未来的交通流量。
常用的统计模型包括ARIMA模型(自回归集成移动平均模型)、指数平滑模型等。
这些模型能够较为准确地预测未来的交通流量情况,但在数据非平稳或具有较强的季节性和趋势性时效果可能不佳。
另一种常用的时序预测方法是基于机器学习的预测。
机器学习是一种通过训练数据来建立预测模型的方法,可以更好地适应数据的复杂特征。
在交通流量预测中,常用的机器学习方法包括支持向量机(SVM)、神经网络、随机森林等。
这些方法能够处理非线性关系和复杂的数据特征,从而提高交通流量预测的准确性。
另外,近年来,深度学习方法在交通流量预测中也得到了广泛的应用。
深度学习是一种基于人工神经网络的机器学习方法,能够学习复杂的数据特征和关系。
通过构建深度神经网络模型,可以更准确地预测交通流量。
除了传统的前馈神经网络,循环神经网络(RNN)和长短期记忆网络(LSTM)等深度学习模型也被用于交通流量预测中,取得了较好的效果。
%% 清空环境变量
clc
clear
%% 网络参数配置
load traffic_flux input output input_test output_test
M=size(input,2); %输入节点个数
N=size(output,2); %输出节点个数
n=6; %隐形节点个数
lr1=0.01; %学习概率
lr2=0.001; %学习概率
maxgen=100; %迭代次数
%权值初始化
Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1; Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1;
a=randn(1,n);a_1=a;a_2=a_1;
b=randn(1,n);b_1=b;b_2=b_1;
%节点初始化
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);
%权值学习增量初始化
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);
%% 输入输出数据归一化
[inputn,inputps]=mapminmax(input');
[outputn,outputps]=mapminmax(output');
inputn=inputn';
outputn=outputn';
%% 网络训练
for i=1:maxgen
%误差累计
error(i)=0;
% 循环训练
for kk=1:size(input,1)
x=inputn(kk,:);
yqw=outputn(kk,:);
for j=1:n
for k=1:M
net(j)=net(j)+Wjk(j,k)*x(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
temp=mymorlet(net_ab(j));
for k=1:N
y=y+Wij(k,j)*temp; %小波函数
end
end
%计算误差和
error(i)=error(i)+sum(abs(yqw-y));
%权值调整
for j=1:n
%计算d_Wij
temp=mymorlet(net_ab(j));
for k=1:N
d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;
end
%计算d_Wjk
temp=d_mymorlet(net_ab(j));
for k=1:M
for l=1:N
d_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j) ;
end
d_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);
end
%计算d_b
for k=1:N
d_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);
end
d_b(j)=d_b(j)*temp/a(j);
%计算d_a
for k=1:N
d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);
end
d_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);
end
%权值参数更新
Wij=Wij-lr1*d_Wij;
Wjk=Wjk-lr1*d_Wjk;
b=b-lr2*d_b;
a=a-lr2*d_a;
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);
Wjk_1=Wjk;Wjk_2=Wjk_1;
Wij_1=Wij;Wij_2=Wij_1;
a_1=a;a_2=a_1;
b_1=b;b_2=b_1;
end
end
%% 网络预测
%预测输入归一化
x=mapminmax('apply',input_test',inputps); x=x';
%网络预测
for i=1:92
x_test=x(i,:);
for j=1:1:n
for k=1:1:M
net(j)=net(j)+Wjk(j,k)*x_test(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
temp=mymorlet(net_ab(j));
for k=1:N
y(k)=y(k)+Wij(k,j)*temp ;
end
end
yuce(i)=y(k);
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);
end
%预测输出反归一化
ynn=mapminmax('reverse',yuce,outputps);
%% 结果分析
figure(1)
plot(ynn,'r*:')
hold on
plot(output_test,'bo--')
title('预测交通流量','fontsize',12)
legend('预测交通流量','实际交通流量') xlabel('时间点')
ylabel('交通流量')
%这里面用到的两个子程序分别是:
function y=mymorlet(t)
y = exp(-(t.^2)/2) * cos(1.75*t);
function y=d_mymorlet(t)
y = -1.75*sin(1.75*t).*exp(-(t.^2)/2)-t* cos(1.75*t).*exp(-(t.^2)/2) ;。