﻿ 基于FTRL和XGBoost算法的产品故障预测模型
 计算机系统应用  2019, Vol. 28 Issue (3): 179-184 PDF

Product Fault Prediction Model Based on FTRL and XGBoost Algorithm
YANG Zheng-Sen
College of Business Administration, Nanjing University of Finance & Economics, Nanjing 210046, China
Abstract: With the update of intelligent equipment and the improvement of data storage capacity, manufacturing companies have achieved a large amount of pipeline data in the manufacturing process of their products. How to utilize these data has always been a difficult problem in the industry. Depending on the actual production data of manufacturing enterprises, this study establishes a product failure identification model based on FTRL (with Logistic Regression) and XGBoost algorithms through detailed exploratory data analysis, then uses cross-validation methods to optimize it according to MCC metric which is suitable for unbalanced datasets. The experimental results show that the model has a high efficiency and high accuracy of fault prediction for large-scale (not only large sample size but also large feature quantity) unbalanced production pipeline datasets. Based on this model, we can build a smarter product fault detection system, which effectively reduces the operating costs of the enterprise and also spurs profit growth.
Key words: FTRL     XGBoost     fault detection     binary classification     big data

1 引言

2 数据来源与分析 2.1 数据来源

2.2 数据分析

 图 1 工厂生产流水线框架

 图 2 不同滞后区间下的自相关系数

2.3 解决方案思路

3.2 FTRL优化算法介绍

FTRL最初由Google的H.Brendan McMahan于2010年提出, 近年来国内外各大企业将其应用于自身行业的相关业务, 都取得了很好的效果. FTRL与以往在线算法不同, 其对特征权重每一维分量采取不同的更新方式, 假设给定损失函数对特征权重第i维的梯度向量为 ${w_i}$ , 那么其更新公式为:

 $\begin{array}{l} w_i^{t + 1} = \left\{ {\begin{array}{*{20}{c}} {0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm {if}}|z{i^{(t)}}| < \lambda _1}\\ { - {{\left({\lambda _2} + \displaystyle\sum\limits_{s = 1}^t {{\sigma ^{(s)}}} \right)}^{ - 1}}\left(z_i^{(t)} - {\lambda _1}{\mathop{\rm sgn}} (z_i^{(t)})\right)\;\;\;{\rm {otherwise}}} \end{array}} \right.\\ {\rm {where}}\displaystyle\sum\limits_{s = 1}^t {{\sigma ^{(s)}}} = {\textstyle{1 \over {{\eta _i}}}},\eta _i = \dfrac{\alpha }{{\beta + \sqrt {\displaystyle\sum\nolimits_{s = 1}^t {g_{s,i}^2} } }} \end{array}$

3.3 XGBoost算法相关理论基础

XGBoost计算效率高, 泛化能力强, 并且可以大大降低人工特征工程的工作量, 因此将其作为最终的预测模型. XGBoost相对于GBDT的算法步骤, 主要的改变是对损失函数生成二阶泰勒展开,并在代价函数里加入了正则项, 用于控制模型的复杂度. 正则项里包含了树的叶子节点个数、每个叶子节点上输出的权重得分的平方和. 从平衡偏差方差的角度来讲, 正则项降低了模型的方差, 使学习出来的模型更加简单和稳健, 防止过拟合, 这是XGBoost优于传统GBDT的特性之一. 在工程实现方面, XGBoost工具支持并行, 其并行不是树粒度层面上的,而是在特征粒度层面上的. 众所周知, 决策树学习最耗时的一个步骤就是根据特征的值对训练样本进行排序以确定最佳分割点, 而XGBoost在训练之前, 预先对数据进行了排序,然后保存为block(块)结构, 后面的迭代中重复地使用这个结构, 大大减小了计算量. 这个block结构也使得并行成为了可能, 在进行节点的分裂时, 需要计算每个特征的增益,即用贪心法枚举所有可能的分割点, 最终选增益最大的那个特征去做分裂, 那么各个特征的增益计算就可以开多线程进行. XGBoost算法的主要步骤为:

(1) 构造目标损失函数:

 $\begin{array}{l} L(\varphi ) = \displaystyle\sum\limits_i {l(\hat y_i} ,y_i) + \sum\limits_k {\Omega (f_k)} ,\\ \Omega (f) = \gamma T + {\textstyle{1 \over 2}}\lambda ||w|{|^2} \end{array}$

XGBoost在目标函数中加上了正则化项, 基学器为CART(决策树的一种)时, 正则化项与树的叶子节点的数量T以及叶子节点的值有关.

(2) 训练目标函数, 将第t次的loss二次泰勒展开并掉常数项.

 $\begin{array}{l} {L^{(t)}} = \displaystyle\sum\limits_{i = 1}^n {l(y_i} ,\hat y{_i^{(t - 1)}} + f_t(x_i)) + \Omega (f_t)\\ {L^{(t)}} \approx \displaystyle\sum\limits_{i = 1}^n {[l(y_i} ,\hat y{_i^{(t - 1)}}) + {g_i}f_t(x_i) + {\textstyle{1 \over 2}}{h_i}f{_t^2}(x_i)] + \Omega (f_t)\\ {\rm {where}}\left( {{g_i} = {\partial _{\hat y{_i^{(t - 1)}}}}l(y_i,\hat y{_i^{(t - 1)}}),{h_i} = {\partial ^2}_{\hat y{_i^{(t - 1)}}}l(y_i,\hat y{i^{(t - 1)}})} \right)\\ {{\bar L}^{(t)}} \approx \displaystyle\sum\limits_{i = 1}^n [ {g_i}f_t(x_i) + {\textstyle{1 \over 2}}{h_i}f{_t^2}(x_i)] + \Omega (f_t) \end{array}$

