可用于比较水文领域中理论计算曲线过拟合程度的方法与流程

文档序号:15272035发布日期:2018-08-28 22:33阅读:444来源:国知局

本发明涉及本发明涉及一种水文数据处理方法,特别是可用于比较水文领域中理论计算曲线过拟合程度的方法。它适用于在水文数据处理的科学研究中,解决根据不同计算数据所

绘制的曲线的过拟合程度的判断问题。



背景技术:

过拟合问题是在科学研究领域会普遍出现的一个问题,简单的说,解决任何问题需要遵从具体问题具体分析的原则,冒然地把解决一个问题的具体方法用在解决其他问题上,就容易出错,即在解决问题的过程中没有总结出普遍的方法原则,这就是过拟合问题。在科学研究中需要经常根据计算数据绘制曲线图并且把曲线泛化到需要预测的问题中,在曲线精度一定的情况下,会产生不同样式的曲线,解决曲线的过拟合问题就是要从这些曲线中挑选出一个泛化能力最强的曲线,也可以说是一条看上去拟合精度较高,但是其表达式又不至于过度复杂,波动幅度不至于过大的曲线,这是一个亟待解决的问题。迄今为止,人们一直在探求解决过拟合问题的方法,总地来说,解决曲线的过拟合问题有两个主流的方法:偏频方法与贝叶斯方法。其中偏频方法利用一个有固定参数的模型,通过给定的数据求解出一个固定的值,比较常使用的参数估计方法是最大似然估计,具体来说,偏频方法通常通过加入拉索回归或是岭回归范数来防止过拟合,其中这两种范数都为凸函数,拉索回归范数比较陡,而岭回归范数则比较平缓,当最小化正则化项的时候,拉索回归范数可能有些变量的值较大,但有些变量为0;而岭回归范数的全部变量的值都会比较小,但不会为0。另一种方法贝叶斯方法遵从变量都是不确定的并且服从一定的分布的原则,主要利用高斯分布和贝叶斯定理添加相应范数来解决过拟合问题。这两种解决过拟合问题的方法各有侧重,其中偏频方法更倾向于从误差的角度去解析,而贝叶斯方法则是侧重从先验分布的角度去解析,但是总的来说,无论是哪种方法,都是通过添加范数来解决过拟合问题,两种方法都偏重于用公式推导,解决问题的方法计算都非常复杂,可实行性差。



技术实现要素:

本发明的目的在于提供一种可用于比较水文领域中理论计算曲线过拟合程度的方法,它能够克服已有技术的不足,采用计算机程序和微积分原理来比较基于水文实测数据绘制的相同精度的两条曲线的平滑性,即判别曲线的过拟合问题,两条曲线在有实测数据点处的精度相同,但是过拟合程度不同。步骤相对简单易行,舍弃了复杂的数学公式推导,借助计算机程序设计更加简便精确地从两条待选曲线中挑选出拟合度较好的曲线。

其解决方案是:采用计算机程序和微积分原理比较基于水文实测数据并通过理论计算得出的相同精度的两条曲线的平滑性,即判断曲线的过拟合度的问题。借助计算机程序能够更快地得出拟合度较好的曲线。

其步骤如下:

步骤ⅰ.定义计算机程序和相关变量,打开数据所在文件

计算采用计算机程序,定义两个双精度数组分别用来读取文本中的两列数据,同时定义由两条曲线分割出来的小直角三角形竖向直角边所对应的角度正切值的累加值,打开数据所在文件。

步骤ⅱ.读取文本数据

利用计算机程序中的for循环结构遍历文本中的数据,把数据存到数组中。

步骤ⅲ.计算数据,得出结果,关闭文件

根据步骤ⅰ所定义的已有数据绘制离散式曲线图,分别对应两条曲线。曲线的横坐标表示水文数据测量的时间间隔,单位为小时(h),纵坐标表示水位高度,单位为米(m),

