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 模型用于模拟求解测试数据的覆盖路径, 是由若干个子模型链式融合而成, 每个子模型均需