APP下载

基于RE-CFSFDP与DSA-LSSVM的山脊梁数据预测方法研究

2022-08-26杨本钊

关键词:降雨量脊梁聚类

杨本钊

(悉尼大学 商学院,悉尼)

近年来,随着各个国家和地区对民生安全、灾害抑制、土木建设等需求日益重视,以及地质灾害的广泛分布与剧烈活动和其造成的严重后果[1],使预测问题成为科学研究的重要方向。目前普遍通过各种形式的传感器和录像视频等配合来进行监控和预测,传感器的数据可以用来做稳定性、安全性计算,同时也可以将各种数据利用机器学习进行预测[2-3]。

目前许多重要的山体检测参数并不能直接作为数据被计算机加以应用,而必须要富有经验的地质或者水利工程师使用经验公式来加以修正,这在一定程度上导致了经验影响结论的误差[4]。本文通过合适的聚类方法将数据按降雨量分类,然后再利用机器学习方法对数据进行预测,最终让实际结果超过经验公式,在提高准确率的同时降低人工成本与劳动力成本。

1 增加时间序列改进的LSSVM

在预测山脊梁数据问题上,最小二乘支持向量机(下文称为LSSVM)无疑是传统算法中的较优解。这是基于LSSVM的特性而得出的结论。相对于传统的SVM只能在小的训练集中得到较为准确的结果,LSSVM在多个因素或高维度下的分类回归中有着更加优秀与稳定的表现[5]。而相对于ANN模型需要调整更多参数,且难以克服局部最优与过度拟合的缺陷,LSSVM可以做到在更小的参数调整范围中解决问题从而避免上述情况。以LSSVM为基础,将以降水量随时间采集的数据集视为时间序列y,将其中的时间点视为t时刻,设定一个该时间序列的前置点p和冗余q来构成函数,其中冗余函数q代表了自然环境下的影响因素影响公式的时间节点。除此之外将误差设置为λ,如公式(1)所示:

根据学科专家的经验知识,以山体位移、高边坡地下水位代表等20余项数据集构成了公式1的核心,受到降水量时间序列的前置点p的影响。从中选取任意一个p前置点来形成一个p维空间向量,以原序列的方向进行移动来获取一组预测向量,并且将其定义为x。为了简便描述公式(1)的函数,通过引入未知向量w与φ(xt)表示公式(1)中的f(yt-1,yt-2,…,yt-p),并且将b设置为该函数的阈值。则对于任意的t,如公式2所示。

对于公式(2)中的未知向量W与公式(1)中的变换函数f,由于其维数在实际生活中可以被无限放大,甚至可以高于p,因此对未知向量w与变换函数f进行优化,通过规定最小化系数w的值,刻画偏置矩阵WT并通过引入正则化参数γ来衡量实际的误差率,如公式(3)所示:

通过观察,不难发现t值被限定为公式(2)中从1到n的值,与向量数量相关,这不利于模型的实际运用,因此需要利用内核技巧来消除未知系数w,从而将f转化为内核函数。以此为核心理念,可以通过导入单位矩阵I来将其简化为线性公式,如下:

将Ω定义为上述公式计算的矩阵,则有:

对于对称高斯的径向基函数,即公式(5)中得出的内核函数K,将σ定义为其宽度,用于衡量回归中涉及的临近向量的个数。基于此,可以写出公式(6):

通过上述推导,当出现新的样本x时,基于之前引入的时间序列,插入拉格朗日乘数αt和公式(2)中包含的截距项b,通过公式(4)—公式(6)和原本的数据来使用最小二乘法来对所有公式(7)中的未知数求解,得出改进后的LSSVM的模型,最终呈现为:

作为LSSVM模型的解读,正则化参数γ与内核函数宽度σ是影响LSSVM模型的预测精准度的关键参数。不难发现,对于正则化参数γ与内核函数宽度σ的获取,在实际例子中往往是通过穷举法的不断拟合得出的,而且其中可能涉及到优化。这就意味着其中的突变数据会在庞大的数据量中被强行“抹平”。这种方式当应用于山体数据预测时,预测精度将会大幅度下降,因为对于山脊梁数据预测问题中,传感器的突变数据是构建预测模型的重要因子,不应该按照数量级和常规数据共同处理,因此需要引入新的方法对LSSVM的两个重要参数进行优化。在经过计算与实际测试后,差分搜索算法(以下简称为DSA算法)表现出了良好的相性。

