Diagnosis on Transformer Fault Based on Bayesian Optimization XGBoost Algorithm
-
摘要:
为提升对高能放电等小样本故障诊断的敏感度,提出基于贝叶斯优化极端梯度提升算法(BO-XGBoost)的变压器故障诊断模型。分析了贝叶斯优化XGBoost算法的基本原理和基于该算法进行变压器故障诊断的流程,选取259组故障样本,探讨了该模型的具体应用,并将其与XGBoost、支持向量机(SVM)、随机森林(RF)、K邻近法(KNN)等模型进行对比。结果表明,BO-XGBoost模型在变压器故障诊断中的精度为98.08%,比前述模型的诊断精度分别提高了5.77%、27.42%、22.58%、19.5%。
Abstract:In order to improve the sensitivity of small sample fault diagnosis, such as high energy discharge, a transformer fault diagnosis model is proposed based on Bayesian optimization extreme gradient lifting algorithm (BO-XGBoost).The basic principle of Bayesian optimization XGBoost algorithm and the flow of transformer fault diagnosis based on this algorithm are analyzed.Two hundred and fifty-nine groups of fault samples are selected.The specific application of this model is discussed.The model is compared with XGBoost, Support Vector Machine (SVM), Random Forest (RF)and K proximity method (KNN).The results show that the accuracy of BO-XGBoost model in transformer fault diagnosis is 98.08%, which is 5.77%, 27.42%, 22.58% and 19.5% higher than that of the aforementioned model, respectively.
-
0. 引言
变压器是电力系统的关键设备, 其正常运行与生产生活息息相关, 一旦发生故障, 会带来许多不利影响[1]。因此, 准确诊断变压器的故障, 并对其进行处理, 对电力系统的安全稳定具有重要意义[2]。目前, 诊断变压器故障的方法主要是油中溶解气体分析法(dissolved gas analysis, 简称DGA)。该方法以5种烃类气体为特征输入量进行故障诊断[3]。随着人工智能技术的发展, 一些学者将神经网络、支持向量机(SVM)、随机森林(RF)、深度残差收缩网络等与DGA法结合, 进行变压器故障诊断, 在一定程度上提高了诊断精度[4-7]。
极端梯度提升(Extreme Gradient Boosting, 简称XGBoost)算法是一种可进行并行计算的集成算法, 也是一种灵活、高效和便捷的最优分布式算法[8]。国内外部分学者将XGBoost算法和智能算法结合起来, 应用在设备故障诊断领域。如WU Zhanhong将改进的遗传算法与XGBoost算法结合, 形成混合诊断网络, 提高了遗传算法的全局搜索能力, 从而也提高了故障诊断精度[9]; RAICHURA MAULIK等提出了卷积神经网络与XGBoost的组合算法, 解决了故障数据缺少和数据特征单一等问题[10]。这些研究表明, 应用智能算法与XGBoost算法的组合算法对原始模型进行优化, 可以提高模型的诊断精度。
集成学习算法的性能取决于自身参数的选取, 分类效果更加依赖自身的参数设定。常见的参数寻优方法有网格搜索法、随机搜索法、贝叶斯优化法等[11]。其中, 贝叶斯优化法仅使用较少的计算机资源成本, 就可对集成学习的众多超参数进行寻优。目前, 贝叶斯优化XGBoost算法已在多个领域得到应用, 且效果显著, 但在变压器故障诊断领域应用较少[12-13]。笔者试对贝叶斯优化XGBoost模型在变压器故障诊断中的应用进行探讨, 以期供相关技术人员参考。
1. 基本理论
1.1 XGBoost原理
XGBoost算法是在Gvadient Boosting框架下实现的机器学习算法, 是以分类回归树(Classification and Regression Tree, 简称CART)和随机森林为基础的一种扩展延伸。Boosting是将多个弱分类器集成一个准确可靠的集成分类器的方法。XGBoost训练始于一个常数预测, 每次增加一个新的函数学习当前的树, 找到当前最佳的树模型, 并将其整合到模型中。这样, 通过多轮整合, 提升模型的准确率[14]。XGBoost算法的原理如图 1所示。
对于一个有n个样本、m个特征的数据集, K棵CART的最终预测输出的表达式为式(1)。
$$ \hat{y}_i=\sum_{k=1}^k f_k\left(x_i\right), f_k \in F $$ (1) $$ F=\left\{f(x)=\omega_{q(x)}\right\}, q \cdot R^m \longrightarrow T $$ (2) 式中: 函数fk指独立的树结构; q为叶子标签; T为叶子节点个数; F为决策树结构的集合; ωq(x)为模型预测值, 也是对样本x的打分。
模型损失函数如式(3)所示。定义L(t)的一阶导数gi、二阶导数hi分别为式(4)和式(5), 并将其带入损失函数L(t), 可得到最终的目标函数, 如式(6)所示。
$$ L^{(t)}=\sum_{i=1}^n\left(l\left(y_i, \hat{y}^{(t-1)}\right)+f_t\left(x_i\right)\right)+\Omega\left(f_t\right) $$ (3) 式中: Ω(ft)为正则化惩罚函数遥
$$ g_i=\partial \hat{y}^{(\mathrm{t}-1)} l\left(y_i, \hat{y}^{(t-1)}\right) $$ (4) $$ h_i=\partial^2 \hat{y}^{(\mathrm{t}-1)} l\left(y_i, \hat{y}^{(t-1)}\right) $$ (5) $$ L^{(t)}=\sum_{i=1}^n\left[l\left(y_i, \hat{y}^{(t-1)}\right)+g_j f_t\left(x_i\right)+\frac{1}{2} h_i f_t\left(x_i\right)\right]+\Omega\left(f_t\right)+C $$ (6) 式中: C为常数项。
由式(6)可知, 最终的目标函数只依赖于节点在误差函数上的一阶导数和二阶导数。将式(6)中的常数项移除, 得到第t轮的简化损失函数, 如式(7)所示。
$$ L^{(t)}=\sum_{i=1}^n\left(g_i f_t\left(x_i\right)+\frac{1}{2} h_i f_t^2\left(x_i\right)\right)+\Omega\left(f_t\right) $$ (7) 1.2 正则化惩罚函数
XGBoost算法需要不断地向模型中添加决策树, 随着决策树的添加, 预测效果会越来越接近真实值。但是, 叶子节点和树过多, 会增加过拟合的风险。因此, 需要在该模型的目标函数中引入惩罚项函数, 如式(8)所示。
$$ \Omega\left(f_t\right)=\gamma T+\frac{1}{2} \lambda \sum_{j=1}^T \omega_j^2 $$ (8) 式中: T为树的个数; γ为T的惩罚系数; ωj为第j个叶子节点的权重值; λ为正则化惩罚项系数。
1.3 XGBoost算法的目标函数
XGBoost算法的目标函数由损失函数和正则化项组成。为了使模型不陷入过拟合, 同时使目标函数尽可能达到最小值, 缩小预测值与真实值的差距, 选择对目标函数进行最大化的降低, 如式(9)所示。
$$ O_{b j}(t)=\sum_{i=1}^n\left[2\left(\hat{y}_i^{(t-1)}-y_i\right) f_i\left(x_i\right)+f_i\left(x_i\right)^2\right]+\Omega\left(f_t\right)+C_0 $$ (9) 式中: $ 2\left(\hat{y}_i^{(t-1)}-y_i\right)$为残差, 即预测值与真实值的差距; yi和C0为计算过程中的常数。
在求导计算过程中, 常数项无影响, 所以可以直接省略。令节点j的一阶偏导数累加和二阶偏导数累加分别为$ G_j=\sum_{i \in J j} g_i, H_j=\sum_{i \in J j} h_i$。为确定目标函数的最小值, 对目标函数进行求导, 得式(10)。
$$ \frac{\partial_j\left(f_t\right)}{\partial \omega_j}=G_j+\left(H_j+\lambda\right) \omega_j=0 $$ (10) 将ωj的最优解带入目标函数中, 得到化简后的目标函数, 如式(11)所示。
$$ O_{b j}(t)=-\frac{1}{2} \sum_{i=1}^T \frac{G_j^2}{H_j+\lambda}+\gamma T $$ (11) 1.4 贝叶斯优化算法
贝叶斯优化(Bayesian Optimization, 简称BO)算法是基于概率分布的全局优化算法, 多用于超参数确定, 即通过对目标函数形状的学习, 找到对全局提升最大的超参数。该算法的计算步骤为: 先在整个区域随机均匀选点, 每增加一个点, 开始循环, 找到N个候选解后, 建立高斯回归模型。再采用该模型计算每个点的后验概率, 并找出极大点作为下一个点。找出所有点中的极大值就是最优解[5]。相比于常规的网格搜索和随机搜索, 利用已经搜索过的点的信息可以提高寻优过程的速度以及结果的质量。同时, 贝叶斯优化算法不依赖高性能设备, 迭代次数少, 对于分类问题有更好的鲁棒性。
2. 故障类型和诊断流程
2.1 故障类型
变压器的油中溶解气体为H2、CH4、C2H6、C2H4、C2H2。溶解气体浓度数据不准确会导致无法表达设备的个性化、差异化特征, 进而影响评价准确率[15]。因此, 需对气体浓度数据进行归一化处理。本研究采用无编码比值法对故障数据进行处理, 并将其作为样本输入, 再利用油中溶解气体与故障特征的关联性, 对故障进行识别。表 1为故障类型编码。
表 1 故障类型编码Table 1. Coding of fault type工作状态 状态编码 工作状态 状态编码 正常 0 局部放电 3 中低温过热 1 低能放电 4 高温过热 2 高能放电 5 2.2 诊断流程
基于贝叶斯优化XGBoost算法的变压器故障诊断步骤为: (1)对采集到的样本数据进行归一化、标准化处理, 并将数据集按照4:1比例分为训练集与测试集。(2)对模型初始化后, 采用高斯过程回归计算AC函数最大值, 若满足目标值, 则输出; 不满足, 返回高斯过程继续计算。(3)利用贝叶斯优化算法对模型的学习率、树深和分类器数目进行优化, 得到最优超参数, 并对XGBoost算法的参数进行设置。(4)判断超参数是否达到目标最大精度, 若达到, 则将模型的参数设定为最优超参数, 否则, 返回步骤(2)、(3)重复进行。(5)通过测试集对模型的诊断效果进行测试, 确定该模型的诊断精度, 对模型做出评价。具体流程如图 2所示。
3. 算例分析
3.1 故障样本选择
本文选取259组故障类型确定的变压器DGA数据进行分析, 训练样本与测试样本比值为4:1, 52组数据作为测试样本, 207组数据作为训练样本[16]。训练集与测试集数据分布如表 2所示。
表 2 样本分布Table 2. Sample distribution工作状态 样本总数 训练集样本数 测试集样本数 正常 35 28 7 中低温 45 36 9 高温 45 36 9 局部放电 45 36 9 低能放电 45 36 9 高能放电 44 35 9 总计 259 207 52 3.2 参数设置
利用Anaconda编程, 在PyCharm环境下运行, XGBoost算法的初始参数预设为: 最大深度max_depth=8、分类器数量n_estimators=770、学习率learning_rate=0.55, 其余参数均为默认值[15]。采用训练样本对XGBoost模型进行训练, 结果如表 3所示。
表 3 XGBoost诊断结果Table 3. XGBoost diagnostic result故障类型 精度/% 召回/% F1分数/% 0 70.00 100.00 82.35 1 100.00 100.00 100.00 2 100.00 100.00 100.00 3 100.00 100.00 100.00 4 87.50 77.70 82.35 5 100.00 77.78 87.50 准确度 - - 92.31 微平均 92.92 92.59 92.03 宏平均 93.80 93.80 92.41 由表 3可知, 中低温过热、高温过热、局部放电的故障样本全部被正确识别, 2个低能放电和1个高能放电被错判为正常状态, 1个高能放电被错判为低能放电, 3个正常状态、2个低能放电、2个高能放电的故障样本存在错误识别。从整体来看, 在不同故障状态下, 模型表现稳定, 且诊断准确率为92.31%。图 3为模型的混淆矩阵。
3.3 贝叶斯寻优
XGBoost模型的超参数对其训练学习效果有显著的影响, 采用贝叶斯对超参数进行优化, 将超参数作为目标函数的输入。采用INT函数对最大深度和分类器数目2个超参数进行取值取整。为了能够复现此优化结果, 定义随机树种子为2022。由于目标函数为损失函数, 贝叶斯优化只支持寻找最大值, 此处需要设定目标函数的输出为负值。采用贝叶斯优化后的参数取值如表 4所示。
表 4 贝叶斯优化后XGBoost算法各参数的取值Table 4. Parameters of XGBoost algorithm after Bayesian optimization参数 优化前 优化后 优化区间 学习率 0.5 0.06 (0.05, 0.5) 最大深度 4 5 (3, 6) 分类器数 100 134 (100, 150) 由表 4可知, 优化后, 学习率learning_rate=0.06、最大深度max_depth=5、分类器数量n_estimator=134。采用优化后的参数, 再对样本进行诊断, 结果如表 5所示。
表 5 贝叶斯优化后XGBoost算法诊断结果Table 5. Diagnosis result of XGBoost algorithm after Bayesian optimization故障类型 精度/% 召回/% F1分数/% 0 87.50 100.00 93.33 1 100.00 100.00 100.00 2 100.00 100.00 100.00 3 100.00 100.00 100.00 4 100.00 88.89 94.12 5 100.00 100.00 100.00 准确度 - - 98.08 微平均 97.92 98.15 97.91 宏平均 98.32 98.08 98.08 由表 5可以看出, 与经验参数下的模型相比, BO-XGBoost模型的诊断精确度有所提升, 整体精度达到了98.08%, 图 4为BO-XGBoost模型的混淆矩阵。由图 4可知, 1个低能放电错判为正常状态, 1个正常状态和1个低能放电故障存在错误识别, 经贝叶斯优化后的XGBoost算法, 低能放电和高能放电故障诊断精度得到明显提高。
3.4 多模型诊断结果对比
选取支持向量机(SVM)、随机森林(RF)、K邻近(KNN)3种主流监督学习模型在经验参数下进行训练, SVM中超参数惩罚系数C=1.74, 核函数kernel=rbf(高斯径向基核函数), gamma=30.554, 最大迭代次数max_iter=-1[4]; RF中最大特征数max_features=None, 最小样本数Tsplit=2, 叶子节点最少样本数Tleaf=1, 最大深度Dtre=10, 分类器数Nest=72[5]; KNN中取邻近点的个数n_neighbors=5, 叶子节点阈值leaf_size=30, 算法algorithm=auto[15]。将测试结果与初始XGBoost模型以及贝叶斯优化后的XGBoost模型进行对比, 模型运行时间如图 5所示, 诊断结果如表 5所示。
由图 5可以看出, 5模型采用同组数据多次运行时间进行对比分析, 平均运行时间较长的是KNN模型, 其次是SVM和RF模型, 表现最佳的是XGBoost模型。
由表 5可知, 5种模型对正常状态的诊断精度分别为47.50%、55.40%、66.45%、84.11%、93.61%, 对高温过热故障与局部放电故障诊断精度整体较高; XGBoost模型对正常状态和低能放电诊断精度相对较低, 采用贝叶斯优化后的模型对正常状态的诊断精度提升了9.5%, 低能放电故障诊断精度提高了11.58%, 高能放电故障诊断精度提高了11.52%, BO-XGBoost模型的诊断精度达到了93.61%。该模型在中低温过热、高温过热、局部放电和高能放电故障类型中均保持100%的诊断精度, 在正常状态和低温过热故障类型中仍可以保持较高的诊断正确率。贝叶斯算法改善了XGBoost算法超参数的寻优能力, 构建的BO-XGBoost诊断模型提高了故障诊断率, 且高于XGBoost和SVM等模型的诊断率, 从诊断的总体性能来比较, 其诊断结果整体性能最好, 能够较好地满足变压器故障诊断精度的要求。
表 5 多模型诊断结果对比Table 5. Comparison of multiple model diagnosis results故障类型 SVM/% RF/% KNN/% XGBoost/% BO-XGBoost/% 0 47.50 55.40 66.45 84.11 93.61 1 66.90 89.07 74.23 100.00 100.00 2 70.20 92.23 91.29 100.00 100.00 3 91.20 79.80 89.92 100.00 100.00 4 79.82 91.70 74.29 82.52 94.34 5 68.35 93.20 75.30 88.43 100.00 平均 70.66 75.50 78.58 92.31 98.08 4. 结语
综上所述, 贝叶斯优化算法改善了XGBoost算法超参数的寻优能力, 与经验参数下的模型相比, BO-XGBoost诊断模型可以有效提高变压器的故障诊断精度。尤其是对于高能放电故障, 其诊断精度明显提高。与支持向量机(SVM)、随机森林(RF)、K邻近(KNN)3种主流监督学习模型相比, BO-XGBoost模型诊断结果的整体性能最好。
-
表 1 故障类型编码
Table 1 Coding of fault type
工作状态 状态编码 工作状态 状态编码 正常 0 局部放电 3 中低温过热 1 低能放电 4 高温过热 2 高能放电 5 表 2 样本分布
Table 2 Sample distribution
工作状态 样本总数 训练集样本数 测试集样本数 正常 35 28 7 中低温 45 36 9 高温 45 36 9 局部放电 45 36 9 低能放电 45 36 9 高能放电 44 35 9 总计 259 207 52 表 3 XGBoost诊断结果
Table 3 XGBoost diagnostic result
故障类型 精度/% 召回/% F1分数/% 0 70.00 100.00 82.35 1 100.00 100.00 100.00 2 100.00 100.00 100.00 3 100.00 100.00 100.00 4 87.50 77.70 82.35 5 100.00 77.78 87.50 准确度 - - 92.31 微平均 92.92 92.59 92.03 宏平均 93.80 93.80 92.41 表 4 贝叶斯优化后XGBoost算法各参数的取值
Table 4 Parameters of XGBoost algorithm after Bayesian optimization
参数 优化前 优化后 优化区间 学习率 0.5 0.06 (0.05, 0.5) 最大深度 4 5 (3, 6) 分类器数 100 134 (100, 150) 表 5 贝叶斯优化后XGBoost算法诊断结果
Table 5 Diagnosis result of XGBoost algorithm after Bayesian optimization
故障类型 精度/% 召回/% F1分数/% 0 87.50 100.00 93.33 1 100.00 100.00 100.00 2 100.00 100.00 100.00 3 100.00 100.00 100.00 4 100.00 88.89 94.12 5 100.00 100.00 100.00 准确度 - - 98.08 微平均 97.92 98.15 97.91 宏平均 98.32 98.08 98.08 表 5 多模型诊断结果对比
Table 5 Comparison of multiple model diagnosis results
故障类型 SVM/% RF/% KNN/% XGBoost/% BO-XGBoost/% 0 47.50 55.40 66.45 84.11 93.61 1 66.90 89.07 74.23 100.00 100.00 2 70.20 92.23 91.29 100.00 100.00 3 91.20 79.80 89.92 100.00 100.00 4 79.82 91.70 74.29 82.52 94.34 5 68.35 93.20 75.30 88.43 100.00 平均 70.66 75.50 78.58 92.31 98.08 -
[1] HU Hao, MA Xin, SHANG Yizi. A novel method for transformer fault diagnosis based on refined deep residual shrinkage network[J]. IET Electric Power Applications, 2021(2): 206-223.
[2] 林凡勤, 李明明, 郭红. 变压器故障诊断技术综述[J]. 计算机与现代化, 2022(3): 116-126. DOI: 10.3969/j.issn.1006-2475.2022.03.020 [3] 任双赞, 徐尧宇, 李元, 等. 应用于油中溶解气体分析的深度信念网络与典型神经网络对比研究[J]. 高压电器, 2020, 56(9): 39-45. [4] 张玉欣, 程志峰, 徐正平, 等. 参数寻优支持向量机在基于光声光谱法的变压器故障诊断中的应用[J]. 光谱学与光谱分析, 2015, 35(1): 10-13. DOI: 10.3964/j.issn.1000-0593(2015)01-0010-04 [5] 王雪, 韩韬. 基于贝叶斯优化随机森林的变压器故障诊断[J]. 电测与仪表, 2021, 58(6): 167-173. [6] 张镱议, 彭鸿博, 李昕, 等. 基于DGA特征量优选与改进磷虾群算法优化支持向量机的变压器故障诊断模型[J]. 电测与仪表, 2019, 56(21): 110-116. [7] 马鑫, 尚毅梓, 胡昊, 等. 基于数据特征增强和残差收缩网络的变压器故障识别方法[J]. 电力系统自动化, 2022, 46(3): 175-183. [8] CHEN Tianqi, GUESTRIN C. XGBoost: a scalable tree boostingsystem[C]. Proceedings of the 22nd ACM SIGKDD Inter -national Conference on Knowledge Discovery and Data Mining. New York, USA: ACM, 2016: 785-794.
[9] WU Zhanhong. Improved Genetic Algorithm and XGBoost Classifier for Power Transformer Fault Diagnosis[J]. Frontiers in Energy Research, 2021(10): 56-67.
[10] RAICHURA MAULIK, CHOTHANI NILESH, PATEL DHARMESH. Efficient CNN-XGBoost technique for classification of power transformer internal faults against various abnormal conditions[J]. IET Generation, Transmission & Distribution, 2021, 15(5): 972-985.
[11] 江敏, 陈一民. 贝叶斯优化算法的发展综述[J]. 计算机工程与设计, 2010, 31(14): 3 254-3 259. [12] 孙斌, 储芳芳, 陈小惠. 基于贝叶斯优化XGBoost的无创血压预测方法[J]. 电子测量技术, 2022, 45(7): 68-74. [13] 周旭, 王认卓, 代亚勋, 等. 基于BO-XGBoost的煤自燃分级预警研究[J]. 煤炭工程, 2022, 54(8): 108-114. [14] 张又文, 冯斌, 陈页. 基于遗传算法优化XGBoost的油浸式变压器故障诊断方法[J]. 电力自动化设备, 2021, 41(2): 200-206. [15] 张鹏, 齐波, 李成榕, 等. 电力变压器油中溶解气体特性影响因素的量化分析[J]. 中国电机工程学报, 2021, 41(10): 3 620-3 631. [16] 田晓飞. 基于改进蝙蝠算法优化支持向量机的变压器故障诊断研究[J]. 黑龙江电力, 2019, 41(1): 11-15. -
期刊类型引用(4)
1. 刘小杰,温梁亦欣,张玉洁,李欣,刘然,吕庆. 基于理论分析和智能算法的高炉炉缸活性预测模型. 中国冶金. 2024(02): 83-95 . 百度学术
2. 洪奕添,陈伟华,陈统助,郑鑫. 基于XGBOOST算法的大型电力变压器运行故障诊断方法. 电工技术. 2024(11): 56-59 . 百度学术
3. 李兴林. 基于贝叶斯优化变分模态分解与深度网络的滚动轴承故障诊断模型. 机电工程技术. 2024(12): 231-235 . 百度学术
4. 戴旭,陈旭,苏军,肖钰皓,沈泺成,霍耀冉. 适应分布式能源大量接入的输配电油浸式变压器故障诊断方法研究. 四川电力技术. 2024(06): 50-55 . 百度学术
其他类型引用(1)