劉鑫 滕飛
摘 要:目前處于大數(shù)據(jù)的時代,磁盤作為常見存儲數(shù)據(jù)的途徑之一,一旦出現(xiàn)磁盤故障問題,可能會導致大規(guī)模的數(shù)據(jù)丟失,造成嚴重后果,對此,本文以大型云儲存Backblaze公司真實的記錄數(shù)據(jù)為研究對象,首先,對原始數(shù)據(jù)進行數(shù)據(jù)處理,對缺失數(shù)據(jù)進行填補,其次,使用閾值法、Lasso特征選擇對數(shù)據(jù)降維,然后,將篩選后的數(shù)據(jù)使用XGBoost模型訓練,并與典型的機器學習算法中的LightGBM、Random Forest、SVR、Extra Tree Regression、Adaboost、GBR等11種主流機器學習模型進行實驗對比,結果表明本文在RMSE、MAE、三種性能指標上均優(yōu)于對比模型,最后,利用SHAP模型增強對模型的可解釋性,對比三種算法XGBoost、Random Forest和SHAP對磁盤故障的影響程度,為云存儲企業(yè)減少損失并提高效率提供了參考。
關鍵詞:機器學習;磁盤故障預測;XGBoost模型;SHAP值
中圖分類號:TP391? 文獻標識碼:A? 文章編號:1673-260X(2021)11-0012-07
引言
隨著互聯(lián)網的高速發(fā)展,磁盤故障預測在業(yè)界可謂是經久不衰的熱門話題,百度、騰訊、阿里,及國外的IBM都做過磁盤故障預測的研究[1,2]。大型企業(yè)之間的貿易往來會出現(xiàn)大量數(shù)據(jù),對于大數(shù)據(jù)流客戶用戶來說,磁盤的穩(wěn)定性影響著數(shù)據(jù)的安全性,對于這一問題,本文使用強大的機器學習算法對磁盤故障進行預測,探究哪些因素影響磁盤故障,在磁盤出故障前更換新的磁盤,提前備份數(shù)據(jù),保證了用戶的信息安全和數(shù)據(jù)安全。
本文從以下兩個方面重點研究:
(1)基于XGBoost模型建立磁盤故障預測模型,并且從三個指標RMSE、MAE、R2上和其他機器學習主流模型進行對比,證明本文提出的模型具有良好的適用性。
(2)構建磁盤故障預測模型的基礎上,本文基于 SHAP模型探究磁盤故障的主要影響因素,為磁盤預測提供決策參考。
1 相關研究
隨著對數(shù)據(jù)存儲安全性的意識加強,磁盤又是數(shù)據(jù)存儲最常見的工具之一,國內外的學者對磁盤故障預測的關注也逐漸加強,其中,利用磁盤檢測系統(tǒng)數(shù)據(jù),利用統(tǒng)計學和機器學習等方法來建立模型,主要的故障預測模型包括統(tǒng)計學方法貝葉斯模型、支持向量機、神經網絡、集成算法等。早期Hamerly和Elkan(2001)[3]運用統(tǒng)計學中貝葉斯方法在昆騰廠商的磁盤進行試驗,得到56%的檢測率和0.82%的誤報率。Pang(2016)[4]構建貝葉斯網絡,結果發(fā)現(xiàn)對正常硬盤和故障硬盤預測的平均準確率分別為99.13%和75.3%。Murray(2003)[5,6]等用統(tǒng)計學方法進行實驗,最終,使用MI-NB方法可以獲得50%的檢測率和0%的誤報率。宋云華(2014)[7,8]提出過采樣的COG-OS框架,提高故障預測的查全率,但在故障硬盤的預測精度和正常硬盤的預測性能上較差。
基于神經網絡的方法相關研究有:ZHU BP(2013)[9]構建反向傳播神經網絡模型來預測硬盤故障,在保證較低虛警率的條件下取得了95%的召回率。賈潤瑩等人(2014)[10],利用Adaboost算法將BP神經網絡組合,提高預測的準確率,降低預測的誤報率。Xu等人(2016)[11]采用遞歸神經網絡建立模型,在真實數(shù)據(jù)中心的數(shù)據(jù)集上預測發(fā)現(xiàn)準確率升高和假陽性率降低。Lima等人(2017)[12]提出磁盤故障長期預測的遞歸神經網絡變異型算法LSTM,該算法在短期預測中可以與傳統(tǒng)遞歸神經網絡算法取得相似的結果,顯著改善了長期預測??灯G龍(2019)[13]提出了兩種長短期記憶神經網絡,對于兩個數(shù)據(jù)集分別進行LSTM_SMART的硬盤故障預測模型,F(xiàn)DR分別為為94.6%和91.8%,F(xiàn)AR為0.2%和0.18%。
基于決策樹算法:董勇,蔣艷凰(2015)[14],運用機器學習中支持向量機,反向神經網絡,決策樹的方法,發(fā)現(xiàn)決策樹預測效果最好,支持向量機的誤報率最低達到0.05%。王剛(2017)[15]團隊與百度公司合作,將決策樹算法用作主要的預測算法。在決策樹模型中進行訓練后,他們的最優(yōu)結果為誤報率1%,誤報率為0.7%。
基于集成算法的方法相關研究有:賈潤瑩,李靜(2014)[16]也提出基于Adaboost和遺傳算法的硬盤故障預測模型,隨著發(fā)現(xiàn)分類器越多,準確率在90%-96%之間變動,誤報率在區(qū)間0.3%-0.6%之間變動。AUSSEL. N(2017)[17]選擇能夠處理不均衡數(shù)據(jù)集的在隨機森林,支持向量機和梯度提升樹等機器學習方法在Backblaze中1年的數(shù)據(jù)集上進行實驗,雖然可以達到較高的精確度,但召回率最高只有67%。張廷雷(2019)[18],使用改進隨機森林算法進行預測,發(fā)現(xiàn)在時空的復雜度上預測效果比傳統(tǒng)的隨機森林預測磁盤故障效果好,準確度為99.33%,F(xiàn)1的值也達到95.71%李新鵬(2020)[19]等人對不平衡磁盤故障數(shù)據(jù)進行改進,提出改進的bagging-GBDT算法,并對未來數(shù)據(jù)進行預測。
以上研究中,可見隨著對磁盤故障問題的關注增多,大部分學者也從傳統(tǒng)的統(tǒng)計學方法逐漸轉變使用各種機器學習中的方法來解決磁盤故障問題,本文重點使用機器學習中集成算法尤其是基于XGBoost算法建立了磁盤故障預測模型,驗證了本文模型的性能優(yōu)越性。其次,文獻中雖然使用了機器學習中算法預測,可是缺乏模型的可解釋性,所以本文基于SHAP模型對磁盤故障的主要影響因素進行了分析,為磁盤預測提供決策參考。
2 模型與方法
2.1 問題分析
原始數(shù)據(jù)進行數(shù)據(jù)清洗,如缺失值填補、降維處理之后,將樣本輸入到XGBoost模型中進行計算,XGBoost算法核心思想是根據(jù)特征分裂來生長一棵樹,并不斷地添加樹,每次添加一個樹,其實是去擬合上次預測的殘差從而得到新函數(shù),它是GBDT算法的改進算法,可自動調用CPU進行多線程并行計算,而且可以得到更好的精度,傳統(tǒng)的GBDT算法只是一階導數(shù),而XGBoost算法是對損失函數(shù)做二階泰勒公式展開,整體函數(shù)分為兩個部分:損失函數(shù)和正則項,并求解最優(yōu)解,目的是避免過擬合,步驟如下:
2.2 模型解釋
Lundberg和Lee[20](2017)提出SHAP模型,SHAP值來源于博弈論中的Shapley值,當數(shù)據(jù)量充足的情況下,通過XGBoost模型可以提高磁盤故障預測模型的準確度,并且利用SHAP值,可用來對構建的XGBoost模型做出強有力的分析提供幫助。
3 特征工程及特征選擇
3.1 數(shù)據(jù)來源
本文研究數(shù)據(jù)來源Backblaze公司2019年第一季度的公開數(shù)據(jù)[21],Backblaze每日會對磁盤數(shù)據(jù)進行監(jiān)測,保證數(shù)據(jù)的安全性,本文會使用2019第一季度的數(shù)據(jù)進行分析,選取20825個磁盤數(shù)據(jù)進行數(shù)據(jù)處理,Backblaze數(shù)據(jù)是每日數(shù)據(jù),數(shù)據(jù)包括磁盤的序列號,型號,容量,故障類型和對于每天在Backblaze數(shù)據(jù)中心的基本驅動器信息以及該驅動器報告的SMART統(tǒng)計數(shù)據(jù)。
3.2 特征工程
3.2.1 選取數(shù)據(jù)集
對Backblaze公司2019年第一季度每日監(jiān)測的數(shù)據(jù)進行篩選,首先,選取Backblaze公司發(fā)布報告中提到故障率最高的磁盤ST4000DM000作為研究對象,其次,對于每日監(jiān)測數(shù)據(jù),可以看出,只有當磁盤發(fā)生故障時,此時標簽failure為1,其他時刻都認為是正常運轉的,但是,在記錄數(shù)據(jù)那一刻,其實該磁盤已經發(fā)生故障,所以,為了保證磁盤的真實性,將前7天的標簽改成1,目的是為了減少磁盤因故障沒及時備份數(shù)據(jù)所造成的損失。并且,將每日磁盤的全部smart值作為研究對象,減少數(shù)據(jù)的損失。
3.2.2 降維
對于驅動器報告的SMART統(tǒng)計數(shù)據(jù),數(shù)據(jù)特征有65個特征,但大部分的特征值為空值,對磁盤故障的預測沒有任何幫助,反而,會增加對磁盤故障預測的故障率,所以,首先,刪除對標簽沒有任何幫助的序列號,時間等信息,其次,刪除全部都為空值的列,最后,采用閾值法對數(shù)據(jù)進行降維,將空值比例大于80%的列刪除,特征減少到25個特征,大大減少了數(shù)據(jù)的復雜度。
3.2.3 缺失值填補及熱力圖
對于初步選取的數(shù)據(jù)進行數(shù)據(jù)處理,查看數(shù)據(jù)缺失情況,發(fā)現(xiàn)數(shù)據(jù)缺失值較少,占整體數(shù)據(jù)的8%,本文選擇用0填補缺失值。目標變量(“failure”)與smart屬性187有很強的相關性,下圖是部分屬性對目標變量的影響,顏色越深,數(shù)值越大,說明對目標變量產生較大的影響。
3.2.4 平衡數(shù)據(jù)集
根據(jù)上步預處理數(shù)據(jù)可以看出,數(shù)據(jù)中大量都是正常的磁盤,很少會出現(xiàn)故障的磁盤,現(xiàn)實生活中也可以很好理解這一點,畢竟,磁盤出故障的事件還是小概率事件。對于數(shù)據(jù)集是完全不平衡數(shù)據(jù),對磁盤故障預測模型產生較大的影響,本文采用過采樣的方式平衡數(shù)據(jù)集,增加少數(shù)類的比例,得到新樣本中故障磁盤和正常磁盤的百分比分別為40%和60%,減少因數(shù)據(jù)不平衡對模型的影響。
3.2.5 特征選擇
Lasso方法特征選擇中,發(fā)現(xiàn)參數(shù)?姿越大,參數(shù)的解越少,選出的影響特征也越少。本文采用交叉驗證法對RMSE進行計算,找出RMSE的極小值點,從而找出參數(shù)?姿的值。最終選取17個重點影響磁盤故障的特征。
4 實踐結果與討論
4.1 算法評價指標及超參數(shù)配置
本文以RMSE(均方根誤差)、MAE(平均絕對誤差)、R2(擬合優(yōu)度)為預測模型的評價函數(shù),其中,前練個指標值越小,表明預測精度越好,R2數(shù)值越大,表明模型預測效果越好。其計算公式為:
4.2 與其他主流機器學習對比
本文重點放在和其他主流機器學習進行對比,突出XGBoost對磁盤故障預測的優(yōu)越性,本文對比機器學習中11種主流算法,表3是11種算法在三個指標上的對比結果,以XGBoost算法為例,將特征工程處理完的數(shù)據(jù)劃分訓練集和測試集,訓練集占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,其他算法的差距很明顯,但集成算法的擬合優(yōu)度的效果更好。XGBoost算法在這三個指標上的結果都優(yōu)于其他算法,預測效果也最好,基于非線性Neural Network,XGBoost算法比線性回歸、決策樹以及k鄰近回歸預測效果好,進一步說明磁盤故障數(shù)據(jù)是一個多種因素決定的復雜的問題,諸多因素共同決定磁盤故障問題,所以使用非線性關系預測會得到更好的結果,同時也會增加模型的復雜度,基于集成算法的模型相比其他若分類器強大很多,所以結果很明顯的好,XGBoost和Catboost效果卓越,同時也說明XGBoost模型在進行磁盤故障預測模型中的提供了準確預測的參考,在使用此方法上進行磁盤故障預測模型推廣泛化上有一定的優(yōu)勢。
4.3 模型超參數(shù)調優(yōu)及學習曲線對比
XGBoost模型中的超參數(shù)共計有23個,模型超參數(shù)調優(yōu)使用網格搜索找出最佳的參數(shù)結果,并使用r2_score為判斷標準,將特征工程數(shù)據(jù)清洗后的數(shù)據(jù)輸入到XGBoost模型中,使用這些參數(shù),得到更好的預測效果,以下五個參數(shù)為主要調整的參數(shù),搜索區(qū)間和調優(yōu)結果如表4所示。
圖3所示為XGBoost典型的4中機器學習算法的學習曲線對比結果,其中圖3(a-d)分別表示XGBoost、LightGBM、隨機森林以及SVR的學習曲線。圖3中可以看到4種算法在樣本達到8000后,模型分數(shù)增長速度逐漸變緩,測試集與交叉驗證集性能存在較大差距,其中隨機森林,LightGBM和SVR在樣本量增加時,測試集效果甚至出現(xiàn)分數(shù)下降的現(xiàn)象。當樣本數(shù)量在8000時,最好的擬合效果是0.88,XGBoost模型的分數(shù)很快接近0.8,當樣本數(shù)量繼續(xù)增加時,交叉驗證集上XGBoost模型的增速也逐漸變緩。另外,隨機森林,LightGBM兩者隨著樣本量的增加,出現(xiàn)了過擬合現(xiàn)象,造成的原因可能是樣本噪音干擾過大,使得算法將部分噪音認為是特征從而擾亂了預設的分類規(guī)則,或是模型過于復雜。
4.4 SHAP模型特征分析
根據(jù)圖4的SHAP特征分析圖,發(fā)現(xiàn)smart_187, smart_197,smart_7,smart_5對模型有顯著的影響,其中smart_187,smart_197,smart_5對模型有正向影響,smart_7對模型有負向影響,具體而言,smart_187, smart_197,smart_5的SHAP值越大,說明磁盤越容易發(fā)生故障,當這些值出現(xiàn)較大的波動變化時因提前備份數(shù)據(jù)更換磁盤,以免造成損失。
經過XGBoost,RandomForest,SHAP特征重要性對比后訓練后,不難發(fā)現(xiàn),根據(jù)不同算法得出影響磁盤故障的因素不同,但是對于以下7個屬性中,smart_197,smart_184,smart_187,smart_198,smart_5,smart_241,smart_7,在三種算法的重要程度中,smart_197,smart_187特征重要性的值都比較高,說明磁盤故障中,這些因素對磁盤故障的影響越大。
5 結論
隨著大數(shù)據(jù)、云計算、云存儲等新興科技的發(fā)展,使得海量數(shù)據(jù)存儲的需求越來越大,磁盤作為常見的存儲工具之一,對磁盤故障影響因素的研究也逐漸增多,利用機器學習對模型預測的研究較少,并且也缺乏模型的可解釋性。所以,本文以Backblaze公司2019年第一季度每日監(jiān)測的數(shù)據(jù)進行數(shù)據(jù)處理,使用閾值法、Lasso特征選擇對數(shù)據(jù)降維,然后,將篩選后的數(shù)據(jù)使用XGBoost模型訓練,并與典型的機器學習算法中11種主流機器學習模型進行對比,結果表明本文在RMSE、MAE、 三種性能指標上均優(yōu)于其他模型,最后,利用SHAP模型增強對模型的可解釋性,對比三種算法XGBoost、Random Forest和SHAP值對磁盤故障的影響程度大小進行分析,結果發(fā)現(xiàn)smart_187,smart_197都占特征重要性的前三,說明磁盤故障影響因素都報告不可糾正錯誤和等候重定的扇區(qū)計數(shù)兩個特征對目標變量有很大的影響。
參考文獻:
〔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和遺傳算法的硬盤故障預測模型優(yōu)化及選擇[J].計算機研究與發(fā)展,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和遺傳算法的硬盤故障預測模型優(yōu)化及選擇[J].計算機研究與發(fā)展,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〕李新鵬,高欣,何楊,閻博,孫漢旭,李軍良,徐建航,劉震宇,龐博.不平衡數(shù)據(jù)集下基于自適應加權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.