2 通过DSA计算LSSVM的核心参数

DSA(Different Search Algorithm)算法在 2012年由Pinar Civicioglu提出[6],它模拟了生物界为了寻找丰富资源的迁移情况。算法计算过程中当发现第一个资源丰富区域时,将当前发现的第一个资源丰富区域当作定居点,然后从定居点开始向其它任意方向搜索,当发现第二个资源丰富区域时,将第二个资源丰富区域当作新的定居点,再从新的定居点开始向其它任意方向搜索,以此类推,最后得到最好的迁移路线。该算法的优点是搜索范围广、简单等,与传统的粒子群算法[7]或者退火算法[8]比,具有高精度解决多个极值点优化的优点。DSA算法会在每次进行迭代优化后将新的最优点与上一次迭代优化后的最优点相对比,并且进行替换或保留(这取决于两个最优点的优劣)。首先,在初始的参数方面,设定一个物种的规模为pm,其中m={1,2,3,…,N},N为该物种的全部个体数量。设定该物种的维度为pn,其中n={1,2,3,…,D},D为优化迭代的维数。为了方便研究和探讨,也为了避免过于繁杂的计算,引入Scope为该种群的活动范围。其中up和low为该范围的边界。则初始最优点的求解如下:

为了保证种群被限定在范围内,则当出现Scopemnupn时,即超出范围时,将该种群位置进行随机投放的过程如下所示:

在考虑到避免局部最优问题后,将S定义为种群的当前最优点,加入一个问题维度更新器,即由0和1组成的选择器来决定维度是否继续更新,将Dis-p定义为该种群移动的方向,将由R代表的使用布朗运动模拟种群搜索范围代入公式(9)可以得到:

不难看出,DSA算法要求确定参数的维度、最大的迭代数量和生物的种群,这在上文中使用的LSSVM中可根据实际获取的数据来定义。LSSVM的损失函数为默认的情况下,平方损失函数:

为了求解其中的两个核心参数δ和γ(即在LSSVM的参数中拥有最高的权重),必须基于新的算法来减小δ和γ的定义范围。传统的LSSVM将δ和γ的区中范围定义在[e-10,e10],在这样大的范围内算法默认用退火算法,在上述具体范围内搜索δ和γ的值,以保证算法的最优解。但是退火算法是基于物理高温开始,属于随机概率类算法,对当前山体相关数据来说参数初值和衰减因子明显不适合。

所以基于本文采用的实际数据作为计算标准,将DSA算法的维度定义为超参数个数2,最大迭代数量定义为100,种群定义为本文数据量的20。其中根据DSA算法的定义,最大迭代数量对实际结果的影响会随着数量增加而减弱,因此本文采用了100作为最大迭代定义数量,来保证准确率的前提下降低计算的实际成本。在这种情况下计算LSSVM的2个参数即可。为了让LSSVM的损失函数尽可能小,即Y-f(X)趋近于0,可根据上文中的DSA算法公式,将LSSVM的两个超参数δ和γ使用公式(8)—公式(10)的DSA算法代入运算,结果可以表示为两个数据集,即:

通过这种方式,δ和γ两个超参数的每一个取值都会和之前的取值进行比较,并且得出新的最优解。通过DSA算法来求解δ和γ,使得这两个LSSVM中重要的超参数的优化变得更加准确有效,从而避免出现局部最优的问题,有效地利用了DSA算法中高性能的全局搜索能力。通过DSA算法求解出的δ和γ在全局上有着更快速、更准确的特点,极大地减少了传统LSSVM在计算δ和γ两个超参数范围时的取值次数,变相缩小了传统LSSVM中[ ]e-10,e10的区中范围。

另一个优势在于,在山脊梁数据预测问题中,突变参数的参考价值极高,但是在传统的LSSVM算法中,由于δ和γ的取值是基于全局随机迭代来进行选取,突变数据会被更大规模的非突变数据掩盖。而通过DSA算法的优化迭代,突变数据得以完整的保留,并被纳入最优解的衡量中,改善了LSSVM对山脊梁数据预测问题的适用性。

