小波网络在深圳股市应用的研究
Study on Applying of Wavelet Transform and Neural Networks in Shenzhen Stock Market
-
摘要: 采用传统的人工神经网络模型对深圳证券成份指数进行模拟预测,在此基础上,进一步采用小波函数结合神经网络形成的小波网络对其进行拟合和预测,并对两种预测方法得到的结论误差进行分析、比较。结果显示,小波网络比单纯的神经网络模型预测精度高11.1595。Abstract: In the first approach, the conventional artificial neural networks(fuzzy perce ption) were used to approximate and predict the Shenzhen composite index. Based on this result, wavelet network were utilized, which is a hybrid of wavelet transform and neural network , to carry the same task. Comparing the prediction errors from both approaches clearly show that wavelet network offers very satisfied results.
-
Keywords:
- wavelet analysis /
- neural networks /
- wavelet network /
- stock prices /
- stock prices index
-
近年来全球气候变化不稳定性更加剧烈,气象灾害对农业生产影响更加突出,农业气象灾害频现[1-3].如何充分利用大量连续观测的气象资料,从中挖掘分析可能成灾的灾害性天气过程,并预测预警灾害等级,对预防气象灾害减少农业损失具有重要意义[3-6].目前数据挖掘技术成为解决气象观测“数据丰富、知识贫乏”问题的有效手段[7-12],其中的聚类分析和神经网络方法经常应用于气候特征分析与气象灾害研究[13-19].本文尝试应用这2种数据挖掘方法预测农业高温灾害,具体是采用模糊聚类方法在无先验知识的情况下,利用气象观测资料生成模糊聚类中心和隶属度信息,即建立高温灾害等级判定标准预测未来可能的高温灾害;采用误差反向传播(Backprop, BP)神经网络算法对广东省气象局发布的高温灾害历史数据进行学习,经训练后的网络模型可以根据实时气象观测资料,精确地预测可能的高温灾害并判定其等级.
1. 材料与方法
1.1 试验区概况
以广东省为试验区,采用的原始数据是2011年广东省地面气象观测多要素逐日数据和逐日灾害数据,涵盖全省86个气象遥测站(图 1),地面气象遥测站多要素逐日观测数据结构和农业气象灾害发布数据结构如表 1和表 2.
表 1 广东省气象遥测站多要素逐日观测数据结构Table 1. Data structures of the meteorological observation in Guangdong Province表 2 广东省农业气象灾害发布数据结构Table 2. Data structures of public agricultural meteorological disasters in Guangdong Province1.2 挖掘流程
对气象观测数据采用2种方法挖掘分析,预测可能出现的农业高温灾害,并判定灾害等级,达到预测高温灾害发生、及时预警灾害等级的效果.第1种是模糊C均值聚类法(FCM),首先从观测数据表中提取5—7月气象观测逐日数据(7 913条),采用FCM算法对最高气温、高温日数等关键属性进行模糊聚类,利用生成的模糊聚类中心及隶属度矩阵确定高温灾害等级判定标准,再预测未来月份可能出现的高温灾害;第2种是BP神经网络算法,对发布的气象观测逐日数据及同期高温灾害历史数据进行学习,利用训练后的BP神经网络预测未来月份可能出现的高温灾害及其等级;最后,应用2种方法分别对同年8月一段时间的气象观测逐日数据(检验样本)进行判断,对比分析判断结果.农业高温灾害研究流程见图 2.
1.3 算法原理
1.3.1 FCM算法原理
将连续属性离散化是挖掘数量型属性关联规则的关键,这里采用的FCM算法是Bezdek提出来的对数据进行模糊聚类的方法,基本思想是找到一个隶属矩阵(μij)k×n以及k个聚类中心c=(c1, c2,…,ck), 使得给定的目标函数最小[20].本文采用FCM算法将数量型属性(如逐日高温值)划分成若干个模糊集,模糊集能在集合元素和非集合元素之间提供平滑的变迁,较好地实现连续量和离散量之间的转换,同时,在处理高偏度的数据时FCM算法能有效地体现出数据的实际分布情况.FCM算法的核心是计算目标函数[21]:
FCM算法将X划分成k类的迭代过程如下:
FCM-1,取定聚类数目k,2≤k<n,取定模糊加权系数m,m∈[1, +∞],取定迭代停止阈值ε,用值在[0, 1]间的随机数初始化隶属矩阵μ(0),并满足
设置迭代循环次数s=0, 1, ….FCM-2,用μ=μ(s)计算k个聚类中心ci=cis,
FCM-3,修改μ=μ(s+1),
FCM-4,直到‖Js+1‖<ε1,或者‖J(s+1)-Js‖<ε2,ε1、ε2为预先设定的阈值,换句话说直到价值函数小于某个确定的阀值ε1,或它相对上次价值函数值的改变量小于某个阀值ε2,则算法停止.否则,返回FCM-2.
1.3.2 BP神经网络算法原理
人工神经网络是以模拟人脑神经元的数学模型为基础而建立的,它由一系列神经元(单元)组成,单元之间彼此连接.BP神经网络是应用最广泛的一种网络,它具有多层结构,连接是前向的,采用最小均方差的纠错学习规则.反向传播算法包括正向传播和反向传播2个步骤,在正向传播时,输入样本从输入层开始逐层进行处理,上层单元的输出是下层单元的输入,通过隐藏层传向输出层,最终得到样本的实际输出值,然后比较实际输出值与期望输出值,如果相同,那么权系数保持不变,否则进入反向传播过程.在反向传播时,把输出层的误差从后向前逐层传播,根据下层单元的误差计算各隐藏层单元的误差,并对权系数进行修正.不断重复这个学习过程,直到满足终止判断条件[23].
BP算法的过程[23-24].输入:层数为m的神经网络,其中第i层节点数为ni,训练样本集T.输出:经过训练的神经网络.
1) 初始化各层的权系数和偏置.
2) 输入训练样本:输入T中的1个样本X=(X1,X2,…,Xn1)和期望输出Y=(Y1,Y2,…,Ynm).
3) 正向传播:从第2层开始到第m层,计算每层单元的输出.令第k层第j个单元的输出记为Ojk,计算公式为
其中,Wij(t)为t时刻单元i与下层单元j间的权系数,θj(t)为t时刻单元j的偏置,Xik-1为t时刻第k-1层单元i的输出.对于输入单元来说,输出就等于输入,即Oj1=Xj.
4) 反向传播:从第m层开始直到第2层,计算每层单元的误差.将第k层第j个单元的误差记为ejk,对于输出层单元,误差为
对于各隐藏层单元,误差为
5) 修改权系数和各单元的偏置:
其中,η为学习率.
6) 根据给定的结束条件判断是否满足.如果满足,则算法结束,否则返回“2)”继续执行.
1.4 算法应用
1.4.1 利用FCM算法建立模糊等级与模糊聚类中心
先对温度数据表中的平均气温、最高气温和日照时数等属性分别应用FCM算法,利用各自生成的模糊聚类中心,将每个属性分别聚类成5个模糊等级,即较高(vhigh)、高(high)、中(middle)、低(low)、较低(vlow).其次,增加高温日数属性(hot_day),即高温持续的天数(其高温判定标准为:当日平均气温大于平均气温vhigh阈值,或最高气温大于最高气温vhigh阈值,该日为高温灾害).同时利用FCM算法对高温日数属性进行模糊聚类,分别为高(high)、中(middle)、低(low)、零(zero)4类.所得高温模糊等级与模糊聚类中心见表 3.
表 3 高温模糊等级与模糊聚类中心Table 3. High temperature fuzzy levels and fuzzy cluster centers本文利用FCM算法生成的模糊聚类中心建立高温灾害等级判定标准:根据最大隶属度原则,当hot_day=0时,正常等级;当hot_day=low时,高温轻度等级;当hot_day=middle时, 高温中度等级;当hot_day=high时,高温严重等级.
1.4.2 利用BP神经网络训练高温灾害数据
在进行BP神经网络训练前,选取与高温灾害密切相关的平均气温、最高气温、日照时数和高温日数等4个影响因子作为输入变量,期望输出变量为当日的高温灾害等级.由于单独输出灾害等级结果在实际训练时会引起较大的误差,本文采用形如布尔离散向量的输出形式,如以[0, 0, 0, 1]表示正常、无灾害,[0, 0, 1 ,0]表示灾害轻度等级,[0, 1, 0, 0]表示灾害中度等级,[1, 0, 0, 0]表示灾害严重等级,可以大大提高网络模型的通用性和精度.
从广东省气象局发布的2011年逐日灾害数据中提取7月27日至8月9日的86个站点逐日高温灾害数据(1 204条)建立高温灾害表,并作为训练样本.在MATLAB环境下建立BP神经网络模型, 选择训练函数trainlm(),它采用了Levenberg-Marquardt算法, 避免了直接计算赫赛矩阵, 从而减少了训练中的计算量和内存需求量, 使对于中等规模的BP神经网络具有最快的收敛速度, 而且很好地利用了MATLAB对矩阵运算的优势[25].输入、输出变量均由4个神经元组成,根据隐藏层神经元节点数的满足条件,隐藏层神经元应该在2~12个,通过比较运行结果, 选出较合适的神经元数为12,即网络拓扑结构为4-12-4.BP神经网络模型主要参数:适应性学习函数为LEARNGDM,性能函数为MSE,隐藏层传递函数为TANSIG,输出层传递函数为LOGSIG;训练最大循环次数1 000次,最大验证数据失败的次数6次,动量的初始值为0.001,动量减少系数为0.1,动量增加系数10,动量最大值为1014;性能目标为0,最小性能梯度为10-20.
上述模型参数经BP神经网络训练后所得的输出变量与实际目标输出变量的绝对误差较小,输出变量的结构因采用[0, 0, 0, 1](正常无灾害)/[0, 0, 1, 0](轻度等级)/[0, 1 ,0 , 0](中度等级)/[1 , 0 , 0 ,0](严重等级)的输出形式,其分类结果直观、精确度高且易于识别,所判定的高温灾害等级与实际灾害发布等级一致.综上所述,网络具有非常好的性能,能揭示灾害判定的内在规则,可以根据气象观测数据准确地预测并判定灾害的等级.
2. 结果与分析
以2011年8月23日全省86个气象遥测站气温数据作为输入,对上述训练好的BP神经网络进行农业高温灾害预测,所得各气象站点的判定结果与广东省气象局发布的灾害等级进行对比验证,结果(表 4)显示,各站点的预测等级与发布结果完全一致,预测总误差接近0,表明经训练后的BP神经网络可以准确地预测广东省农业高温灾害、并判定其等级.可见,BP神经网络算法相对比较精确,适用于有历史气象观测数据以及同期的灾害数据的情况,通过对历史数据训练有效的神经网络,参照新观测的数据可以预测未来可能存在的灾害及其等级.若灾害判定有明确的规则(未公开),训练的神经网络可以精准地揭示这个规则,预测结果非常准确(即与实际发布结果一致).
表 4 各站点神经网络方法预测灾害等级与实际发布结果对比1)Table 4. The comparison between public disaster level and predicted result based on neural network at every meteorological station采用模糊聚类方法建立高温灾害等级判定标准,对2011年8月23日气温数据进行灾害等级判定.根据最大隶属度原则,同一个站点在3种灾害等级及正常等级中取隶属度最大者为该站该日高温灾害等级.由于神经网络方法预测的结果与实际发布结果完全一致,所以将模糊聚类方法的结果与神经网络方法结果进行对比.广东省范围内高温灾害不同等级的站点数目的对比结果见图 3.由图 3可见,模糊聚类方法判定的结果与神经网络方法判定结果(即官方发布结果)略有差异,重度和中度灾害等级的站点数偏高,这是模糊聚类生成的聚类中心较神经网络学习的灾害等级阈值略小,所以判定的中度等级以上受灾站点数略高.
可见,模糊聚类方法相对比较粗略,适用于仅有气象观测数据、无同期灾害历史数据的情况,先根据气象观测数据计算出模糊聚类中心即灾害等级的阈值,再根据阈值预测可能存在的灾害及其等级,其精度依赖于观测数据,观测数据的极值、中值及其比例会影响模糊聚类找到的阈值.为了进一步说明2种方法对同一站点灾害等级判定的差异,将2种方法挖掘得到的各站点及其高温灾害等级分别进行空间插值得到农业高温灾害分布图(图 4),图 4直观地对比分析高温灾害等级有差异的站点及其分布,更便于不同区域结合不同作物及时采用相应的预防措施.
3. 结论
本文应用模糊聚类算法(FCM)和BP神经网络算法,对广东省气象观测数据挖掘分析可能存在的农业高温灾害并判定其等级,结果表明2种方法均可预测农业高温灾害,类似地可以推广到其他农业气象灾害预测.模糊聚类算法(FCM)可在缺乏灾害判定规则和历史灾害等级等先验知识的条件下,基于长期气象观测资料得出关键属性的聚类中心和隶属度矩阵,根据最大隶属度原则,将连续属性离散化为模糊属性,在此基础上建立灾害等级判定规则,进而通过气象观测数据预测可能即将发生的农业气象灾害及其等级.BP神经网络算法在缺乏灾害判定规则情况下,可对气象观测历史数据及同期发布的灾害等级数据进行学习,训练后的网络模型可以更准确地揭示内在的灾害发生规律,并通过气象观测数据精确地预测可能发生的农业气象灾害及其等级.神经网络和模糊聚类2种数据挖掘方法在缺乏先验知识的条件下,均可以通过气象观测数据准确地预测农业气象灾害,结果对比表明,前者预测气象站点灾害等级的精度略优于后者.