一种基于GUI的模块化支持向量机潮汐预测方法技术领域
本发明涉及潮汐预测领域,尤其涉及一种基于GUI的模块化支持向量机潮汐预测方法。
背景技术
由于潮汐受到多种因素的影响,周期因素如引潮力、非周期因素如风力、气压、海岸特性、降水、月球轨道的倾角等等。传统的调和分析法通过对长期潮汐数据的统计和分析,计算得到模型中各分潮的参数,并基于建立潮的数学模型得到长期的潮汐预报,但是该方法的预报精度除了受分潮数量的影响,还无法分析非周期因素的影响。目前常用的神经网络预报方法是将影响潮汐的各要素,如天体位置参数、风、气压、降水等信息作为网络的输入,以潮汐信息作为网络输出建立神经网络预报模型,并通过对历史数据的学习确定网络的参数。根据确立的神经网络模型和输入进行潮汐预报,该方法虽然一定程度上弥补了调和分析无法预报非周期因素的缺憾,但学习训练的样本要求数据量大,涉及面广,能覆盖各种可能出现的情况,而具有非周期因素的台站历史数据一般却很少。
发明内容
根据现有技术存在的问题,本发明公开了一种基于GUI的模块化支持向量机潮汐预测方法,包括以下步骤:
S1:获取潮汐站监测到的连续序列式潮位信息和利用调和分析法预测的潮汐值,设置潮汐预报的时间值;
S2:将潮位站获取的潮汐实测值与调和分析法预测的潮汐值做差,得到的非天文潮的时间序列根据灰色模型AGO算法对输入的潮位信息和潮汐值进行数据累加处理,处理后的数据作为输入量用于支持向量机的回归预测;
S3:根据S1中设置的潮汐预报时间信息通过支持向量机对潮汐进行预测,在预测过程中对支持向量机的惩罚系数c和核函数半径g分别选用交叉验证、粒子群和遗传算法进行优化,并选择支持向量机训练过程中产生误差最小值的方法作为优化算法进行潮汐预测;
S4:支持向量机预测的结果经过IAGO反向累加处理完成数据还原,还原后的数据用于修正调和分析法的潮汐预测值。
将潮汐站获取的潮汐实测值定义为非天文潮的时间序列,表示为实测潮汐序列y0:x0(1),x0(2),…,x0(n);
调和分析法预测的潮汐数据,它在表示某地实际潮位高度H(t)时,计算方法如下所示:
式中α0为平均海面高度,Rj为分潮振幅,θj为分潮的初位相,σj为分潮的角速度,αj=Rjcosθj,bj=Rjsinθj,m为分潮的个数,是正整数;把调和分析法的预报部分看作天文潮部分,经过计算后得到的调和分析时间序列记为y1:x1(1),x1(2),…,x1(n);将实测潮汐序列y0与调和分析时间序列做差时:
计算公式为:
y2=y0-y1
新的序列为:
y2:x3(1),x3(2),…,x3(n)
该序列首先需要经过AGO操作后用于支持向量机的回归预测:
经过AGO处理的序列表示为x(1)(1),x(1)(2),…,x(1)(n),计算公式为:
在经过支持向量机预测后得到的预测序列为:
该序列经过IAGO的算法获取非天文潮部分最终预测序列:
其中表示非天文潮部分预测后还原的数据,最终潮汐数据通过非天文潮部分的预测值与天文潮部分相加得到最终预测结果;
得到的时间为k+1的潮汐值表示为
由于采用了上述技术方案,本发明提供的一种基于GUI的模块化支持向量机潮汐预测方法,不仅可以将风向、降雨、风暴增水、海岸特性等非周期影响潮汐的因素融合到该预测方法中,而且小样本数据也可以达到较精确的结果。建立一个基于支持向量机SVM预测模型,首先在MATLAB 7.8中导入一个SVM工具箱,然后利用svmtrain函数对训练样本数据进行训练,再用测试样本svmpredict函数对形成的模型进行测试,经过训练和测试后的数据才能对同一验潮站的潮汐进行预测。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本方法的流程图;
图2为潮汐预测过程的流程图。
具体实施方式
为使本发明的技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:
如图1所示的一种基于GUI的模块化支持向量机潮汐预测方法,具体包括以下步骤:
S1:获取潮汐站监测到的连续序列式潮位信息和利用调和分析法预测的潮汐值,设置潮汐预报的时间值,该时间为假如用户想预测10天后的潮汐值,则该时间为10。
S2:将潮位站获取的潮汐实测值与调和分析法预测的潮汐值做差,得到的非天文潮时间序列根据灰色模型AGO算法对输入的潮位信息和潮汐值进行数据累加处理,处理后的数据作为输入量用于支持向量机的回归预测。
模块化预报程在运行过程中,首先需要获取两个输入,其一为用户载入的潮汐站实测数据,这些数据来源于潮汐站对每天潮位信息的记录,在表示的形式上是一个时间序列,该序列记为y0:x0(1),x0(2),…,x0(n)。其二为调和分析法预测的潮汐数据,它在表示某地实际潮位高度H(t)时,计算方法如下所示:
式中α0为平均海面高度,Rj为分潮振幅,θj为分潮的初位相,σj为分潮的角速 度,αj=Rjcosθj,bj=Rjsinθj,m为分潮的个数,是正整数。由于调和分析法在预测潮位时主要考虑的是天体引潮力对潮汐形成的作用,所以把调和分析法的预报部分看作天文潮部分,经过计算后得到的调和分析时间序列记为y1:x1(1),x1(2),…,x1(n)。
以上两部分的差值,则被我们看作受环境等其他因素影响的非天文潮部分,计算方法为:y0-y1,该序列表示为x3(1),x3(2),…,x3(n)处理后的序列在图2中表示为“非天文潮潮汐序列”,这个序列作为原始输入用于非天文潮部分即支持向量机的预测,在进行预报之前首先通过灰色模型的AGO算法来对输入序列进行处理以提高预测精度。AGO对时间序列的处理方法如下:
由于非天文潮分的原始序列为x3(1),x3(2),…,x3(n),则经过AGO处理的序列表示为x(1)(1),x(1)(2),…,x(1)(n),其中在处理之后,新的非天文潮部分的潮汐时间序列被应用于支持向量机的预报中。
S3:根据S1中设置的潮汐预报时间信息通过支持向量机对潮汐进行预测,在预测过程中对支持向量机的惩罚系数c和核函数半径g分别选用交叉验证、粒子群和遗传算法进行优化,并选择支持向量机训练过程中产生误差最小值的方法作为优化算法进行潮汐预测。
S4:支持向量机预测的结果经过IAGO反向累加处理完成数据还原,还原后的数据用于修正调和分析法的潮汐预测值。
在预测的过程中,程序将自动选用三种优化算法对支持向量机进行优化并选取误差最小的算法作为当次预测的优化方法,这三种方法分别是交叉验证选择法,粒子群优化算法和遗传算法。其中,程序对误差的评判标准为训练过程产生的均方根误差RMSE,计算方法为:
其中L为训练样本数目,y和分别代表潮汐的训练数据和该部分的预报值。
在支持向量机预报后就得到潮汐非天文潮部分的预测值,由于在预报之前对数据进行了AGO处理,所以在获得最终的预测结果前还需要进行数据的还原,即IAGO操作,在图2中显示为“获得预测结果并进行数据还原”,IAGO的计算方法为:
其中表示预测后还原的数据,代表预测后未还原的数据。
将非天文潮部分的预报数据与天文潮部分调和分析法计算的数据做和得到最终的预报结果。即完成了整个预报程序的运行。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。