3 数据集来源与应用

3.1 数据集

在利用吉林省某真实山体数据(山脊梁变形位移数据为主,降雨量、边坡地下水位等20项相关数据为辅)进行回归和预测分析过程中,所有数据均来自于真实数据,采取的数据分别为山脊梁山体位移数据、降雨量数据、高边坡地下水位数据、高边坡排水洞水位数据、山脊梁地下水位数据、山脊梁浸润线数据等。在采集来的初始数据中,由于降雨量变化和各传感器例如排水洞水位并不是线性对应关系,同时降雨量数据本身就属于不确定数据[9],最后经过整理,有效数据点为20个,每个数据点采集的数据大约为10 500条,时间跨度为2007年1月1日到2016年3月31日。整理后的部分数据如图1所示。

图1 吉林省某山脊梁采集数据汇总

山体监测的真实数据中,有很多不确定数据,例如降雨量、边坡地下水位等。这些数据不仅不能保证为球形规范数据,同时地下水位和降雨量还有时间延迟响应等。单一传统的聚类方法很难将监测数据合理分类。而且这些数据并不能将数据直接进行回归和预测[10]。目前对于不确定数据常规的方法就是聚类,如ROCK、AP、STRING、FC等,在雨量和各种山体数据上应用最多的就是密度聚类,如DBSCAN、OPTICS等,但是密度聚类算法需要使用者确定密度阈值作为参数,如果密度阈值单一不变,在冬季或者多雨季节一定会出现较大误差。

3.2 CFSFDP

基于此,本文使用了Rodriguez在2014年提出的CFSFDP,可以自动地检测簇数量的多少。这是基于密度峰值的快速聚类算法,算法假设聚类的簇的中心符合以下规则:(1)簇的中心邻域被其他更低密度点的邻域所包含;(2)上述邻域和更高密度的其他点相对距离较远。计算完每个点的pi和δi后,画出决策图,决策图右上方的点就是簇的中心点,以点的数量分配簇的个数。具体的筛选过程如下:(1)将密度远低于其他点的点自成簇,进行标记后在后续的分配过程中予以排除;(2)选择pi和δi指标都在总量的前50%的点成立簇中心,并且剩余的点分类到离它最近的簇中心所在的簇中。

通过上述过程,CFSFDP的本质是利用决策图找到聚类的中心(密度最大的地方),然后根据距离划分不同类别,算法要求数据密度最大的点被密度较小的点所包围,同时还要指定数据簇的最大距离,并且对离散的噪声数据没有处理,相对来说更适合数据规范的球形数据簇。降雨量在数据上按12个月数据来看,一般可人为分为少雨、中雨、多雨。普遍来看多雨季节时间密度较大在6~9月间,但是同时期的例如高边坡地下水位数据密度最大却在时间上延后一个月左右,这意味着聚类过程中虽然将雨量按多少聚类,但是雨量和其他数据的变化存在响应的效率差,而CFSFDP因为没有和时间相关的因子而不能直接应用。所以本文引入了新的概念“响应效率”(Response Efficiency,下文简称为RE),相当于在算法中加入时间因子,更改了样本数据的相关属性的计算联系方法。

4 基于RE-CFSFDP的数据处理

以上文的多雨期为例,降雨量在6~9月时每年都有较大变化且无规律。而高边坡排水洞的水位在6月份往往没有数据,到了7月份后才开始提高,到了10月份才达到最高点,可见两组数据有一个月左右的延迟。其他数据例如浸润线等也同样有时间延迟,并且每组数据的延迟情况又不相同,所以不能单纯的以降雨量为聚类参考数据去划分其他数据。

普通降雨量的聚类过程为CFSFDP,这里先介绍CFSFDP算法的一些公式。该算法的主要内容是求得数据集X的密度中心,假设每一个数据Xi都有ρ和δ,有公式(14):