利用微积分原理,在步骤ⅰ所定义的两条曲线上分割成若干个小直角三角形,以小直角三角形的斜边长度近似为曲线每一小段曲线的长度,因为数据的测量时间间隔一致,然后,利用三角函数中直角三角形中一个角度的正切值越大这个角度所对应的余弦值就越小的原理,用步骤ⅰ所定义的两个双精度数组中相邻的两个数据的差值的绝对值作为直角三角形一个角所对的直角边的长度,而另一条直角边的长度为水文数据的测量时间间隔的数值,即根据微积分原理所分割出来的小直角三角形一条直角边的长度是水文数据测量时间间隔的数值,算出根据微积分原理分割出来的小直角三角形的一个锐角的正切值,这个正切值的数值越大,这个锐角所对应的余弦值也就越小,由于直角三角形的一条直角边的长度为水文数据的测量时间间隔数值,它是固定不变的,所以这个直角三角形的斜边的长度值也就越大。

把上述计算的每条曲线的若干个小直角三角形的每一个竖向直角边所对的角度的正切值累加起来,就能得到这两条曲线的长度的累加值。

步骤ⅳ.比较累加值,得出结论

在试验中两条曲线的数据精度相同,并且数据差别微小,如果曲线的过拟合程度越大,则曲线的长度就越长。

比较步骤ⅲ计算得出的每个小三角形的正切值的累加过后的数值的大小,若这个累加数值越小,曲线的长度就越短,若这个累加数值越大,曲线的长度就越长,曲线的长度较长的,该曲线的波动较大,出现了过拟合现象,曲线的长度稍短的,该曲线的波动较小,拟合度较好。因此长度较短的那条曲线即是拟合度较好的曲线,即拟合度适中并且泛化能力较强的曲线,从而解决曲线的过拟合程度的比较、判别问题。

本发明采用上述技术方案,采用计算机程序和微积分原理来比较基于水文实测数据绘制的相同精度的两条曲线的平滑性,即判别曲线的过拟合问题,两条曲线在有实测数据点处的精度相同,但是过拟合程度不同。通过比较用水文实测数据绘制的相同精度的两条曲线的长度,曲线的长度较长的,该曲线的波动较大,平滑性较差,过拟合现象较严重,曲线的长度稍短的,该曲线的波动较小,平滑性较好,过拟合现象较轻。平滑性较好的这条曲线是符合条件的曲线,即拟合度适中并且符合普遍规律的曲线,从而解决水文数据处理时曲线的过拟合问题。它不仅步骤相对简单易行,而且舍弃了复杂的数学公式推导,借助计算机程序设计更加简便精确地从两条待选曲线中挑选出拟合度较好的曲线。

附图说明

图1为一种可用于比较水文领域中理论计算曲线过拟合程度的方法的程序流程图。

图2为根据已有数据绘制的第一条曲线离散式曲线图。

图3为根据已有数据绘制的第二条曲线离散式曲线图。

图4为根据微积分原理在曲线上分割小直角三角形的示意图。

具体实施方式

下面结合附图详细描述本发明的具体实施方式。

参照图1至图4,详细描述本发明的具体实施步骤如下:

步骤ⅰ.定义计算机程序和相关变量,打开数据所在文件。

先使用c++语言编写计算机程序,在计算机程序中定义两个包含n个双精度型数据的数组doublen1[n]、doublen2[n]和由两条曲线分割出来的小直角三角形某个角度正切值的累加值x、y,打开数据所在文件。

步骤ⅱ.读取文本数据

采用计算机程序中的for循环结构读取文件的方式把所需数据读入事先定义好的数组doublen1[n]、doublen2[n]中。

步骤ⅲ.计算数据,得出结果,关闭文件

根据步骤ⅰ所定义的两组已有数据分别绘制离散式曲线图,如图2和图3所示、图2对应第一条曲线,图3对应第二条曲线。离散式曲线图中,曲线的横坐标表示数据测量的时间间隔,单位为小时(h),纵坐标表示水位高度,单位为米(m)。图4为根据微积分原理在曲线上分割出来的一小部分曲线,其中以直角三角形的斜边长度近似为一小段曲线的长度。

