基于XGBoost的磁盘故障预测及其特征分析
2021-12-17刘鑫滕飞
刘鑫 滕飞
摘 要:目前处于大数据的时代,磁盘作为常见存储数据的途径之一,一旦出现磁盘故障问题,可能会导致大规模的数据丢失,造成严重后果,对此,本文以大型云儲存Backblaze公司真实的记录数据为研究对象,首先,对原始数据进行数据处理,对缺失数据进行填补,其次,使用阈值法、Lasso特征选择对数据降维,然后,将筛选后的数据使用XGBoost模型训练,并与典型的机器学习算法中的LightGBM、Random Forest、SVR、Extra Tree Regression、Adaboost、GBR等11种主流机器学习模型进行实验对比,结果表明本文在RMSE、MAE、三种性能指标上均优于对比模型,最后,利用SHAP模型增强对模型的可解释性,对比三种算法XGBoost、Random Forest和SHAP对磁盘故障的影响程度,为云存储企业减少损失并提高效率提供了参考。
关键词:机器学习;磁盘故障预测;XGBoost模型;SHAP值
中图分类号:TP391 文献标识码:A 文章编号:1673-260X(2021)11-0012-07
引言
随着互联网的高速发展,磁盘故障预测在业界可谓是经久不衰的热门话题,百度、腾讯、阿里,及国外的IBM都做过磁盘故障预测的研究[1,2]。大型企业之间的贸易往来会出现大量数据,对于大数据流客户用户来说,磁盘的稳定性影响着数据的安全性,对于这一问题,本文使用强大的机器学习算法对磁盘故障进行预测,探究哪些因素影响磁盘故障,在磁盘出故障前更换新的磁盘,提前备份数据,保证了用户的信息安全和数据安全。
本文从以下两个方面重点研究:
(1)基于XGBoost模型建立磁盘故障预测模型,并且从三个指标RMSE、MAE、R2上和其他机器学习主流模型进行对比,证明本文提出的模型具有良好的适用性。
(2)构建磁盘故障预测模型的基础上,本文基于 SHAP模型探究磁盘故障的主要影响因素,为磁盘预测提供决策参考。
1 相关研究
随着对数据存储安全性的意识加强,磁盘又是数据存储最常见的工具之一,国内外的学者对磁盘故障预测的关注也逐渐加强,其中,利用磁盘检测系统数据,利用统计学和机器学习等方法来建立模型,主要的故障预测模型包括统计学方法贝叶斯模型、支持向量机、神经网络、集成算法等。早期Hamerly和Elkan(2001)[3]运用统计学中贝叶斯方法在昆腾厂商的磁盘进行试验,得到56%的检测率和0.82%的误报率。Pang(2016)[4]构建贝叶斯网络,结果发现对正常硬盘和故障硬盘预测的平均准确率分别为99.13%和75.3%。Murray(2003)[5,6]等用统计学方法进行实验,最终,使用MI-NB方法可以获得50%的检测率和0%的误报率。宋云华(2014)[7,8]提出过采样的COG-OS框架,提高故障预测的查全率,但在故障硬盘的预测精度和正常硬盘的预测性能上较差。
基于神经网络的方法相关研究有:ZHU BP(2013)[9]构建反向传播神经网络模型来预测硬盘故障,在保证较低虚警率的条件下取得了95%的召回率。贾润莹等人(2014)[10],利用Adaboost算法将BP神经网络组合,提高预测的准确率,降低预测的误报率。Xu等人(2016)[11]采用递归神经网络建立模型,在真实数据中心的数据集上预测发现准确率升高和假阳性率降低。Lima等人(2017)[12]提出磁盘故障长期预测的递归神经网络变异型算法LSTM,该算法在短期预测中可以与传统递归神经网络算法取得相似的结果,显著改善了长期预测。康艳龙(2019)[13]提出了两种长短期记忆神经网络,对于两个数据集分别进行LSTM_SMART的硬盘故障预测模型,FDR分别为为94.6%和91.8%,FAR为0.2%和0.18%。
基于决策树算法:董勇,蒋艳凰(2015)[14],运用机器学习中支持向量机,反向神经网络,决策树的方法,发现决策树预测效果最好,支持向量机的误报率最低达到0.05%。王刚(2017)[15]团队与百度公司合作,将决策树算法用作主要的预测算法。在决策树模型中进行训练后,他们的最优结果为误报率1%,误报率为0.7%。
基于集成算法的方法相关研究有:贾润莹,李静(2014)[16]也提出基于Adaboost和遗传算法的硬盘故障预测模型,随着发现分类器越多,准确率在90%-96%之间变动,误报率在区间0.3%-0.6%之间变动。AUSSEL. N(2017)[17]选择能够处理不均衡数据集的在随机森林,支持向量机和梯度提升树等机器学习方法在Backblaze中1年的数据集上进行实验,虽然可以达到较高的精确度,但召回率最高只有67%。张廷雷(2019)[18],使用改进随机森林算法进行预测,发现在时空的复杂度上预测效果比传统的随机森林预测磁盘故障效果好,准确度为99.33%,F1的值也达到95.71%李新鹏(2020)[19]等人对不平衡磁盘故障数据进行改进,提出改进的bagging-GBDT算法,并对未来数据进行预测。
以上研究中,可见随着对磁盘故障问题的关注增多,大部分学者也从传统的统计学方法逐渐转变使用各种机器学习中的方法来解决磁盘故障问题,本文重点使用机器学习中集成算法尤其是基于XGBoost算法建立了磁盘故障预测模型,验证了本文模型的性能优越性。其次,文献中虽然使用了机器学习中算法预测,可是缺乏模型的可解释性,所以本文基于SHAP模型对磁盘故障的主要影响因素进行了分析,为磁盘预测提供决策参考。
2 模型与方法
2.1 问题分析
原始数据进行数据清洗,如缺失值填补、降维处理之后,将样本输入到XGBoost模型中进行计算,XGBoost算法核心思想是根据特征分裂来生长一棵树,并不断地添加树,每次添加一个树,其实是去拟合上次预测的残差从而得到新函数,它是GBDT算法的改进算法,可自动调用CPU进行多线程并行计算,而且可以得到更好的精度,传统的GBDT算法只是一阶导数,而XGBoost算法是对损失函数做二阶泰勒公式展开,整体函数分为两个部分:损失函数和正则项,并求解最优解,目的是避免过拟合,步骤如下:
2.2 模型解释
Lundberg和Lee[20](2017)提出SHAP模型,SHAP值来源于博弈论中的Shapley值,当数据量充足的情况下,通过XGBoost模型可以提高磁盘故障预测模型的准确度,并且利用SHAP值,可用来对构建的XGBoost模型做出强有力的分析提供帮助。
3 特征工程及特征选择
3.1 数据来源
本文研究数据来源Backblaze公司2019年第一季度的公开数据[21],Backblaze每日会对磁盘数据进行监测,保证数据的安全性,本文会使用2019第一季度的数据进行分析,选取20825个磁盘数据进行数据处理,Backblaze数据是每日数据,数据包括磁盘的序列号,型号,容量,故障类型和对于每天在Backblaze数据中心的基本驱动器信息以及该驱动器报告的SMART统计数据。
3.2 特征工程
3.2.1 选取数据集
对Backblaze公司2019年第一季度每日监测的数据进行筛选,首先,选取Backblaze公司发布报告中提到故障率最高的磁盘ST4000DM000作为研究对象,其次,对于每日监测数据,可以看出,只有当磁盘发生故障时,此时标签failure为1,其他时刻都认为是正常运转的,但是,在记录数据那一刻,其实该磁盘已经发生故障,所以,为了保证磁盘的真实性,将前7天的标签改成1,目的是为了减少磁盘因故障没及时备份数据所造成的损失。并且,将每日磁盘的全部smart值作为研究对象,减少数据的损失。
3.2.2 降维
对于驱动器报告的SMART统计数据,数据特征有65个特征,但大部分的特征值为空值,对磁盘故障的预测没有任何帮助,反而,会增加对磁盘故障预测的故障率,所以,首先,删除对标签没有任何帮助的序列号,时间等信息,其次,删除全部都为空值的列,最后,采用阈值法对数据进行降维,将空值比例大于80%的列删除,特征减少到25个特征,大大减少了数据的复杂度。
3.2.3 缺失值填补及热力图
对于初步选取的数据进行数据处理,查看数据缺失情况,发现数据缺失值较少,占整体数据的8%,本文选择用0填补缺失值。目标变量(“failure”)与smart属性187有很强的相关性,下图是部分属性对目标变量的影响,颜色越深,数值越大,说明对目标变量产生较大的影响。
3.2.4 平衡数据集
根據上步预处理数据可以看出,数据中大量都是正常的磁盘,很少会出现故障的磁盘,现实生活中也可以很好理解这一点,毕竟,磁盘出故障的事件还是小概率事件。对于数据集是完全不平衡数据,对磁盘故障预测模型产生较大的影响,本文采用过采样的方式平衡数据集,增加少数类的比例,得到新样本中故障磁盘和正常磁盘的百分比分别为40%和60%,减少因数据不平衡对模型的影响。
3.2.5 特征选择
Lasso方法特征选择中,发现参数?姿越大,参数的解越少,选出的影响特征也越少。本文采用交叉验证法对RMSE进行计算,找出RMSE的极小值点,从而找出参数?姿的值。最终选取17个重点影响磁盘故障的特征。
4 实践结果与讨论
4.1 算法评价指标及超参数配置
本文以RMSE(均方根误差)、MAE(平均绝对误差)、R2(拟合优度)为预测模型的评价函数,其中,前练个指标值越小,表明预测精度越好,R2数值越大,表明模型预测效果越好。其计算公式为:
4.2 与其他主流机器学习对比
本文重点放在和其他主流机器学习进行对比,突出XGBoost对磁盘故障预测的优越性,本文对比机器学习中11种主流算法,表3是11种算法在三个指标上的对比结果,以XGBoost算法为例,将特征工程处理完的数据划分训练集和测试集,训练集占70%,测试集占30%,不同的算法在训练集上建立相应的模型,最后在测试集中预测,结果如下表。
从上表中可以看出:XGBoost效果最佳,RMSE为0.07,MAE为0.019,R2为0.88,SVR效果最差,RMSE为0.188,MAE为0.128,R2为0.123。其中RMSE指标上,XGBoost与其他11种机器学习算法结果差距较小,在MAE指标上,XGBoost与其他11种算法的差距也较小,在R2指标上,XGBoost的值可以达到0.88,而SVR的值只有0.123,其他算法的差距很明显,但集成算法的拟合优度的效果更好。XGBoost算法在这三个指标上的结果都优于其他算法,预测效果也最好,基于非线性Neural Network,XGBoost算法比线性回归、决策树以及k邻近回归预测效果好,进一步说明磁盘故障数据是一个多种因素决定的复杂的问题,诸多因素共同决定磁盘故障问题,所以使用非线性关系预测会得到更好的结果,同时也会增加模型的复杂度,基于集成算法的模型相比其他若分类器强大很多,所以结果很明显的好,XGBoost和Catboost效果卓越,同时也说明XGBoost模型在进行磁盘故障预测模型中的提供了准确预测的参考,在使用此方法上进行磁盘故障预测模型推广泛化上有一定的优势。
4.3 模型超参数调优及学习曲线对比
XGBoost模型中的超参数共计有23个,模型超参数调优使用网格搜索找出最佳的参数结果,并使用r2_score为判断标准,将特征工程数据清洗后的数据输入到XGBoost模型中,使用这些参数,得到更好的预测效果,以下五个参数为主要调整的参数,搜索区间和调优结果如表4所示。
图3所示为XGBoost典型的4中机器学习算法的学习曲线对比结果,其中图3(a-d)分别表示XGBoost、LightGBM、随机森林以及SVR的学习曲线。图3中可以看到4种算法在样本达到8000后,模型分数增长速度逐渐变缓,测试集与交叉验证集性能存在较大差距,其中随机森林,LightGBM和SVR在样本量增加时,测试集效果甚至出现分数下降的现象。当样本数量在8000时,最好的拟合效果是0.88,XGBoost模型的分数很快接近0.8,当样本数量继续增加时,交叉验证集上XGBoost模型的增速也逐渐变缓。另外,随机森林,LightGBM两者随着样本量的增加,出现了过拟合现象,造成的原因可能是样本噪音干扰过大,使得算法将部分噪音认为是特征从而扰乱了预设的分类规则,或是模型过于复杂。
4.4 SHAP模型特征分析
根据图4的SHAP特征分析图,发现smart_187, smart_197,smart_7,smart_5对模型有显著的影响,其中smart_187,smart_197,smart_5对模型有正向影响,smart_7对模型有负向影响,具体而言,smart_187, smart_197,smart_5的SHAP值越大,说明磁盘越容易发生故障,当这些值出现较大的波动变化时因提前备份数据更换磁盘,以免造成损失。
经过XGBoost,RandomForest,SHAP特征重要性对比后训练后,不难发现,根据不同算法得出影响磁盘故障的因素不同,但是对于以下7个属性中,smart_197,smart_184,smart_187,smart_198,smart_5,smart_241,smart_7,在三种算法的重要程度中,smart_197,smart_187特征重要性的值都比较高,说明磁盘故障中,这些因素对磁盘故障的影响越大。
5 结论
随着大数据、云计算、云存储等新兴科技的发展,使得海量数据存储的需求越来越大,磁盘作为常见的存储工具之一,对磁盘故障影响因素的研究也逐渐增多,利用机器学习对模型预测的研究较少,并且也缺乏模型的可解释性。所以,本文以Backblaze公司2019年第一季度每日監测的数据进行数据处理,使用阈值法、Lasso特征选择对数据降维,然后,将筛选后的数据使用XGBoost模型训练,并与典型的机器学习算法中11种主流机器学习模型进行对比,结果表明本文在RMSE、MAE、 三种性能指标上均优于其他模型,最后,利用SHAP模型增强对模型的可解释性,对比三种算法XGBoost、Random Forest和SHAP值对磁盘故障的影响程度大小进行分析,结果发现smart_187,smart_197都占特征重要性的前三,说明磁盘故障影响因素都报告不可纠正错误和等候重定的扇区计数两个特征对目标变量有很大的影响。
参考文献:
〔1〕Vishwanath K V, Nagappan N. Characterizing cloud computing hardware reliability [A]. // Proceedings of the 1st ACM symposium on Cloud computing [C],US: ACM, 2010: 193-204.
〔2〕Lifeline Data Centers. What Data Center Downtime Costs [EB/OL]. [2019-05-10]. https://lifelinedatacenters. com/ data-center/data-center-downtime-costs/.
〔3〕Hamerly G, Elkan C. Bayesian approaches to failure prediction for disk drives. in: Proceedings of the Eighteenth International Conference on Machine Learning. San Francisco, CA, USA: Morgan Kaufimann, 2001. 202-209.
〔4〕Pang S, Jia Y, Stones R, et al. A combined Bayesian network method for predicting drive failure times from S.M.A.R.T. attributes[J. 2016 International Joint Conference on NeuralNetworks (IICNN), 2016: 4850-4856.
〔5〕Murray J F, Hughes G F, Kreutz-Delgado K. Hard drive failure prediction using non-parametric statistical methods. in: ICANN. 2003.
〔6〕Murray J F, Hughes G F, Kreutz-Delgado K. Machine Learning Methods for Predicting Failures in Hard Drives: A Multiple-Instance Application. in: International Conference on Robotics and Automation. San Diego. CA. USA: Mach. Learn. Res,2005. 783-816.
〔7〕宋云华,柏文阳,周琦,基于COG-OS框架利用S.M.A.R.T.预测云计算平台的硬盘故障[J].计算机应用,2014,34(01):31-35+188.
〔8〕宋云华基于S.M.A.R.T.预测故障磁盘的研究[D].南京大学,2014.
〔9〕ZHU BP, WANG G, LIU XG, et al. Proactive Drive Failure Prediction for Large Scale Storage Systems[C]// . Proceedings of the 2013 IEEE Symposium on Mass Storage Systems and Technologies. Washington: IEEE Computer Society, 2013: 6558427.
〔10〕贾润莹,李静,王刚,等.基于Adaboost和遗传算法的硬盘故障预测模型优化及选择[J].计算机研究与发展,2014,51(S1):148-154.
〔11〕Xu C. Wang G, Liu X, et al. Health status assessment and failure prediction for hard drives with recurrent neural networks[J]. IEEE Transactions on Computers, 2016, 65(11): 3502-3508.
〔12〕Lima F DD S, Amaral G M R, Leite LG D M, et al. Predicting Failures in Hard Drives with LSTM Networks[J]. 2017 Brazilian Conference on Intelligent Systems (BRACIS), 2017: 222-227.
〔13〕康艷龙.基于深度学习的硬盘故障预测技术研究[D].西安电子科技大学,2019.
〔14〕董勇,蒋艳凰,卢宇彤,周恩强.面向磁盘故障预测的机器学习方法比较[J].计算机工程与科学,2015,37(12):2200-2207.
〔15〕Li J, Stones R J, Wang G, et al. Hard drive failure prediction using Decision Trees. in: 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. Atlanta, GA, USA: IEEE, 2017. 164:55-65.
〔16〕贾润莹,李静,王刚,等.基于Adaboost和遗传算法的硬盘故障预测模型优化及选择[J].计算机研究与发展,2014,51(S1):148-154.
〔17〕AUSSEL. N, JAULIN S, GANDON G, et al. Predictive Models of Hard Drive Failures Based on Operational Data[C]// Proceedings of the 2017 16th IEEE International Conference on Machine Learning and Applications. Piscataway: IEEE,2017: 619-625.
〔18〕张廷雷.基于改进随机森林的硬盘故障预测方法研究[D].郑州大学,2019.
〔19〕李新鹏,高欣,何杨,阎博,孙汉旭,李军良,徐建航,刘震宇,庞博.不平衡数据集下基于自适应加权Bagging-GBDT算法的磁盘故障预测模型[J].微电子学与计算机,2020,37(03):14-19.
〔20〕Lundberg S M, Lee S I. A unified approach to interpreting model predictions[C]// Advances in neural information processing systems. 2017:4765-4774.
〔21〕Backblaze. Hard Drive Data and Stats. [DS/OL]. [2019-06-05]. https://www. backblaze. com/b2/hard-drive-test-data.html.