式中,dij表示数据i和数据j之间的距离;dc是设定的半径,可以理解为密度ρi表示以dc为半径的一个圆,把样本Xi都包含在这个圆中;δi表示此圆中不同数据的最大距离。通过迭代计算,最后得出三个参数的数组,该数组为:

其中,λi就是求得的,称为组别编号,通过这个编号来区别最后的分组。

接下来,在CFSFDP算法上添加一个参数Δt,针对不同时间延迟的数据集,更改ρ和δ的计算方法,即提出基于数据延迟时间的RE-CFSFDP聚类。

以降雨量为聚类分组参考,将浸润线变化和降雨量变化的延迟定义为Δt1,将高边坡排水洞和降雨量的延迟定义为Δt2,Δt3,以此类推,得到一个数组Δtn,其中n为数据采集过程中的数据分类,数组的数量为每个数据分类中传感器的数量,将tc定义为该数组的几何意义上的圆形区域半径。

将该参数添加到原有的密度计算中,添加了时间参数的计算公式为:

值得指出的是,Δt本身具有一定的范围限制,来保证可以有效的进行实际应用。根据本文所用数据的采集频率,将Δt的范围定义为:

其中,1视为采集数据的频率,本文为一个月,以避免单次降雨的延迟时间影响多次采集结果。Δt的下限设置为最大降雨量时的实际延迟效率。

以本文数据为例,本文数据除去需要用于构建RE的降雨量外剩余4组,那么Δt1,m定义为第一组数据(例如高边坡排水洞)与降雨量的RE,其中传感器的数量为m。基于此,每一个数据都按自己独立Δti数据再利用RE-CFSFDP算法进行聚类,将聚类后的所有数据分为3个组,通过这种聚类方式改变了每个数据在不同延迟时间的聚类分散问题。

5 数据计算与结果

实验将三组的结果进行收集后,通过四种不同的机器学习模型导入计算,并且将计算结果使用RMSE和MAPE作为预测的评估指标[10]。其中 RMSE(Root Mean Square Error)为均方根误差,指预测值与真实值差的平方的期望,如下:

MAPE(Mean Absolute Percentage Error)是 平均的绝对百分比误差,如下:

最后实验将基于原数据集根据雨量不同进行分类的三个小数据集的最后误差结果取平均值来作为最后的实验结果。4种不同预测模型的LOSS误差平均值如表1所示。

表1 各预测模型误差(LOSS)

表1中的4组数据分别代表了包含传统的SVM与LSSVM和DSA与之相结合的4种不同预测模型的实际实验结果。其中,DSA-LSSVM的RMSE与MAPE的误差平均值均相对于其他三组模型更小,这意味着DSA-LSSVM在预测山脊梁数据问题时更加稳定,有着更好的实际效果。单独观察每个小数据集中的实际表现,DSALSSVM依旧在4种机器学习模型中展现了更高的准确程度,这意味着DSA-LSSVM模型在实际运用中也有着更优秀的适用性。

为了更好的展现DSA-LSSVM模型在实际优化过程中的表现和与其他三种模型在优化全过程中的差异,引入了真实数据作为预测过程中的参考标准,并且根据预测情况标画出了4种模型的迭代优化曲线,以山体实际纵向位移量和不同算法模型预测的纵向位移量作为评价标准,从而在实际运用中对山脊梁滑坡有最优预测结果(山脊梁形变实际意义为山体纵向位移数据突变)[11]。计算结果如图3—图5所示。

通过观察图2,可以发现在少雨情况下,DSA-LSSVM模型预测数据曲线在90余天内的纵向位移总量全程稳定高于真实数据,而且除开始的十天内,几乎全程都高于其他三种模型预测曲线的预测纵向位移。而对于传统的SVM与LSSVM,可以发现在山脊梁数据问题的预测上表现均不佳,其中SVM曲线仅在前30天内保证了配准精度,而LSSVM曲线也在70天后低于实际数据曲线。DSA-SVM虽然全程更贴合实际数据,但是对于实际生活中山脊梁数据问题的预测,除了曲线的预测精度需要被观测外,更重要的是模型的稳定性和提前性,需要牺牲一定的贴合程度来保证足够的预测提前量,才能更好的做出应对。

图2 少雨情况下4种算法对比图

