Page 62 - 2023年第54卷第10期
P. 62

化(IAO)算法,并将 IAO算法用于自适应优化 XGBoost算法的超参数 n_estimators、learning_rate和 max_
              depth ,从而建立基于 IAO - XGBoost的大坝渗流性态指标预测模型,进一步提高大坝渗流性态指标预测
              的精度。
                  (3)基于 SHAP理论的预测结果解释。针对基于 IAO - XGBoost的大坝渗流性态指标预测模型仅能
              得出预测结果和输入特征的重要性排序,而难以深入分析各样本的特征如何影响预测结果的问题,将
              可解释机器学习框架 SHAP理论与 IAO - XGBoost算法相结合,在对特征进行全局重要性分析,挖掘关
              键特征的同时,分析输入特征对预测结果的正负相关性影响,并解释特征间交互作用以及单个样本的
              特征对大坝渗流性态预测结果的影响,从而提高预测模型的可信度。
                  ( 4)案例研究。将所提模型应用于中国西南某土石坝工程,通过对比分析验证所提方法的有效性
              和优越性。


              3 土石坝渗流性态分析的 IAO - XGBoost集成学习模型


              3.1 XGBoost集成学习模型 XGBoost是由 Chen和 Guestrin提出的一种基于梯度提升决策树(Gradient
              BoostingDecisionTree,GBDT)模型优化的集成学习方法              [6] 。XGBoost的基本思想是通过加入新的弱学
              习器拟合前一次训练的残差,并在训练结束时得到每个样本的预测分数,最后将所有弱学习器中的预
              测分数相加而获得样本的预测值                [25] 。目前,XGBoost已经成功应用于众多领域,且在训练样本有限、
              训练时间较短等场景下具有独特优势                  [25] 。这些特性正好适合于根据渗流数值模拟数据建立大坝渗流性
              态指标预测模型。基于 XGBoost建立大坝渗流性态指标预测模型的主要原理如下。
                                                                             m
                                                 (
                                                {
                  假设渗流性态指标数据集为 D= x,y ) :i = 1 ,…,n;x ∈R ;y ∈R } ,其中每个样本x有 m
                                                   i
                                                       i
                                                                                 i
                                                                                                      i
                                                                        i
              个特征,并且对应一个目标值y,则对于第 i个渗流样本x的渗流性态指标预测值 ^y 可表示如下:
                                          i                        i                      i
                                                       K
                                                  ^=
                                                  y      f(x),f∈ F                                      (1)
                                                   i ∑ k     i   k
                                                      k =1
              式中:f为一棵回归决策树;F为所有可能的回归决策树的集合;K为回归决策树的总数;f(x)为第
                     k                                                                            k  i
              k棵回归决策树对第 i个渗流性态指标样本x的计算分数。
                                                      i
                  渗流性态指标预测模型训练过程中的目标函数是算法的核心,如下式所示:
                                                      n            K
                                                              i ∑
                                                    ∑
                                                Obj =   l(y, ^y ) +  Ω (f)
                                                           i
                                                                        k
                                                     i =1         k =1
                                                                                                        (2)
                                                             1   T
                                                Ω (f) =γ T+   λ ∑  w 2
                                                                     j
                                                   k
                                                             2  j =1
              式中:l为模型损失函数,用以衡量渗流性态指标预测值 ^y 与渗流性态指标模拟值y之间的拟合程度;
                                                                                          i
                                                                   i
              Ω (f)为正则化项,用以惩罚复杂模型,避免过拟合;T表示第 k棵回归决策树的叶子节点数目;w表
                                                                                                        j
                 k
              示第 j个叶子节点的输出分数;γ为叶子节点数目的惩罚项;λ为 L2正则惩罚项。
                  在渗流性态预测模型训练过程中,采用梯度提升策略,一次添加一个新的回归决策树到已有模型
                                                                            (t - 1 )
              中。假设第 i个渗流样本在第 t - 1 轮迭代的渗流性态指标预测值为 ^y                           ,可将目标函数表达如下:
                                                                            i
                                             n
                                                     (t - 1)
                                        (t)
                                            ∑
                                     Obj =     l(y, ^y    +f (x))+Ω (f)+constant                        (3)
                                                                        t
                                                  i
                                                               i
                                                     i
                                                            t
                                            i =1
              式中f(x)为第 t轮迭代时新加入的回归决策树。
                      i
                   t
                  对上式进行二阶泰勒展开并去掉常数项 constant后,则目标函数表达为:
                                                 n            1
                                                                        ]
                                                                        2
                                            (t)
                                         Obj =  ∑  [ gf(x)+     hf(x) +Ω (f)
                                                     i i
                                                                  i i
                                                         i
                                                                      i
                                                                               t
                                                i =1          2
                                                        (t - 1)
                                         g = ^y (t - 1)l(y, ^y  )                                      ( 4)
                                                        i
                                                    i
                                          i
                                              i
                                                        (t - 1)
                                              2
                                         h = ^y (t - 1)l(y, ^y  )
                                                    i
                                          i
                                                        i
                                              i
                —  1 1 8 —
                     9
   57   58   59   60   61   62   63   64   65   66   67