Page 224 - 《软件学报》2024年第6期
P. 224

2800                                                       软件学报  2024  年第  35  卷第  6  期


                       ∗              ∗                     α  值代入公式   (3) 和公式  (4) 即可得出需求解的分离超平
                                                             ∗
                 其中,   α  为上述求解最优    α  的一个分量. 将求解的最优
                       i
                         ω 和参数   b, 此时模型构建完成. 当输入数据时, 根据训练的模型即可预测对应的路径节点状态.
                 面, 即系数
                    另外, 与  SVM  一样, XGBoost 模型也可应用于求解分类问题. 针对复杂或不均衡样本, 不仅模型训练时间相
                 比于其他模型耗时较少, 而且准确性也相对较高.
                    XGBoost 模型可认为是一种经过优化的分布式梯度提升库, 由                 t 个基模型组成的一个加法模型, 利用该模型
                 也可将路径节点状态分类, 预测节点状态值. 通过不断调整预测的路径节点状态值与真实状态值间的损失, 使其达
                 到最小, 此时路径节点状态分类模型构建完成, 目标函数如公式                   (5) 所示:
                                                         n ∑      t ∑
                                                     (t)
                                                              p
                                                  Obj =   l(y i ,y )+  Ω(f i )                        (5)
                                                              i
                                                        i=1      i=1
                                                                                            t ∑
                                                                                p
                                       p
                 其中, n  为测试样本数;    l(y i ,y ) 为路径节点状态真实值   y i  与路径节点状态预测值     y  的损失函数;      Ω(f i )  为全部  t
                                                                                i
                                       i
                                                                                            i=1
                 个基模型的复杂度       f i 之和, 将其加入到目标函数中作为正则化项, 防止模型过拟合.
                    以第  t 个模型为例, 此模型对第       i 个样本  x i 的预测值可表示为如公式      (6) 所示:
                                                 = Max precision (SVM node m
                                                      y  p(t)  = y p(t−1)  + f t (x i )               (6)
                                                      i    i
                 其中,   y  p(t−1)  是第  t−1  步模型的节点状态预测值, 为常数;   f t (x i )  为此次需要加入新模型的预测值. 根据泰勒定理,
                       i
                 f(x) 对应的损失函数    l(y i ,y p(t−1)  + f t (x i ))  如公式  (7) 所示:
                                    i
                                                                        1
                                                                            2
                                          l(y i ,y p(t−1)  + f t (x i )) = l(y i ,y  p(t−1) )+g i f t (x i )+ h i f (x i )  (7)
                                              i             i              t
                                                                        2
                 其中,   l(y i ,y p(t−1) ) 为节点状态真实值与第  t−1  步模型的节点状态预测值的损失函数;      g i  为第  t 个模型  f(x) 对应损失
                         i
                                                                1
                               h i  为第  t 个模型                      为二阶导数的系数. 将上述公式带入目标函数, 经
                 函数的一阶导数,                  f(x) 损失函数的二阶导数,
                                                                2
                 化简后目标函数如公式        (8) 所示:
                                                     n ∑      1
                                              Obj     [g i f t (x i )+ h i f (x i )]+Ω(f t )         (8)
                                                                  2
                                                 (t)
                                                              2  t
                                                     i=1
                    在目标函数中, 只需求解每一步损失函数的一阶导数和二阶导数, 然后最优化目标函数, 使函数值最小, 获得
                 每一步   f(x), 再根据加法模型, 即可得到一个完整的路径节点状态分类模型, 用于预测节点状态.
                    精度  (Precision) 是评估模型好坏的重要指标之一, 反应分类模型求解相关实例的能力, 如公式                     (9) 所示:
                                                                TP
                                                     Precision =                                      (9)
                                                              TP+ FP
                 其中, TP  表示预测为正样本      (即节点状态值为     1), 且实际也为正样本的特征数; FP        表示预测为正样本, 但实际为负
                 样本  (即节点状态值为     0) 的特征数.
                    SVM  模型对于数值型样本具有较好的分类效果, 且适用于小样本的测试数据. XGBoost 具有良好的可扩展
                 性, 对于非数值型样本分类效果较好. 合理地结合这两种模型, 可满足不同程序的预测.
                    本文构建的     C-SVMXGBoost 链式模型即为若干个最优         SVM  与  XGBoost 子模型的链式融合. 根据公式       (9) 计
                 算子模型的精度, 并以此筛选出最优子模型, 如公式               (10) 所示; 链式模型  C-SVMXGBoost 构建如公式     (11) 所示:
                                            Sub m                 ,XGBoost node m )                  (10)
                                               Mod
                                                                   k    
                                                                 ∑      
                                                                     m  
                                               Chain Mod = SubChained    Sub                      (11)
                                                                      Mod  
                                                                  m=1
                    公式  (10) 中,   SVM node m   为第  m  个路径节点对应子模型  SVM  的精度;   XGBoost node m  为第  m  个路径节点对应子
                 模型                Sub m   为第  m  个路径节点对应精度最大的子模型, 即最优子模型. 公式                  SubChained
                     XGBoost 的精度;
                                     Mod                                                 (11) 中,
                        
                  k
                 ∑      
                 
                      m                                                  C-SVMXGBoost.
                         
                   Sub Mod   表示所有最优子模型按照路径节点顺序依次链接的链式模型, 即
                 
                        
                  m=1
                    C-SVMXGBoost 模型用于模拟求解测试数据的覆盖路径, 是由若干个子模型链式融合而成, 每个子模型均需
   219   220   221   222   223   224   225   226   227   228   229