在中雨情况下(如图3所示),可以发现传统的SVM和LSSVM对于数据纵向位移的预测相去甚远,其中SVM预测曲线在50天后就和实际数据曲线贴合程度严重下降,而LSSVM几乎全程都没有很好的反应实际数据情况。DSA-SVM曲线虽然依旧保持少雨情况下的贴合程度(如图2所示),但在90天左右时对纵向位移曲线斜率的突然增加明显响应速度较慢,而DSA-LSSVM不但保持了贴合与预测量的优秀表现,在应对纵向位移量突变时的响应速度也明显较快。

图3 中雨情况下4种算法对比图

在多雨情况下,如图4所示,山脊梁纵向位移总量在60天处产生突变,而SVM、LSSVM与DSA-SVM在响应速度上均不能达到实际要求。其中传统的SVM和LSSVM预测曲线并不能反应山脊梁的实际情况,甚至LSSVM的预测曲线出现了明显的错误持续上升趋势。而DSA-SVM曲线的预测突变明显小于山脊梁实际突变,无法有效起到安全预警作用。DSA-LSSVM曲线则保持在突变过程中紧密贴合实际曲线,在对突变数据的处理部分有着明显的优势。

图4 多雨情况下4种算法对比图

上述结果说明了DSA-LSSVM模型在预测山脊梁数据问题上,无论是LOSS函数在不同数据集中的误差表现还是实际预测曲线中均展现了更高的准确度、更优秀的迭代方式和更好的实用性。

6 结论

本文在预测山脊梁数据问题上,提出了DSA-LSSVM的数据预测方法,并将预测按降雨量分为三种情况,利用了DSA的全局优化能力计算LSSVM的两个核心参数,有效地改善了默认LSSVM算法中的随机参数计算方法容易漏算最优解的问题。本文在实际实验中,对比分析了传统的LSSVM、SVM算法和DSA-SVM等混合算法。实验结果表明,DSA-LSSVM对比传统预测模型,有着更快的迭代效率,更快的优化速度和更加精确的预测数据,并且得益于DSA算法的优势,不容易陷入局部最优问题。因此,DSALSSVM在山脊梁数据问题上是一种有很大扩展空间的优秀的数据位移的预测手段。

为了有效处理不确定性数据,本文利用CFSFDP聚类算法将数据进行约束并导入神经网络中运算,并且添加了针对不同时间延迟产生的响应效率,改进并提出了RE-CFSFDP聚类算法,在山脊梁数据的整合分类中起到了良好的效果。RE-CFSFDP在应对存在响应效率的数据集时,可以有效地避免对应不同步,导致神经网络运算误差加大,甚至得出错误结论的情况。

由于山脊梁数据问题的复杂程度,和实际数据采集的局限性,以及受限于作者本人的实际水平和经费精力,本文在以下方面还需要进一步的分析和改进,才可以针对山脊梁数据问题进行更好的预测与分析。

(1)针对更多算法的引进。本文仅详细讲述了RE-CFSFDP聚类算法以及DSA算法在LSSVM中的应用,未来可以尝试更多的多目标优化算法、深度学习算法等,尝试进行多算法整合横向对比来预测山脊梁数据问题。

(2)更多有效数据的采集。由于实际山体中传感器的数量和埋设位置的限制,本文仅仅选取了部分水力学参数来进行山脊梁数据问题的预测和分析,未来可以考虑诸如植被、坡度、水坝等其他角度多层次进行分析,来提高实际预测的准确率。

(3)更多层次的优化迭代与分析。由于LSSVM中的两个超参数δ和γ取值范围庞大,虽然使用了DSA算法来一定程度上变相缩小了计算范围和强度,但是受限于实际表现,迭代的次数并未有更多的设计。未来可以尝试进行更多的迭代,来对曲线的表现形式进行进一步的刻画。

猜你喜欢

降雨量脊梁聚类
一种傅里叶域海量数据高速谱聚类方法
基于数据降维与聚类的车联网数据分析应用
党是民族的脊梁
脊梁
基于模糊聚类和支持向量回归的成绩预测
编读往来
豫南山区野生北虫草发生出草规律及采集利用调查初报
你的脊梁,我的天