matlab在时间序列建模预测及程序代码
详细介绍了时间序列建模及预测过程,包括算法,也包括一些matlab工具箱中的代码计算结果表明,时,预测的标准误差较小,所以选取=。预测第月份的销售收入为计算的程序如卜为移动平均的项数由于的取值不同,的长度不一致,下面使用了细胞数组简单移动平均法只這合做近期预测,而且是预测目标的发展趋势变化不人的情况如果目标的发展趋势存在其它的变化,米用简单移动屮均法就会产生较大的预测偏差和滞后。加权移动平均法在简单栘动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据所包含的信息量不样,近期数据包含着更多关于未来情况的信息。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就是加权移动平均法的基本思想。设时间序列为加权移动平均公式为十·十∴+式中为期加权移动平均数;为的权数,它体现了相应的在加权平均数中的重要性。利用加权移动平均数来做预测,其预测公式为即以第期加权移动平均数作为第+期的预测值。例我国年原煤广量如表所示,试用加权移动平均法预测年的产量。表我国原煤产量统计数据及加权移动平均预测值表原煤产量三年加权移动平均预测值相对差(%)解取,按预测公式计算三年加权移动平均预测值,其结果列于表中。年我国原煤产量的预测值为(亿吨这个预测值偏低,可以修正。其方法是:先计算各年预测值与实际值的相对误差,例如年为将相对误差列于表中,再计算总的平均相对误差。由于总预测值的平均值比实际值低,所以可将年的预测值修正为计算的程序如下:在加权移动平均法中,的选择,同样具有一定的经验性。一般的原则是:近期数据的权效人,远期数据的权数小。至于人到什么稈度和小到什么程度,则需要按照预测者对序饥的了解和分析来确定。趋势移动平均法简单移动平均法和加权移动平均法,在时间序列没有明显的趋势变动时,能够准确反映实际情况。但当时间序列出现直线増加或减少的变动趋势时,用简单移动平均法和加权移动平均法来预测就会岀现滞后偏差。因此,需要进行修正,修正的方法是作二次移动平均,利用移动平均滞后偏差的规律米建立直线趋势的预测模型。这就是趋势移动平均法。次移动的平均数为+∴在一次移动平均的基础上再进行一次移动平均就是二次移动平均,其计算公式为D下面讨论如何利用移动平均的潛后偏差建立直线趋势预测模型。设时间序列从某时期开始具有直线趋势,且认为末来时期也按此直线趋势变化,则可设此直线趋势预测模型为其中为当前时期数;为由至预测期的时期数;为截距;为斜率。两者又称为平滑系数现在,我们根据移动平均值来确定平滑系数。由模型()可知所以+…十因此由式(),类似式()的推导,可得所以类似式()的推导,可得于是,由式()和式()可得平滑系数的计算公式为例我国年的发电总量如表所示,试预测和年的发电总量。表我国发电量及一、二次移动平均值计算表年份发电总量次移动平均二次移动平均,=解由散点图可以看出,发电总量基本呈直线上升趋势,可用趋势移动半均法来预测。图原始数据散点图取三,分别计算次和二次移动平均值并列于衣中。再由公式(),得于是,得时直线趋势预测模型为预测年和年的发电总量为计算的程序如下:把原始数据保存在纯文本文件中为移动平均的项数趋势移动平均法对于冋时存在直线趋势与厝期波动的序列,是种既能反映趋势变化,又可以有效地分离出来周期变动的方法。§指数半滑法次移动平均实际上认为最近期数据对未来值影响相同,都力权一;而期以前的数据对未来值没有影响,加权为。但是,二次及更高次移动平均数的权数却不是—,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,中间项权薮大,不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间间隔的增长而递减的。所以,更切合实际的方法应是对各期观测值依时间顺序进行加权平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式指数平滑法根据平滑次数的不同,又分为一次指数平滑法、二次指数平滑法和三次指数平滑法等,分别介绍如下次指数平滑法.预测模型设时间序列为,a为加权系数,
- 2020-12-06下载
- 积分:1
稀疏自编码深度学习的Matlab实现
稀疏自编码深度学习的Matlab实现,sparse Auto coding,Matlab codetrain, m/7% CS294A/CS294W Programming Assignment Starter CodeInstructions%%%This file contains code that helps you get started ontheprogramming assignment. You will need to complete thecode in sampleIMAgEsml sparseAutoencoder Cost m and computeNumericalGradientml For the purpose of completing the assignment, you domot need tochange the code in this filecurer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencodtrain.m∥%%========%6% STEP 0: Here we provide the relevant parameters valuesthat willl allow your sparse autoencoder to get good filters; youdo not need to9 change the parameters belowvisibleSize =8*8; number of input unitshiddensize 25number of hidden unitssparsity Param =0.01; desired average activation ofthe hidden units7 (This was denoted by the greek alpharho, which looks like a lower-case pcurer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod4/57train.,m∥in the lecture notes)1 ambda=0.0001%o weight decay parameterbeta 3%o weight of sparsity penalty term%%==:79 STEP 1: Implement sampleIMAGESAfter implementing sampleIMAGES, the display_networkcommand shouldfo display a random sample of 200 patches from the datasetpatches sampleIMAgES;display_network(patches(:, randi(size(patches, 2), 204, 1)), 8)%为产生一个204维的列向量,每一维的值为0~10000curer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod5/57train.m/v%中的随机数,说明是随机取204个 patch来显示%o Obtain random parameters thetatheta= initializeParameters ( hiddenSize, visibleSize)%%=============三三三三====================================97 STEP 2: Implement sparseAutoencoder CostYou can implement all of the components (squared errorcost, weight decay termsparsity penalty) in the cost function at once, butit may be easier to do%o it step-by-step and run gradient checking (see STEP3 after each stepWecurer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod6/57train. m vb suggest implementing the sparseAutoencoder Cost functionusing the following steps(a) Implement forward propagation in your neural networland implement the%squared error term of the cost function. Implementbackpropagation tocompute the derivatives. Then (using lambda=beta=(run gradient Checking%to verify that the calculations corresponding tothe squared error costterm are correctcurer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod7/57train. m vl(b) Add in the weight decay term (in both the cost funcand the derivativecalculations), then re-run Gradient Checking toverify correctnessl (c) Add in the sparsity penalty term, then re-run gradiChecking toverify correctnessFeel free to change the training settings when debuggingyour%o code. (For example, reducing the training set sizecurer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod8/57train m vl/number of hidden units may make your code run fasterand setting betaand/or lambda to zero may be helpful for debuggingHowever, in yourfinal submission of the visualized weights, please useparameters web gave in Step 0 abovecoS七grad]sparseAutoencoderCost(theta, visibleSize,hiddensize, lambda,sparsityParam, beta,patches)二〓二二二二二二二〓二〓二〓二〓=二====〓=curer:YiBinYUyuyibintony@163.com,WuYiUniversityning, MATLAB Code for Sparse Autoencod9/57train.m vlll96% STeP 3: Gradient CheckingHint: If you are debugging your code, performing gradienchecking on smaller modelsand smaller training sets (e. g, using only 10 trainingexamples and 1-2 hiddenunits) may speed things upl First, lets make sure your numerical gradient computationis correct for a%o simple function. After you have implemented computeNumerun the followingcheckNumericalGradientocurer:YiBinYUyuyibintony@163.com,WuYiUniversityDeep Learning, MATLAB Code for Sparse Autoencode10/57
- 2020-12-05下载
- 积分:1