(3) 求出目标函数最优解:

 ${L^{(t)}}(q) = - \dfrac{1}{2}\displaystyle\sum\limits_{j = 1}^T {\dfrac{{{{(\sum\limits_{i \in g_i} {g_i} )}^2}}}{{\displaystyle\sum\limits_{i \in I_j} {h_i + \lambda } }}} + \gamma T$

(1) Learning_rate: 学习率. 设置地相对小些可以让模型学的更加精确.

(2) n_estimators: 提升阶段树的最大迭代轮数. 这一参数和往往和学习率一起结合early_stopping_rouds参数使用, 用来防止过拟合.

(3) early_stopping_rounds: 当模型在指定验证集上的表现不再提升时, 停止迭代.

(4) max_depth: 每颗决策树的最大深度. 这一参数限制了树中的最多节点数. 值越小模型越保守.

(6) min_child_weight: 进一步分裂一个子节点的最小Hessian和.

4 实验过程 4.1 建模框架

4.2 评价指标

MCC (Matthews Correlation Coefficient)[17]即马修斯相关系数通常作为二分类问题的一个评价指标. 二分类问题的预测结果中包含四种类型的样本, 分别是被模型分类正确的正样本、被模型分类错误的正样本、被模型分类错误的负样本和被模型分类正确的负样本, 分别表示为TPFNFPTN. MCC指标的计算公式为:

 $MCC = \frac{{TP \times TN - FP \times FN}}{{\sqrt {(TP + FP)(TP + FN)(TN + FP)(TN + FN)} }}$

 图 3 不同阈值下训练集的三折交叉验证MCC得分

4.3 实验结果

5 结论与展望

 [1] 刘崇, 祝锡永. 基于BP神经网络的医保欺诈识别. 计算机系统应用, 2018, 27(6): 34-39. DOI:10.15888/j.cnki.csa.006363 [2] Li B, Chow MY, Tipsuwan Y, et al. Neural-network-based motor rolling bearing fault diagnosis. IEEE Transactions on Industrial Electronics, 2002, 47(5): 1060-1069. [3] 宋鹏, 胡永宏. 基于矩阵值因子模型的高维已实现协方差矩阵建模. 统计研究, 2017, 34(11): 109-117. [4] 刘俊, 王旭, 郝旭东, 等. 基于多维气象数据和PCA-BP神经网络的光伏发电功率预测. 电网与清洁能源, 2017, 33(1): 122-129. DOI:10.3969/j.issn.1674-3814.2017.01.019 [5] 宋乐见, 张晓龙, 陈同兴, 等. 基于KPCA与PSO-WLSSVM的顶吹熔炼系统喷枪寿命预测研究. 计算机与应用化学, 2017, 34(1): 59-63. [6] Fong SM, Wong R, Vasilakos AV. Accelerated PSO swarm search feature selection for data stream mining big data. IEEE Transactions on Services Computing, 2016, 9(1): 33-45. [7] Han HG, Chen QL, Qiao JF. An efficient self-organizing RBF neural network for water quality prediction. Neural Networks, 2011, 24(7): 717-725. DOI:10.1016/j.neunet.2011.04.006 [8] 车艳军. 模块化神经网络及其并行算法的工业系统预测[硕士学位论文]. 大连: 大连理工大学, 2016. [9] 张丹峰. 基于LightGBM, XGBoost, ERT混合模型的风机叶片结冰预测研究[硕士学位论文]. 上海: 上海师范大学, 2018. [10] McMahan HB. Follow-the-regularized-leader and mirror descent: Equivalence theorems and L1 Regularization. Proceedings of the 14th International Conference on Artificial Intelligence and Statistics. Fort Lauderdale, FL, USA. 2011. 525–533. [11] Chen TQ, Guestrin C. XGBoost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, CA, USA. 2016. 785–794. [12] 李志杰, 李元香, 王峰, 等. 面向大数据分析的在线学习算法综述. 计算机研究与发展, 2015, 52(8): 1707-1721. [13] 冯少荣. 决策树算法的研究与改进. 厦门大学学报(自然科学版), 2007, 46(4): 496-500. DOI:10.3321/j.issn:0438-0479.2007.04.013 [14] Friedman JH. Greedy function approximation: A gradient boosting machine. The Annals of Statistics, 2001, 29(5): 1189-1232. [15] 周志华. 通过集成学习进行知识获取. 重庆邮电大学学报(自然科学版), 2008, 20(3): 361-362. [16] Snoek J, Larochelle H, Adams RP. Practical Bayesian optimization of machine learning algorithms. Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe, NV, USA. 2012. 2951–2959. [17] Jurman G, Riccadonna S, Furlanello C. A comparison of MCC and CEN error measures in multi-class prediction. PLoS One, 2012, 7(8): e41882. DOI:10.1371/journal.pone.0041882