何 倩, 黃 煥, 劉 陽, 江炳城, 申 普
(1.桂林電子科技大學(xué) 衛(wèi)星導(dǎo)航定位與位置服務(wù)國家地方聯(lián)合工程研究中心,廣西 桂林 541004;2.廣西交科集團有限公司, 南寧 530007)
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、智能制造、智能家居等技術(shù)的發(fā)展和普及,越來越多的智能設(shè)備應(yīng)用在社會生產(chǎn)生活的各個領(lǐng)域。一方面,在工業(yè)制造、交通運輸?shù)葌鹘y(tǒng)的機電設(shè)備應(yīng)用領(lǐng)域,設(shè)備智能化已經(jīng)廣泛普及[1];另一方面,在家居家電、健康監(jiān)控等新領(lǐng)域,智能機電設(shè)備正在發(fā)揮越來越大的作用[2]。
智能機電設(shè)備在工業(yè)制造、交通運輸、智能家居和健康監(jiān)控等各個應(yīng)用領(lǐng)域采集了海量的數(shù)據(jù)[2-4]。智能機電設(shè)備的廣泛應(yīng)用給大數(shù)據(jù)的采集接入提供服務(wù)的同時,自身也產(chǎn)生了對應(yīng)的大量狀態(tài)數(shù)據(jù)[5]。如何利用這些狀態(tài)數(shù)據(jù)進行大數(shù)據(jù)分析,進而維護智能機電設(shè)備的正常運行又成了一個新的研究問題。故障預(yù)測是機電設(shè)備運行維護的核心技術(shù)。傳統(tǒng)機器學(xué)習(xí)分類算法的故障預(yù)測方法需要充足的標(biāo)簽樣本,已經(jīng)不適用于智能機電設(shè)備的廣泛快速部署需要。
智能機電設(shè)備運維的根本目的是保障服務(wù)質(zhì)量的良好和穩(wěn)定,保障服務(wù)質(zhì)量的首要手段是及時準(zhǔn)確地發(fā)現(xiàn)故障。近年來,國內(nèi)外學(xué)者利用機電設(shè)備日常維護維修數(shù)據(jù)對機電設(shè)備故障與其影響因素之間的關(guān)系進行了大量的研究。Yu等[6]研究了高速公路機電設(shè)備故障與溫度、濕度、風(fēng)速和交通流量的關(guān)系;Li等[7]研究了煤礦機電設(shè)備與溫度、濕度和揚塵的關(guān)系;Wang等[8]提出了基于溶解氣體分析的電網(wǎng)變壓器故障預(yù)測方法;Son等[9]提出了基于振動頻率和電流的微機電設(shè)備故障預(yù)測方法。對機電設(shè)備進行故障分析有助于找出故障原因,進而及時修復(fù),保障服務(wù)質(zhì)量。
以上機電設(shè)備故障分析方法主要是針對樣品設(shè)備進行小樣本的、結(jié)合先驗知識的方法研究。然而,智能機電設(shè)備故障分析相比之下具有2個主要特征:
1)大量部署的智能機電設(shè)備運營維護需求對海量實時數(shù)據(jù)進行準(zhǔn)確和快速的處理,這要求高性能的并發(fā)計算方法和低延時的通信手段。
2)不斷更新?lián)Q代的智能機電設(shè)備產(chǎn)品難以生成足夠的標(biāo)簽樣本數(shù)據(jù),這意味著依賴標(biāo)簽的監(jiān)督學(xué)習(xí)方法無法直接使用。因此,有必要研究一種滿足新需求的智能機電設(shè)備故障分析方法。
面向智能機電設(shè)備大數(shù)據(jù)故障預(yù)測問題,提出了一種基于改進梯度提升樹算法的智能機電設(shè)備故障預(yù)測服務(wù),主要貢獻有:
1)將無監(jiān)督學(xué)習(xí)方法獨立森林算法引入智能機電設(shè)備故障預(yù)測,通過獨立森林為無標(biāo)簽的智能機電設(shè)備狀態(tài)數(shù)據(jù)補充標(biāo)簽;
2)使用監(jiān)督學(xué)習(xí)方法梯度提升樹算法通過補足標(biāo)簽的智能機電設(shè)備狀態(tài)數(shù)據(jù)訓(xùn)練故障預(yù)測模型,用于實時故障預(yù)測;
3)基于Spark的彈性數(shù)據(jù)集機制并行化獨立森林-梯度提升樹算法,通過高性能的并發(fā)計算滿足智能機電設(shè)備故障預(yù)測的準(zhǔn)確和快速需求。
機電設(shè)備的故障預(yù)測方法可以根據(jù)原理分成3類:基于先驗?zāi)P偷姆治龇椒ā⒒跓o監(jiān)督學(xué)習(xí)的分析方法和基于監(jiān)督學(xué)習(xí)的分析方法。其中基于先驗?zāi)P偷姆治龇椒僭O(shè)數(shù)據(jù)的變化是可以直接根據(jù)數(shù)學(xué)物理知識直接描述的:擬合模型的數(shù)據(jù)表示正常,不擬合模型的數(shù)據(jù)則表示故障。在低維、可解釋的數(shù)據(jù)中基于先驗?zāi)P偷姆治龇椒ê芊奖?,然而日趨?fù)雜的機電設(shè)備結(jié)構(gòu)和故障影響因素使得數(shù)據(jù)模型很難直接用先驗知識解釋,所以基于知識模型的分析方法已經(jīng)漸漸退出了歷史的舞臺。
基于無監(jiān)督學(xué)習(xí)的分析方法基于故障數(shù)據(jù)相對于正常數(shù)據(jù)是異常和稀少的假設(shè)。使用模型對數(shù)據(jù)進行評估,結(jié)果超過閾值的判定為異常。常見的方法有基于統(tǒng)計模型、基于距離、基于密度等[10]。如文獻[11]提出了一種基于K均值聚類的低壓直流電負荷穩(wěn)態(tài)檢測方法,通過訓(xùn)練一個根據(jù)設(shè)備電流波形特征識別設(shè)備狀態(tài)的模型,實現(xiàn)了有效的小型電網(wǎng)負荷穩(wěn)態(tài)的檢測識別。文獻[12]提出了一種基于DBSCAN的冷水機組故障檢測方法,通過結(jié)合主成分分析模型和DBSCAN聚類,自動將傳感器收集的數(shù)據(jù)分類并識別出故障信息。文獻[13]提出了一種基于層次聚類的CT指示劑劑量檢測方法,通過結(jié)合層次聚類和K均值聚類,快速識別CT系統(tǒng)劑量指標(biāo)異常。無監(jiān)督學(xué)習(xí)方法基于數(shù)據(jù)本身進行聚類識別,不需要分類標(biāo)簽,但是為了達到較好的輸出結(jié)果,往往需要大量的人工干預(yù)調(diào)節(jié)。
基于監(jiān)督學(xué)習(xí)的分析方法需要具有標(biāo)簽的數(shù)據(jù)樣本。根據(jù)輸入的數(shù)據(jù)訓(xùn)練模型,使用模型對數(shù)據(jù)進行預(yù)測分類和測試準(zhǔn)確度。如果數(shù)據(jù)與標(biāo)簽的關(guān)系符合采用模型方法的適用領(lǐng)域,就可以輕松地得到較高精度的分類模型。常見的方法有樸素貝葉斯、K近鄰、決策樹系列等。如文獻[14]針對復(fù)雜設(shè)備組的故障預(yù)測,研究了基于C4.5決策樹算法的數(shù)據(jù)分類方法,提出了一種基于決策樹的故障模式預(yù)測方法。文獻[15]針對齒輪變速箱的齒輪故障原因研究,通過分析電機的電流和電壓特征,使用2種機器學(xué)習(xí)算法——決策樹算法和支持向量機算法,進行傳統(tǒng)振動分析和電機電特征分析(MESA)之間的比較。文獻[16]針對設(shè)想的5G基站的中斷問題嘗試使用隱馬爾可夫模型來自動捕捉基站的當(dāng)前狀態(tài)并估計一個小區(qū)發(fā)生中斷的概率。仿真結(jié)果表明,該策略能夠以平均80%的準(zhǔn)確率預(yù)測基站的狀態(tài),并能在95%的時間內(nèi)正確檢測小區(qū)中斷。監(jiān)督學(xué)習(xí)方法依靠標(biāo)簽信息擁有較高的分類精度,然而一旦標(biāo)簽不足,往往訓(xùn)練不出高識別能力的分類模型。
機電設(shè)備運維系統(tǒng)從數(shù)據(jù)流的角度分析,可分為數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)分析和結(jié)果反饋4個部分,其中從數(shù)據(jù)中挖掘出關(guān)鍵信息的數(shù)據(jù)分析部分是運維的核心。在運維的早期階段,數(shù)據(jù)分析依賴人工操作,需要工程師的專家經(jīng)驗和手動處理,這樣的運維方法又稱人工運維。人工運維占用了寶貴的人力資源,無法滿足快速擴展的設(shè)備規(guī)模對應(yīng)的處理需求。于是運維工程師設(shè)計了自動化腳本來處理工作中大量的計算和判斷,將人力從繁瑣的重復(fù)工作中解放出來,這就是自動化運維。自動化運維面對不同場景需要對應(yīng)的自動化腳本,腳本生成的邏輯和參數(shù)設(shè)置仍依賴運維工程師的專家經(jīng)驗,在應(yīng)用場景日益復(fù)雜的當(dāng)下也逐漸不敷使用。在硬件、軟件和云服務(wù)提供商的探索中,智能運維(AIOps)[17]應(yīng)運而生。智能運維是指基于分析理論和機器學(xué)習(xí)等方法分析和學(xué)習(xí)設(shè)備、服務(wù)和系統(tǒng)等產(chǎn)生的大量狀態(tài)數(shù)據(jù),從而自動地發(fā)現(xiàn)問題、分析原因、反應(yīng)處理的運維方式。機電設(shè)備智能運維系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
數(shù)據(jù)采集:通過機電設(shè)備和其他智能設(shè)備的傳感器、定位器等裝置采集設(shè)備關(guān)鍵狀態(tài)信息,如電壓、電流、經(jīng)度、緯度、溫度、濕度等。采集到的數(shù)據(jù)打包后通過協(xié)議加密,使用通信協(xié)議傳輸。
數(shù)據(jù)傳輸:基于智能網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備接入有線和無線網(wǎng)絡(luò),遠程傳輸?shù)皆浦行暮蠼饷茴A(yù)處理并存入消息隊列中等待數(shù)據(jù)分析。
數(shù)據(jù)分析:對設(shè)備狀態(tài)數(shù)據(jù)進行分析和處理。機電設(shè)備運維的核心是數(shù)據(jù)分析,數(shù)據(jù)分析的首要任務(wù)是發(fā)現(xiàn)問題,即故障預(yù)測,利用已經(jīng)訓(xùn)練好的故障診斷模型對大量機電設(shè)備狀態(tài)數(shù)據(jù)進行高效準(zhǔn)確的處理,輸出故障預(yù)測結(jié)果。
結(jié)果輸出:將數(shù)據(jù)分析的結(jié)果推送到后續(xù)應(yīng)用服務(wù),如監(jiān)控界面/客戶端報警提示、數(shù)據(jù)庫持久化存儲和自動恢復(fù)操作等。
智能運維的故障預(yù)測通常使用監(jiān)督學(xué)習(xí)算法,從標(biāo)簽樣本數(shù)據(jù)學(xué)習(xí)故障表征知識建立模型用于故障預(yù)測。監(jiān)督學(xué)習(xí)算法的準(zhǔn)確需要合適的模型和充分的標(biāo)簽樣本數(shù)據(jù)。早期樣本數(shù)據(jù)的標(biāo)簽一般基于測試人員的專家經(jīng)驗生成。目前,智能機電設(shè)備的應(yīng)用領(lǐng)域已經(jīng)由工業(yè)生產(chǎn)擴張到通信設(shè)施、云服務(wù)甚至家用電器,大量種類機電設(shè)備的投入使用對應(yīng)的先期測試成本不可忽視。為了滿足智能機電設(shè)備故障預(yù)測高精度、快反應(yīng)和少量標(biāo)簽的要求,基于無監(jiān)督學(xué)習(xí)算法獨立森林改進監(jiān)督學(xué)習(xí)算法梯度提升樹,提出了一種半監(jiān)督學(xué)習(xí)方法IF-GBDT:利用獨立森林算法,基于少量標(biāo)簽樣本為無標(biāo)簽樣本提供標(biāo)簽,為梯度提升樹算法的模型訓(xùn)練提供充足標(biāo)簽樣本,從而減少了梯度提升樹算法的標(biāo)簽樣本需求。IF-GBDT算法示意圖如圖2所示。
圖2 IF-GBDT算法示意圖
少量標(biāo)簽樣本:來自早期的設(shè)備試驗運行結(jié)果,具有設(shè)備的關(guān)鍵狀態(tài)信息和故障標(biāo)簽,標(biāo)簽包含測試人員的專家經(jīng)驗。
大量無標(biāo)簽樣本:來自設(shè)備的試運行階段和正式運行階段的收集結(jié)果,具有設(shè)備的關(guān)鍵狀態(tài)信息。因為沒有標(biāo)簽,無法直接用于監(jiān)督學(xué)習(xí)算法的模型訓(xùn)練。
待處理數(shù)據(jù):設(shè)備正式運行階段的實時采集結(jié)果,包含設(shè)備的關(guān)鍵狀態(tài)信息,經(jīng)由通信協(xié)議和組件傳遞,需要準(zhǔn)確而快速的故障預(yù)測數(shù)據(jù)處理。
獨立森林模型:由少量標(biāo)簽樣本訓(xùn)練生成,根據(jù)測試結(jié)果計算數(shù)據(jù)的異常評估值,基于標(biāo)簽數(shù)據(jù)得到異常評估閾值。基于異常評估閾值,對大量無標(biāo)簽樣本進行異常評估,將異常評估值高于或等于閾值的數(shù)據(jù)標(biāo)記為故障,小于閾值的數(shù)據(jù)標(biāo)記為無故障。
充足標(biāo)簽樣本:由少量標(biāo)簽樣本與通過獨立森林模型補充標(biāo)簽的原大量無標(biāo)簽樣本合并組成,用于后續(xù)梯度提升樹模型的訓(xùn)練。
梯度提升樹模型:由充足標(biāo)簽樣本訓(xùn)練得到,用于處理實時機電設(shè)備狀態(tài)數(shù)據(jù),輸出故障預(yù)測結(jié)果。
故障預(yù)測結(jié)果:輸出到后續(xù)應(yīng)用服務(wù),如:存入分布式數(shù)據(jù)庫以便后續(xù)的查詢和數(shù)據(jù)研究;為運營維護人員提供可視化監(jiān)控界面,并基于故障預(yù)測結(jié)果提供故障警報,提醒運行維護人員及時處理。
為高效及時地處理海量智能機電設(shè)備數(shù)據(jù),基于Spark的彈性數(shù)據(jù)集(resilient distributed datasets,簡稱RDD)機制實現(xiàn)了算法的并行化。Spark采用“Master-Worker”的組成方式。用戶向Master節(jié)點提交計算項目,Master節(jié)點利用有向無環(huán)圖規(guī)劃項目的執(zhí)行步驟,每步都可以分割出并行執(zhí)行的分任務(wù),將經(jīng)過多次并行化處理的彈性數(shù)據(jù)集合并輸出到指定目錄、HDFS或者支持?jǐn)?shù)據(jù)庫。Spark并行化處理如圖3所示。
圖3 Spark并行化處理
Master:Spark集群的主節(jié)點,負責(zé)管理集群資源的分配和調(diào)度與執(zhí)行項目的角色分配,并利用有向無環(huán)圖(directed acyclic graph,簡稱DAG)將項目分解成可并行化執(zhí)行的任務(wù)。
Worker:Spark集群的分節(jié)點,負責(zé)并行化執(zhí)行已分解的任務(wù)并輸出結(jié)果。
Driver:Worker節(jié)點角色分工的一種,負責(zé)分配已規(guī)劃好的任務(wù)和匯總數(shù)據(jù)處理結(jié)果。
Executor:Worker節(jié)點角色分工的一種,根據(jù)分配到的任務(wù)處理任務(wù)對應(yīng)的數(shù)據(jù)分片,輸出處理結(jié)果。
獨立森林模型建立過程中每棵獨立樹相互獨立,互不影響,可以輕松實現(xiàn)并行化。首先,每顆獨立樹的訓(xùn)練作為單個任務(wù)分配到可用的Executor;然后,各Executor讀取樣本數(shù)據(jù)并訓(xùn)練隨機的獨立樹;最后,將各個Executor訓(xùn)練的獨立樹匯總到Driver形成獨立森林,輸出建模結(jié)果。
獨立森林打標(biāo)簽可以在數(shù)據(jù)的分割處理上實現(xiàn)并行化。首先,將處理不同分片的數(shù)據(jù)作為任務(wù)分配到可用的Executor;然后,各Executor讀取對應(yīng)的分片數(shù)據(jù)并基于已有模型輸出故障標(biāo)簽;最后,將各個Executor處理得到故障標(biāo)簽匯總到Driver,輸出處理結(jié)果。
梯度提升樹的并行化實現(xiàn)基于Spark的機器學(xué)習(xí)算法庫MLlib。
獨立森林算法是一種無監(jiān)督的異常檢測方法[18]。獨立森林算法通過構(gòu)建獨立樹以評估數(shù)據(jù)的異常指數(shù),最后通過復(fù)數(shù)獨立樹綜合的異常指數(shù)判定數(shù)據(jù)是否異常。根據(jù)采樣的數(shù)據(jù)訓(xùn)練獨立樹(一種隨機二叉樹),獨立森林算法步驟為:
1)對于機電設(shè)備狀態(tài)數(shù)據(jù)集D的隨機屬性A,隨機選擇該屬性的一個值value;
2)根據(jù)A對采樣數(shù)據(jù)集Dsample進行分類,把A小于value的數(shù)據(jù)放在左子樹上,把A大于等于value的數(shù)據(jù)放在右子樹上;
3)遞歸構(gòu)造左子樹和右子樹,直到傳入數(shù)據(jù)集只剩下一條或多條A同值的數(shù)據(jù),或者樹的高度到達設(shè)定閾值。
完成獨立樹的訓(xùn)練后,利用獨立樹對數(shù)據(jù)進行異常評分:將測試數(shù)據(jù)輸入獨立樹從根節(jié)點開始搜索,直到測試數(shù)據(jù)被分到葉子節(jié)點上,根據(jù)該葉子節(jié)點與根節(jié)點的距離h(x)計算異常評分s(x,n):
H(k)=ln(k)+ξ。
(1)
其中:n為樣本大??;ξ為歐拉常數(shù);s(x,n)的取值范圍為[0,1],s(x,n)值越大,異常的可能性越高。
一棵獨立樹只對單個屬性進行評估,所以需要多棵樹結(jié)合形成獨立森林才能對每條數(shù)據(jù)進行全面的評估。獨立森林的異常評分為
(2)
其中E(h(x))為數(shù)據(jù)x在每棵樹的高度均值。根據(jù)異常評分S(x,n)判定數(shù)據(jù)x是否異常。
梯度提升樹算法是決策樹算法的一種改進方法,可以用于監(jiān)督學(xué)習(xí)的分類和回歸[19]。梯度提升樹算法通過串聯(lián)多棵決策樹以減少擬合誤差,最后根據(jù)屬性數(shù)值分叉得到分類或回歸輸出。作為典型的監(jiān)督學(xué)習(xí)算法,梯度提升樹算法的準(zhǔn)確度依賴于學(xué)習(xí)樣本的信息含量,在標(biāo)簽樣本數(shù)量少時性能下降,引入獨立森林算法為無標(biāo)簽樣本補充標(biāo)簽。改進梯度提升樹故障預(yù)測算法流程如圖4所示。
圖4 改進梯度提升樹故障預(yù)測算法流程
改進梯度提升樹算法原理如下:
1)引入獨立森林算法學(xué)習(xí)少量標(biāo)簽樣本,得到異常閾值后為大量無標(biāo)簽樣本合并補充標(biāo)簽,以便訓(xùn)練更準(zhǔn)確的故障分類模型;
2)訓(xùn)練多棵決策樹,每棵決策樹學(xué)習(xí)之前所有樹的預(yù)測值和誤差值;
3)利用梯度下降法近似計算誤差值,快速擬合出決策樹;
4)多棵決策樹的預(yù)測結(jié)果疊加,輸出最終的故障預(yù)測結(jié)果。
并行獨立森林模型訓(xùn)練基于少量標(biāo)簽樣本數(shù)據(jù)生成獨立森林模型,用于后續(xù)的大量無標(biāo)簽樣本數(shù)據(jù)補充標(biāo)簽。與基礎(chǔ)的獨立森林算法不同的是,異常評估閾值基于帶故障標(biāo)簽的樣本而非異常比例學(xué)習(xí)得到。并行獨立森林模型訓(xùn)練算法如算法1所示。
算法1并行獨立森林模型訓(xùn)練。輸入:少量標(biāo)簽樣本D1,樹深度deep,樹數(shù)量n;輸出:獨立森林iForest,異常閾值min。
1: 初始化獨立森林,初始化min=1;
2: for i=1 to n do
3: iTreei←buildITree(D1,deep);
4: iForest←iForest∪{iTreei};
5: endfor
6: 返回iForest
7: for each instance x ∈ D1do
8: for each instance iTree ∈ iTrees do
9: high←calHigh(x, iTree);
10: endfor
11: avghigh← calAvgHigh (x, iForest);
12: AnomalyScore← calAnomalyScore(avghigh);
13: if label=1 then
14: if AnomalyScore 15: min=AnomalyScore; 16: endif 17: endif 18: endfor 19: 返回min 在算法1中,iTree表示獨立樹; x表示數(shù)據(jù)的特征向量;label表示故障標(biāo)簽,1代表有故障;AnomalyScore表示異常評分,越接近1表示異??赡苄栽礁?; min表示異常評分閾值,超過閾值即為異常。首先,隨機生成n棵獨立樹,這些獨立樹組成獨立森林模型(第1行至第6行)。然后,對D1中的每條數(shù)據(jù)的x求其平均高度,計算其異常評分,并對故障標(biāo)簽label為1的數(shù)據(jù)更新異常閾值min,取最低值(第7行至第19行)。 并行樣本數(shù)據(jù)標(biāo)簽補充通過訓(xùn)練的獨立森林模型為無標(biāo)簽樣本數(shù)據(jù)提供標(biāo)簽?;谟?xùn)練好的獨立森林模型評估無標(biāo)簽樣本數(shù)據(jù)的異常值,并利用異常閾值判定其是否故障。并行樣本數(shù)據(jù)標(biāo)簽補充算法如算法2所示。 算法2并行樣本數(shù)據(jù)標(biāo)簽補充。輸入:大量無標(biāo)簽樣本D2,獨立森林iForest,異常閾值min, 少量標(biāo)簽樣本D1;輸出:有標(biāo)簽的大量樣本數(shù)據(jù)集D3。 1: 初始化D3,初始化D2的故障標(biāo)簽label=0; 2: for each instance x ∈ D2do 3: for each instance iTree ∈ iTrees do 4: high←calHigh(x, iTree); 5: endfor 6: avghigh← calAvgHigh(x, iForest); 7: AnomalyScore← calAnomalyScore(avghigh); 8: if AnomalyScore >min then 9: label=1; 10: endif 11: endfor 12: D3=D2∪D1 13: 返回D3 首先,對于D2中的每條數(shù)據(jù)的x求其平均高度,計算其異常評分(第1行至第7行)。然后,將異常評分與異常閾值min作比較,高于min的數(shù)據(jù)判定為異常,更新故障標(biāo)簽(第8行至第11行)。最后將標(biāo)簽過的D2與D1合并為D3輸出(第12行至第13行)。 本實驗在一臺聯(lián)想服務(wù)器SR550上安裝5臺虛機,基于Scala語言實現(xiàn)了少量標(biāo)簽機電設(shè)備大數(shù)據(jù)故障預(yù)測算法的測試。設(shè)備參數(shù)如表1所示。 表1 實驗設(shè)備 本次實驗數(shù)據(jù)集為真實的智能機電設(shè)備數(shù)據(jù)集(以下簡稱JDSB)和公開的航天飛機運行數(shù)據(jù)集Shuttle[20]。表2列出了數(shù)據(jù)集的基本情況。 表2 數(shù)據(jù)集基本情況 JDSB是一組高速公路機電設(shè)備采集的真實數(shù)據(jù)集,表3列出了JDSB的數(shù)據(jù)結(jié)構(gòu)。本次實驗采用“u”, “i”, “t”, “h”, “b”和 “c”作為特征進行學(xué)習(xí)。 本次實驗使用AUC(area under curve)指標(biāo)衡量算法的準(zhǔn)確度。AUC是衡量二分類模型優(yōu)劣的一種評估指標(biāo),表示預(yù)測的正例排在負例前面的概率。 表3 JDSB數(shù)據(jù)結(jié)構(gòu) AUC計算公式為 (3) 為了模擬智能機電設(shè)備數(shù)據(jù)缺少有效標(biāo)簽樣本的場景,本次實驗從JDSB和Shuttle中隨機抽取300個樣本作為訓(xùn)練數(shù)據(jù)。使用傳統(tǒng)的梯度提升樹基于300樣本進行監(jiān)督學(xué)習(xí)(以下簡稱GBDT),和使用獨立森林基于300樣本進行無監(jiān)督學(xué)習(xí)后根據(jù)樣本標(biāo)簽給其余樣本重打標(biāo)簽,并分別使用隨機森林和梯度提升樹對新樣本進行監(jiān)督學(xué)習(xí)后得到的模型預(yù)測故障(以下分別簡稱IF-RF和IF-GBDT),對比3類算法的AUC,結(jié)果如圖5所示。 圖5 不同算法AUC對比 從圖5可看出,在AUC的量綱下IF-GBDT算法優(yōu)于IF-RF算法,GBDT算法性能最差。這說明在少量標(biāo)簽場景下的IF-GBDT算法在分類性能和穩(wěn)定性方面優(yōu)于傳統(tǒng)的梯度提升樹算法。另外,IF-GBDT算法和IF-RF算法的對比說明在JDSB上使用基于獨立森林提供標(biāo)簽的半監(jiān)督學(xué)習(xí)方法時分類器中梯度提升樹的表現(xiàn)比隨機森林更好。 為了確認標(biāo)簽樣本數(shù)量對3種算法的影響,進一步測試了在不同數(shù)量的標(biāo)簽樣本的情況下這3種算法在JDSB上的AUC,結(jié)果如圖6所示。 圖6 不同標(biāo)簽樣本大小AUC對比 圖6表明:1)標(biāo)簽樣本越少時,半監(jiān)督學(xué)習(xí)算法相對傳統(tǒng)監(jiān)督學(xué)習(xí)算法的分類精度差距越大;2)在標(biāo)簽樣本足夠多時,半監(jiān)督學(xué)習(xí)算法與它基于的監(jiān)督學(xué)習(xí)算法分類性能接近。 實驗的結(jié)果顯示:相對于傳統(tǒng)的監(jiān)督學(xué)習(xí)算法,基于獨立森林算法增加標(biāo)簽的半監(jiān)督學(xué)習(xí)算法在標(biāo)簽樣本數(shù)量稀少時仍保持較高的分類精度。主要原因是半監(jiān)督學(xué)習(xí)算法基于已知標(biāo)簽樣本利用未知標(biāo)簽樣本擴充了可學(xué)習(xí)樣本,從而在后續(xù)的監(jiān)督學(xué)習(xí)中相對傳統(tǒng)監(jiān)督學(xué)習(xí)算法占據(jù)優(yōu)勢。因此,IF-GBDT算法相對GBDT算法在JDSB上分類性能和穩(wěn)定性都更好,且少量標(biāo)簽的情況下優(yōu)勢更明顯。 為了驗證算法在Spark平臺上的并行化效果,將JDSB擴充到10萬條和20萬條,測試在分配不同個數(shù)節(jié)點的情況下模型訓(xùn)練耗時(這里的模型訓(xùn)練指獨立森林模型訓(xùn)練、獨立森林標(biāo)記標(biāo)簽、梯度提升樹模型訓(xùn)練的總和)和模型預(yù)測耗時,結(jié)果對比如圖7、8所示。 圖7 模型訓(xùn)練時間對比 圖8 模型預(yù)測時間對比 從實驗結(jié)果可看出,當(dāng)節(jié)點數(shù)從1增加到5時,IF-GBDT算法的模型訓(xùn)練時間和模型預(yù)測時間都明顯縮短。因此,在Spark平臺上并行運行IF-GBDT算法的效率要比單機運行高。此外,還可以觀察到隨著節(jié)點數(shù)的增加,計算時間并非嚴(yán)格等比例下降,這是因為節(jié)點間的通信開銷包括一部分固定時間,當(dāng)節(jié)點處理的數(shù)據(jù)較少時通信開銷不可忽略。因此,一味增加節(jié)點并不一定能縮短總體計算時間。 針對智能機電設(shè)備大數(shù)據(jù)故障預(yù)測依賴足量標(biāo)簽樣本的問題,提出并實現(xiàn)了一種基于獨立森林改進梯度提升樹的半監(jiān)督學(xué)習(xí)算法?;讵毩⑸炙惴ɡ蒙倭繕?biāo)簽樣本標(biāo)記大量無標(biāo)簽樣本,使用擴充的標(biāo)簽樣本訓(xùn)練梯度提升樹模型,用于智能機電設(shè)備故障預(yù)測?;赟park平臺實現(xiàn)了算法的并行化,從而支持對海量實時數(shù)據(jù)的高效處理。在真實智能機電設(shè)備數(shù)據(jù)集和公開航天飛機運行數(shù)據(jù)集上進行測試,結(jié)果表明,IF-GBDT算法在分類精度和少量標(biāo)簽適應(yīng)性上都要優(yōu)于傳統(tǒng)的梯度提升樹算法和IF-RF算法,利用Spark實現(xiàn)的并行化IF-GBDT算法處理具有較好的加速比,可廣泛用于少量標(biāo)簽前提下海量機電設(shè)備的故障預(yù)測。3.4 并行樣本數(shù)據(jù)標(biāo)簽補充
4 實驗分析
4.1 實驗環(huán)境
4.2 分類性能
4.3 少量標(biāo)簽適應(yīng)性
4.4 并行化性能
5 結(jié)束語