根据微积分原理,假设把图2所示的第一条曲线和图3所示的第二条曲线分别分成若干个小直角三角形,现以同一条曲线上的两个小直角三角形为例。第一个小直角三角形两直角边的长度分别是a和b,斜边长度是c,长度为a的直角边与长度为c的斜边之间的夹角为α。第二个小直角三角形两直角边的长度分别是d和e,斜边长度是f,长度为d的直角边与长度为f的斜边之间的夹角为β。

每一个小直角三角形的斜边可以近似为曲线每一小段的长度,因为数据的测量时间间隔一致,然后利用三角函数中直角三角形中一个角度的正切值越大这个角度所对应的余弦值就越小的原理,用所述数组中相邻的两个数据的差值的绝对值作为直角三角形一个角所对的直角边的长度,即第一个小直角三角形的一个直角边的长度a及第二个小直角三角形的一个直角边的长度d,而直角三角形的另一条直角边的长度为数据测量时间间隔的数值,即第一个小直角三角形的另一个直角边的长度b及第二个小直角三角形的另一个直角边的长度e。因为根据微积分原理所分割出来的第一个小直角三角形的一个直角边的长度a及第二个小直角三角形的一个直角边的长度d是测量时间间隔的数值,根据微积分原理算出由第一条曲线分割出来的类似于小直角三角形长度为a的直角边与长度为c的斜边之间的夹角为α和由第二条曲线分割出来的类似于小直角三角形长度为d的直角边与长度为f的斜边之间的夹角为β的正切值的累加值,如果第一条曲线的累加正切值大于第二条曲线的累加正切值,所述类似于夹角α及夹角β的所对应的余弦值也就越小,由于第一个小直角三角形的一个直角边的长度a及第二个小直角三角形的一个直角边的长度d是数据测量时间间隔的数值,这个数值是不变的,即第一个小直角三角形长度为a的直角边及第二个小直角三角形长度为d的直角边的长度是固定不变的,所以类似于第一个小直角三角形的斜边长度的累加值就小于类似于第二个小直角三角形斜边的长度的累加值,也就是说第一条曲线的长度小于第二条曲线的长度。

正切值计算公式为:

公式(1)为第一个小直角三角形长度为a的直角边与长度为c的斜边之间的夹角α的正切值。

公式(2)为第二个小直角三角形长度为d的直角边与长度为f的斜边之间的夹角为β的正切值。

在步骤ⅱ所述的两个数组中共有240个点的纵坐标的数据(单位为m),因为所述数据是每隔1小时测一次,所以根据三角函数原理,直角三角形中一个角度的正切值越大这个角度所对应的余弦值就越小的原理,而直角三角形的一条直角边的长度就是数组中相邻的两个数据的差值的绝对值,在所述计算机程序中运用for循环结构分别读取两个数组里的数据,读取结束后关闭文件,计算得到直角三角形中一个角所对应的正切值的累加值,根据三角函数的原理这个角度所对应的余弦值越小,直角三角形的斜边就越短。由于每个小直角三角形的斜边的长度可以近似为每一小段曲线的长度,所以把上述计算的每个小直角三角形的一个角度所对应的正切值累加起来,就能得到这两条曲线的长度大小关系,把第一条曲线的正切值累加值的大小记为x,把第二条曲线的正切值累加值的大小记为y。

该累加值x、y的计算公式为:

式中,代表第一条曲线分割出来的小直角三角形的一个角度。

式中,代表第二条曲线分割出来的小直角三角形的一个角度。

步骤ⅳ.比较累加值,得出结论

最后比较x、y两个累加值的大小,若累加值x大于累加值y,即x>y,则第二条曲线是符合条件的曲线;如果条件不成立,则第一条曲线是符合条件的曲线。也就是说,哪条曲线的总长度较短,该曲线的波动较小,即为拟合度较好并且泛化能力较强的曲线,从而解决曲线的过拟合程度的比较问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1