陳園瓊 孟玉佳 李智豪
關(guān)鍵詞:機(jī)器學(xué)習(xí);故障診斷;分布式系統(tǒng)
中圖分類(lèi)號(hào):TP181 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)03-0022-03
0 引言
大數(shù)據(jù)時(shí)代,分布式系統(tǒng)成為信息存儲(chǔ)和處理的主流系統(tǒng),Cassandra、MongoDB、HBase等系統(tǒng)應(yīng)運(yùn)而生,通過(guò)水平擴(kuò)展和分區(qū)存儲(chǔ)等技術(shù),滿(mǎn)足了大規(guī)模數(shù)據(jù)管理和訪(fǎng)問(wèn)的需求。相對(duì)于傳統(tǒng)系統(tǒng)而言,分布式系統(tǒng)更為龐大和復(fù)雜,故障發(fā)生的平均概率比較高。因此,如何對(duì)分布式系統(tǒng)進(jìn)行高效、準(zhǔn)確的運(yùn)維,成為保障信息系統(tǒng)高效、可靠運(yùn)行的關(guān)鍵問(wèn)題。
傳統(tǒng)的故障診斷是通過(guò)人工經(jīng)驗(yàn)來(lái)進(jìn)行檢測(cè)的, 需要耗費(fèi)巨大的人力和時(shí)間[1],無(wú)法應(yīng)對(duì)系統(tǒng)復(fù)雜性的問(wèn)題。隨著機(jī)器學(xué)習(xí)技術(shù)的飛速發(fā)展,研究者們開(kāi)始探索將機(jī)器學(xué)習(xí)引入故障診斷領(lǐng)域[2]。一些研究在單一節(jié)點(diǎn)[3]上取得了顯著成果,但在真實(shí)的分布式環(huán)境中,涉及的問(wèn)題更為復(fù)雜。盡管有關(guān)分布式故障診斷的研究[4]正在逐漸增多,但仍然存在對(duì)大規(guī)模系統(tǒng)的有效建模、實(shí)時(shí)性要求和模型可解釋性等方面的挑戰(zhàn)。該系統(tǒng)的目標(biāo)是設(shè)計(jì)和實(shí)現(xiàn)一種基于機(jī)器學(xué)習(xí)的分布式的故障診斷系統(tǒng),并提供了對(duì)原始數(shù)據(jù)特征的預(yù)處理、特征提取和對(duì)故障的分類(lèi),以提高系統(tǒng)故障診斷的準(zhǔn)確性和實(shí)時(shí)性。
1 實(shí)驗(yàn)環(huán)境
1.1 數(shù)據(jù)來(lái)源
本研究所有的數(shù)據(jù)來(lái)自中國(guó)軟件杯設(shè)計(jì)大賽中的訓(xùn)練、驗(yàn)證和測(cè)試數(shù)據(jù)集(http://www.cnsoftbei.com/software/bstm/A/824.html) 。該訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集包含了分布式數(shù)據(jù)庫(kù)[5]的故障特征數(shù)據(jù)和標(biāo)簽數(shù)據(jù),其中特征數(shù)據(jù)是系統(tǒng)發(fā)生故障時(shí)的KPI 指標(biāo)數(shù)據(jù),KPI 指標(biāo)包括由feature0、feature1 ...feature106 共107個(gè)指標(biāo),標(biāo)簽數(shù)據(jù)為故障類(lèi)別數(shù)據(jù),共6個(gè)類(lèi)別,用0、1、2、3、4、5分別表示6個(gè)故障,其中0類(lèi)別為正常類(lèi)別,具體的故障部分?jǐn)?shù)據(jù)集信息見(jiàn)表1,而測(cè)試集是只有特征而沒(méi)有標(biāo)簽的數(shù)據(jù)集,用于預(yù)測(cè)故障的屬于哪個(gè)類(lèi)別。
2 實(shí)驗(yàn)過(guò)程
2.1 數(shù)據(jù)處理
特征數(shù)據(jù)的預(yù)處理主要采取了機(jī)器學(xué)習(xí)中的數(shù)據(jù)清洗、歸一化、欠采樣和標(biāo)準(zhǔn)化處理等方法。
1) 針對(duì)特定列的缺失值進(jìn)行了數(shù)據(jù)清洗,并計(jì)算每列的眾數(shù),然后使用該列的眾數(shù)填充指定的列的缺失值,對(duì)整個(gè)數(shù)據(jù)集使用均值填充剩余的缺失值,并調(diào)整標(biāo)簽序列如表2所示,確保模型在訓(xùn)練過(guò)程中能夠充分利用可用的數(shù)據(jù)信息。
2) 通過(guò)歸一化處理確保數(shù)據(jù)在相同的尺度范圍內(nèi),避免某些特征對(duì)模型訓(xùn)練的影響過(guò)大。
3) 由于數(shù)據(jù)類(lèi)別較為不平衡,這種數(shù)據(jù)分布可能在故障診斷的時(shí)候造成一定的影響,因此,根據(jù)欠擬合原理,用RandomUnderSampler對(duì)數(shù)據(jù)進(jìn)行欠采樣,以解決數(shù)據(jù)類(lèi)別不平衡的問(wèn)題,使得每個(gè)類(lèi)別的樣本數(shù)量較為均衡。
4) 采用數(shù)據(jù)標(biāo)準(zhǔn)化的計(jì)算方法,通過(guò)應(yīng)用一個(gè)lambda函數(shù),對(duì)數(shù)值特征進(jìn)行標(biāo)準(zhǔn)化處理。將每個(gè)特征值減去其均值并除以標(biāo)準(zhǔn)差,公式如下:X* = x - μ/σ ,以使特征值的尺度更加一致,并將整個(gè)訓(xùn)練集以及驗(yàn)證集的數(shù)據(jù)都放入了一個(gè)文件里面,用這個(gè)文件來(lái)當(dāng)作訓(xùn)練集來(lái)訓(xùn)練。
2.2 基于XGBoost 算法的故障診斷系統(tǒng)
該系統(tǒng)基于中國(guó)軟件杯平臺(tái)給出的故障數(shù)據(jù)集,提出了一種基于XGBoost的故障診斷系統(tǒng),提供了對(duì)故障的分類(lèi)。首先對(duì)原始的數(shù)據(jù)特征進(jìn)行預(yù)處理和特征提取,設(shè)計(jì)一個(gè)基礎(chǔ)的XGBoost模型,設(shè)置模型的參數(shù),對(duì)模型進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中逐步對(duì)參數(shù)進(jìn)行優(yōu)化和泛化處理,最后生成故障診斷模型。該系統(tǒng)提出的基于XGBoost算法的故障診斷模型建模流程,如圖1所示。
故障診斷模型建立之后,結(jié)合系統(tǒng)平臺(tái)對(duì)模型進(jìn)行測(cè)試,該系統(tǒng)平臺(tái)實(shí)現(xiàn)了訓(xùn)練模型、驗(yàn)證模型、下載模型、模型添加和故障服務(wù)等多方面功能,通過(guò)平臺(tái)給出的測(cè)試集作為模型的新的數(shù)據(jù)集,實(shí)現(xiàn)故障的分類(lèi),得出分類(lèi)結(jié)果,并進(jìn)行可視化展示。
3 結(jié)果與分析
3.1 預(yù)測(cè)結(jié)果
選取已經(jīng)預(yù)處理的驗(yàn)證集對(duì)XGBoost模型進(jìn)行驗(yàn)證,驗(yàn)證結(jié)果得出故障各個(gè)類(lèi)別的F1_score值分別為0.93、0.84、0.85、0.94、0.97、0.95,該系統(tǒng)的集成學(xué)習(xí)模型 XGBoost 的預(yù)測(cè)準(zhǔn)確性高達(dá) 91%,預(yù)測(cè)結(jié)果的分類(lèi)數(shù)據(jù)報(bào)告如表3所示。
其中,Precision(精確度)表示模型在每個(gè)類(lèi)別中的預(yù)測(cè)準(zhǔn)確性,Recall(召回率)則衡量模型識(shí)別每個(gè)類(lèi)別的能力。F1-score綜合了Precision 和Recall,提供了對(duì)模型整體性能的評(píng)估。支持度(Support) 代表每個(gè)類(lèi)別在數(shù)據(jù)集中的實(shí)際樣本數(shù)量??傮w準(zhǔn)確度(Accuracy) 表示模型正確分類(lèi)的樣本比例。Macro avg 對(duì)每個(gè)類(lèi)別的指標(biāo)進(jìn)行算術(shù)平均,而Weighted avg則根據(jù)每個(gè)類(lèi)別樣本量的權(quán)重進(jìn)行平均,提供了對(duì)整體性能更全面的評(píng)估。
3.2 對(duì)比分析
為了驗(yàn)證XGBoost模型的可行性和有效性,采取邏輯回歸算法和隨機(jī)森林算法[7]進(jìn)行對(duì)比實(shí)驗(yàn)。通過(guò)趨勢(shì)分析圖(如圖2)可以看出,XGBoost模型在數(shù)據(jù)集上的表現(xiàn)呈現(xiàn)出一種上升趨勢(shì),而邏輯回歸和隨機(jī)森林模型的表現(xiàn)則相對(duì)較為波動(dòng)。
經(jīng)過(guò)多次實(shí)驗(yàn),從表4中的結(jié)果可以得到,該系統(tǒng)的集成學(xué)習(xí)模型XGBoost 模型的預(yù)測(cè)準(zhǔn)確性高達(dá)91%,隨機(jī)森林(RandomForest) 模型和邏輯回歸(Logis?ticsRegression) 模型的預(yù)測(cè)準(zhǔn)確率分別為88%和80%,邏輯回歸模型在故障類(lèi)別2中準(zhǔn)確率只有55%,而在XGBoost模型中準(zhǔn)確率達(dá)到了84%,其余故障類(lèi)別也同樣得到了提升??傮w來(lái)看,XGBoost相較于邏輯回歸和隨機(jī)森林,呈現(xiàn)出更為一致且卓越的性能,特別在面對(duì)極端或難以分類(lèi)的故障情形下表現(xiàn)更為出色。
4 結(jié)論
本研究采用XGBoost算法構(gòu)建了故障診斷系統(tǒng),該算法通過(guò)整合多個(gè)弱學(xué)習(xí)器,形成了一個(gè)強(qiáng)大的學(xué)習(xí)模型。通過(guò)對(duì)真實(shí)數(shù)據(jù)集的實(shí)驗(yàn)和分析,驗(yàn)證了該系統(tǒng)的卓越性和可行性。實(shí)驗(yàn)結(jié)果表明,基于XGBoost 模型的故障診斷系統(tǒng)具有較高的準(zhǔn)確,能夠快速識(shí)別出異常數(shù)據(jù)和故障,并實(shí)現(xiàn)準(zhǔn)確的分類(lèi)。接下來(lái)的研究將聚焦在人工智能對(duì)故障的診斷[8],以及特征工程、模型訓(xùn)練和參數(shù)優(yōu)化等方面,通過(guò)更精細(xì)的特征選擇、交叉驗(yàn)證、超參數(shù)調(diào)整等手段,可以使故障診斷模型更加準(zhǔn)確和穩(wěn)健,以適應(yīng)更多實(shí)際場(chǎng)景的應(yīng)用。
【通聯(lián)編輯:謝媛媛】