王少鋒 , 伍少成 , 劉濤 , 陳航, 陸月明
(1. 深圳供電局有限公司 計(jì)量中心,廣東 深圳 518001; 2.北京郵電大學(xué) 信息與通信工程學(xué)院,北京 100876;3. 可信分布式計(jì)算與服務(wù)教育部重點(diǎn)實(shí)驗(yàn)室(北京郵電大學(xué)),北京 100876)
?
基于KNN打分算法的電力計(jì)量自動(dòng)化終端通信故障的檢測(cè)和預(yù)警
王少鋒1, 伍少成1, 劉濤1, 陳航2, 3, 陸月明2, 3
(1. 深圳供電局有限公司 計(jì)量中心,廣東 深圳 518001; 2.北京郵電大學(xué) 信息與通信工程學(xué)院,北京 100876;3. 可信分布式計(jì)算與服務(wù)教育部重點(diǎn)實(shí)驗(yàn)室(北京郵電大學(xué)),北京 100876)
目前,電力計(jì)量自動(dòng)化系統(tǒng)是通過(guò)公共GPRS移動(dòng)網(wǎng)絡(luò)發(fā)送到主站的,收到數(shù)據(jù)的質(zhì)量容易受到終端故障和通信質(zhì)量的影響。針對(duì)這個(gè)問(wèn)題,提出了基于K最近鄰(KNN,K-NearestNeighbor)算法改進(jìn)的KNN打分算法,使用終端通信流量相關(guān)的數(shù)據(jù),對(duì)終端的故障進(jìn)行檢測(cè)和預(yù)警,并模擬實(shí)際情況對(duì)算法進(jìn)行了測(cè)試。本算法在傳統(tǒng)KNN算法的基礎(chǔ)上增加了打分功能,不僅可以提前對(duì)故障進(jìn)行檢測(cè)和預(yù)警,還能通過(guò)得分衡量判決結(jié)果的可靠性,使得相關(guān)人員可以靈活決定是否進(jìn)行現(xiàn)場(chǎng)排查,節(jié)約成本。
通信故障預(yù)測(cè); 計(jì)量自動(dòng)化; KNN打分算法; 特征提取; 數(shù)據(jù)分析
深圳供電局有限公司已建成了涵蓋各種終端及采集終端,集信息采集、監(jiān)控、分析和計(jì)量管理于一體的計(jì)量自動(dòng)化應(yīng)用平臺(tái),完成了對(duì)電廠、變電站、公變、專變、低壓集抄等發(fā)電側(cè)、供電側(cè)、配電側(cè)、售電側(cè)的綜合性統(tǒng)一數(shù)據(jù)的自動(dòng)采集監(jiān)控[1],全面實(shí)現(xiàn)了發(fā)、供、配、售各側(cè)電能信息一體化監(jiān)測(cè)管理和綜合分析應(yīng)用[2]。
其中,采集終端可以實(shí)時(shí)采集用戶側(cè)的表碼、用電功率、電流、電壓等電能量數(shù)據(jù),通過(guò)GPRS移動(dòng)網(wǎng)絡(luò)發(fā)送到主站,接受執(zhí)行主站側(cè)發(fā)送的指令,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)采集和傳輸。目前計(jì)量自動(dòng)化系統(tǒng)終端在線率還不能穩(wěn)定在99%以上,深圳供電局為了進(jìn)一步提升客戶服務(wù)水平,提高系統(tǒng)實(shí)用化水平,急需進(jìn)一步提升終端在線率,保證后期數(shù)據(jù)挖掘的數(shù)據(jù)源質(zhì)量和電能數(shù)據(jù)的實(shí)際應(yīng)用。為了進(jìn)一步提升終端的在線率,需要及時(shí)發(fā)現(xiàn)故障的終端,通知主站,盡早維修,將故障造成的損失降到最低。本文基于K-最近鄰(KNN,K-NearestNeighbor)[3]算法改進(jìn)的具有打分功能的KNN打分算法,可以分析終端每天的通信流量,及時(shí)發(fā)現(xiàn)終端故障,主動(dòng)預(yù)測(cè)終端故障概率,從數(shù)據(jù)源提升終端在線率。
基于機(jī)器學(xué)習(xí)KNN算法的電網(wǎng)計(jì)量自動(dòng)化系統(tǒng)終端故障檢測(cè)的關(guān)鍵在于構(gòu)建預(yù)測(cè)模型。根據(jù)終端當(dāng)天的流量數(shù)據(jù)分析終端故障與否。通過(guò)分析公司的歷史終端故障與維修記錄中包含的典型故障類型,根據(jù)其終端地址獲取相應(yīng)的數(shù)據(jù),提取特征,從而檢測(cè)現(xiàn)有終端的故障與否。該檢測(cè)模型經(jīng)過(guò)嚴(yán)格的邏輯推理和實(shí)驗(yàn)論證,能及時(shí)發(fā)現(xiàn)電網(wǎng)公司的采集終端故障,是數(shù)據(jù)挖掘及機(jī)器學(xué)習(xí)在電網(wǎng)數(shù)據(jù)中的有效應(yīng)用。
電網(wǎng)電能量數(shù)據(jù)主要包括:表碼表、瞬時(shí)量表、通信流量表、終端信息表和故障維修表等。其中表碼表記錄的是用戶用電的累計(jì)數(shù)據(jù),用來(lái)說(shuō)明用戶的用電量;瞬時(shí)量表用于記錄用戶實(shí)時(shí)功率、電壓和電流等信息;通信流量表用來(lái)記錄終端的通信流量,與用戶用電量的多少?zèng)]有直接關(guān)系,本文算法預(yù)測(cè)通信故障使用的測(cè)試數(shù)據(jù)就是通信流量表[4]。具體內(nèi)容包括:終端編碼、數(shù)據(jù)日期、發(fā)送(下行)字節(jié)、接收(上行)字節(jié)、重連次數(shù)、數(shù)據(jù)流量、報(bào)警流量、心跳流量、在線時(shí)間等終端與主站之間的通信流量數(shù)據(jù),如表1所示。
其中發(fā)送和接收是以主站為參照而言的,所以表中的接收流量表示的是終端像主站發(fā)送的數(shù)據(jù)流量。終端的心跳間隔是1分鐘1次,若終端的在線時(shí)間為1 440分鐘,表示終端一整天均在線。一個(gè)終端每天有一條數(shù)據(jù)。
表1 通信流量表樣例
2.1 數(shù)據(jù)分析
在設(shè)計(jì)算法前,先對(duì)數(shù)據(jù)的特征進(jìn)行分析,比較各個(gè)參數(shù)的變化趨勢(shì),發(fā)現(xiàn)數(shù)據(jù)中recvbytes和sendbytes波動(dòng)性比較明顯。同時(shí),由于數(shù)據(jù)具有隨機(jī)波動(dòng)的特性,僅靠終端某一天的通信流量并不能發(fā)現(xiàn)它的內(nèi)在信息,因此需要結(jié)合以往的歷史數(shù)據(jù),需要從統(tǒng)計(jì)的角度才可以做預(yù)測(cè)。
2.2 數(shù)據(jù)構(gòu)造
根據(jù)數(shù)據(jù)的特性,本算法所用的數(shù)據(jù)內(nèi)容包括由均值、方差、和波動(dòng)次數(shù)三個(gè)部分組成的一個(gè)15維數(shù)據(jù),具體結(jié)構(gòu)如表2所示。
表2 算法數(shù)據(jù)格式表
用通信流量表(表1)中從sendbytes到onlinetimes七個(gè)字段來(lái)生成特征數(shù)據(jù),取其28天的均值,記作FA1到FA7。表2中后7維反應(yīng)的是F1到F7在28天中低于0.9FAi和高于1.1FAi的次數(shù)。數(shù)據(jù)取28天是為了避免出現(xiàn)夸三個(gè)月份的情況。通過(guò)這個(gè)格式所得的數(shù)據(jù),前8維反應(yīng)的是該終端的基本特征,后半部分反應(yīng)的是數(shù)據(jù)的波動(dòng)情況,這種按次數(shù)統(tǒng)計(jì)的波動(dòng)情況相比方差更有說(shuō)明性,因?yàn)榻K端異常值波動(dòng)范圍非常大,會(huì)使得所得的方差受到異常值的影響,不具有全局的代表性,所以采用統(tǒng)計(jì)次數(shù)的方法。
2.3 異常數(shù)據(jù)的處理
異常主要分為數(shù)據(jù)缺失和數(shù)值異常。
缺失點(diǎn):在過(guò)去28天中沒(méi)有一條數(shù)據(jù),或者只有少數(shù)幾條。此類終端主要分為三種情況。第一種是實(shí)際上是已經(jīng)廢棄的電表;第二種是新增加的電表;第三種是由于故障導(dǎo)致數(shù)據(jù)大量缺失。
異常點(diǎn):有些終端的數(shù)據(jù)會(huì)存在異常值,比均值高出幾個(gè)數(shù)量級(jí)。
噪聲的處理:上述異常情況雖然會(huì)對(duì)分類結(jié)果產(chǎn)生一定的影響,但是影響并不明顯,實(shí)驗(yàn)中并沒(méi)有直接過(guò)濾掉這些數(shù)據(jù),同時(shí)也比較符合實(shí)際情況。
2.4 數(shù)值歸一化和加權(quán)
因?yàn)镵NN算法是通過(guò)計(jì)算各個(gè)點(diǎn)中間的距離,所以是一種對(duì)數(shù)值敏感的算法。一條數(shù)據(jù)中,如果某個(gè)維度存在一個(gè)較大的值,會(huì)使得其他維度的作用無(wú)法體現(xiàn)。因此必須對(duì)數(shù)據(jù)進(jìn)行歸一化。數(shù)值歸一化方法是,先獲得全部數(shù)據(jù)各個(gè)項(xiàng)的均值,然后各個(gè)數(shù)據(jù)再除以這個(gè)均值,使得大部分點(diǎn)的值都在1附近。
對(duì)于歸一化后的數(shù)據(jù),還需要對(duì)其進(jìn)行加權(quán)。加權(quán)是針對(duì)各個(gè)維度重要性的不同,適當(dāng)放大或縮小其數(shù)值,以改變其在計(jì)算距離時(shí)的影響力。本算法中使用的加權(quán)系數(shù)對(duì)應(yīng)15個(gè)維度分別為:0.5, 0.4, 0.6, 0.2, 0.8, 1.0, 2.5, 1.0, 0.5, 0.9, 0.5, 0.5, 0.5, 0.8, 1.2。
本文提出的KNN打分算法是基于傳統(tǒng)K-最近鄰算法,可以在分類過(guò)程中同時(shí)對(duì)分類結(jié)果打分。傳統(tǒng)的KNN算法的工作原理是:算出測(cè)試點(diǎn)與所有已知類型訓(xùn)練點(diǎn)的歐氏距離,取距離最近的k個(gè)點(diǎn),將k個(gè)點(diǎn)中占有點(diǎn)數(shù)量最多的類別作為判決結(jié)果。
KNN打分算法是在原有算法基礎(chǔ)上,獲得分類結(jié)果后,利用領(lǐng)近點(diǎn)的距離和類型算出該點(diǎn)的得分(可靠性)。提出打分算法的原因是,對(duì)于電網(wǎng)公司而言,對(duì)故障進(jìn)行排查需要到現(xiàn)場(chǎng)進(jìn)行勘察、維修的,需要付出一定的人力物力成本,所以要盡量避免錯(cuò)誤的判斷導(dǎo)致浪費(fèi)。傳統(tǒng)KNN算法只提供了一個(gè)分類結(jié)果,使得維修部門只能全部排查或者隨機(jī)選擇,而本算法可以提供一個(gè)判決的可靠性指標(biāo)以供參考,使維修部門可以根據(jù)輕重緩急靈活決定排查順序。
3.1 KNN打分算法的步驟[5]:
1) 獲得原始數(shù)據(jù),處理成格式如表2的特征數(shù)據(jù)
2) 將特征數(shù)據(jù)按照比例分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)
3) 對(duì)于每一條測(cè)試數(shù)據(jù)testSample:
(1) 算出testSample到所有訓(xùn)練數(shù)據(jù)的歐氏距離
(2) 選擇距離最小的K個(gè)點(diǎn),統(tǒng)計(jì)其中各類別的個(gè)數(shù)
(3) 取同一類別個(gè)數(shù)最多的為分類結(jié)果
(4) 根據(jù)分類結(jié)果和距離,計(jì)算得分
4) 統(tǒng)計(jì)所有測(cè)試數(shù)據(jù)的結(jié)果并輸出
3.2 基于KNN算法提出的打分機(jī)制:
本算法的打分機(jī)制是從KNN算法原理衍生出來(lái)的,用公式可表示為:
(1)
rank=(r+K)*C
(2)
其中D1,D2到Dk分別表示KNN算法中與該點(diǎn)最接近的K個(gè)點(diǎn)的距離,每一個(gè)分?jǐn)?shù)前的正負(fù)號(hào)由類型決定,如果Di點(diǎn)的標(biāo)簽類型與最終判決結(jié)果相同,則系數(shù)為+1,否則為-1。該式的物理含義為,對(duì)一個(gè)待判斷點(diǎn),在獲得判決結(jié)果后,與它臨近的幾個(gè)點(diǎn)中,和判決結(jié)果類別相同的點(diǎn),對(duì)次判斷結(jié)果起到支持作用,增加分?jǐn)?shù),不同類別的點(diǎn)則減少分?jǐn)?shù)。最后再根據(jù)K將r映射到1%到100%的范圍上。本算法中映射函數(shù)為公式2,取K等于3,C等于13。
4.1 數(shù)據(jù)來(lái)源和評(píng)判標(biāo)準(zhǔn)
數(shù)據(jù)來(lái)源為南方電網(wǎng)公司,2014年的電網(wǎng)數(shù)據(jù)。用于算法測(cè)試的數(shù)據(jù)是20058個(gè)終端在2014年3月份到12月份的通信流量數(shù)據(jù),并通過(guò)2014年全年維修記錄對(duì)終端的狀況進(jìn)行標(biāo)注,包括出現(xiàn)故障的時(shí)間以及是否出現(xiàn)故障。在標(biāo)記的結(jié)果中,正常點(diǎn)為13 351個(gè),故障點(diǎn)為6 707個(gè),時(shí)間主要集中在6月份到12月份。在測(cè)試中,使用75%的數(shù)據(jù)做訓(xùn)練樣本,共15 044點(diǎn),使用余下25%的點(diǎn),做測(cè)試樣本。
評(píng)判標(biāo)準(zhǔn):實(shí)驗(yàn)使用召回率、正確率和F值來(lái)衡量通信故障預(yù)測(cè)模型對(duì)于故障的分類效果。召回率、正確率和F值的定義如公式3、4、5所示[6-7]:
(3)
(4)
(5)
以對(duì)故障的預(yù)測(cè)為例,正確率是指:預(yù)測(cè)到的故障中,有多少是實(shí)際發(fā)生故障的;召回率是指:實(shí)際發(fā)生故障的全部點(diǎn)中,有多少被正確預(yù)測(cè)到了;F值可以平衡召回率和正確率的值。
4.2 算法測(cè)試主要分為三個(gè)部分
4.2.1 算法自身分類的準(zhǔn)確性驗(yàn)證
測(cè)試時(shí),隨機(jī)選取訓(xùn)練數(shù)據(jù)點(diǎn)15 044個(gè),測(cè)試數(shù)據(jù)點(diǎn)數(shù)5 014個(gè),對(duì)算法進(jìn)行多次驗(yàn)證,最后結(jié)果取均值,得到比較全面的結(jié)果。如表3所示。
表3 故障點(diǎn)和正常點(diǎn)的準(zhǔn)確性表
結(jié)果分析:本算法對(duì)正常點(diǎn)的判斷效果優(yōu)于對(duì)故障點(diǎn)的判斷,但是故障點(diǎn)判斷的正確率依然可以達(dá)到77%,召回率和F值也都比較高。結(jié)論:本算法對(duì)故障點(diǎn)和正常點(diǎn)的分類具有明顯的效果,其分類結(jié)果對(duì)實(shí)際判斷具有參考價(jià)值。
4.2.2 算法打分的可靠性驗(yàn)證
打分結(jié)果的測(cè)試方法:分別統(tǒng)計(jì)正確判斷中和錯(cuò)誤判斷中,各個(gè)分?jǐn)?shù)段計(jì)量點(diǎn)的個(gè)數(shù);再將所得各個(gè)分?jǐn)?shù)段的數(shù)量,除以正確判斷和錯(cuò)誤判斷各自的總數(shù),獲得各個(gè)分?jǐn)?shù)段所占的比例,如圖1所示。
圖1 正誤判斷分?jǐn)?shù)分布統(tǒng)計(jì)圖
由圖1可以看出,在正確判斷的數(shù)據(jù)中,超過(guò)95%的點(diǎn)分?jǐn)?shù)超過(guò)60分,而且分?jǐn)?shù)主要集中在80分;在錯(cuò)誤判斷的結(jié)果中,得分大于60分的約占54%,但在70分以上比例約只有32%。所以本算法得出的得分具有一定的參考價(jià)值,在實(shí)際判斷中,根據(jù)判決結(jié)果,結(jié)合算法給出的分?jǐn)?shù),可以得到更加準(zhǔn)確的判斷。
4.2.3 按實(shí)際情況測(cè)試準(zhǔn)確率
數(shù)據(jù)選擇:選擇一個(gè)具有代表性的專家樣本作為訓(xùn)練集,時(shí)間在2014年3月份到10月份之間,再用2014年11月到12月的點(diǎn)作為測(cè)試數(shù)據(jù)。
測(cè)試方法如圖2所示。
圖2 判決結(jié)果二次處理流程圖
具體是:從2014年11月1號(hào)開(kāi)始,每隔一周進(jìn)行一次掃描。每次判斷結(jié)束后,將所有判斷為故障的點(diǎn)按分?jǐn)?shù)由高到低排序,將分?jǐn)?shù)最低的30%調(diào)整為正常點(diǎn),減少預(yù)測(cè)為故障點(diǎn)的數(shù)量,提升正確率。此處是結(jié)合實(shí)際情況進(jìn)行了二次處理,因?yàn)樵趯?shí)際中,我們比較關(guān)心故障點(diǎn)的預(yù)測(cè),同時(shí),對(duì)于把正常點(diǎn)誤判為故障點(diǎn)是比較敏感的,因?yàn)闀?huì)浪費(fèi)人力成本去排查,但是也要保證對(duì)故障能有較高的識(shí)別率。通過(guò)圖2所示處理,可以預(yù)測(cè)為故障但分?jǐn)?shù)較低的點(diǎn)判決結(jié)果修正為正常,以確保所預(yù)測(cè)的故障點(diǎn)中,有較高的準(zhǔn)確性。
到12月份時(shí),從測(cè)試數(shù)據(jù)中去除11月份的故障點(diǎn),將他們添加到專家樣本庫(kù)中,利用剩余的點(diǎn)再進(jìn)行測(cè)試。
對(duì)于最終判決結(jié)果是否正確,將前后15天確定為一個(gè)界限,當(dāng)預(yù)測(cè)為故障,而前后15天內(nèi)沒(méi)有發(fā)生故障,則說(shuō)明預(yù)測(cè)錯(cuò)誤;當(dāng)預(yù)測(cè)為正常,如果前后15天內(nèi)發(fā)生故障則說(shuō)明預(yù)測(cè)錯(cuò)誤,否則正確。最后,我們用正確率、召回率和F值衡量算法的性能,采用如下公式計(jì)算:
對(duì)11月份和12月份數(shù)據(jù)的9次實(shí)驗(yàn)的結(jié)果如圖3所示。
圖3 實(shí)際方法測(cè)試算法效果圖
由圖3可以看到,在這種測(cè)試模式下,本算法具有較高的正確率,不過(guò)由于受到故障時(shí)間判斷的影響,每個(gè)月波動(dòng)較大,正確率平均在70%以上,但是召回率還比較低。
通過(guò)KNN打分算法進(jìn)行分類,可以一定程度上獲得分類結(jié)果及其可靠性,對(duì)于維修部門有實(shí)際的參考價(jià)值?,F(xiàn)階段,本算法只使用了通信流量表的內(nèi)容,在接下來(lái)的工作中,將主要進(jìn)行三個(gè)方面的擴(kuò)展:
(1) 本算法在訓(xùn)練數(shù)據(jù)的數(shù)量非常大時(shí),效率將會(huì)明顯下降,需要對(duì)算法進(jìn)行優(yōu)化,同時(shí)可以對(duì)現(xiàn)在使用的數(shù)據(jù)格式進(jìn)行降維,以降低時(shí)間和空間復(fù)雜度。
(2) 算法下一步將進(jìn)一步結(jié)合通信流量表、表碼表和瞬時(shí)量表,更加全面細(xì)致的獲得終端的特征,提高算法準(zhǔn)確性。
(3) 對(duì)于判斷為故障的點(diǎn)進(jìn)行細(xì)分,判斷出其具體故障類型,以及是否誤判。這個(gè)需要引進(jìn)其他的算法實(shí)現(xiàn)。
[1] 劉濤,楊勁鋒,闕華坤,等. 自適應(yīng)的竊漏電診斷方法研究及應(yīng)用[J]. 電氣自動(dòng)化,2014,36(2):60-62.
[2] 楊勁鋒,劉濤,陳啟冠,等. 基于海量計(jì)量數(shù)據(jù)的電力客戶在線分群研究[J].華東電力, 2013,42(8):1581-1585.
[3] COVER T, HART P.Nearest neighbor pattern classification[J]. IEEE Trans. on Information Theory,1967,(13):21-27.
[4] 張良均, 陳俊德,劉名軍,等. 數(shù)據(jù)挖掘?qū)嵱冒咐治鯷M]. 北京:機(jī)械工業(yè)出版社,2013.
[5] HARRINGTON P, 李銳. 機(jī)器學(xué)習(xí)實(shí)戰(zhàn)[M]. 北京:人民郵電出版社,2013.
[6] CIOS K J, PEDRYCZ W, SWINIARSKI R W. Data mining a knowledge discovery approach[M]. Springer US,2007.
[7] JIAWEI H, KAMBER M.Data mining: concepts and techniques[M]. San Francisco, CA, itd: Morgan Kaufmann,2011.
Detection & Warning of Communication Faults with Automatic Power Measurement Terminals Based on KNN-Score Algorithm
Wang Shaofeng1, Wu Shaocheng1, Liu Tao1, Chen Hang2,3, Lu Yueming2,3
(1. Measurement Center, Shenzhen Power Supply Bureau Co., Ltd., Shenzhen Guangdong 518001, China;2. School of Information and Communication Engineering,Beijing University of Posts and Telecommunications (BUPT), Beijing, 100876, China; 3. Key Laboratory of Ministry of Education for Trustworthy Distributed Computation & Service in BUPT, Beijing 100876, China)
The quality of data received at present from the master station of the automatic power measurement system via the public GPRS mobile network may be easily affected by terminal fault and communication quality. In this respect, this paper presents an improved KNN-score algorithm based on KNN (K-Nearest Neighbor) algorithm. Data related to terminal communication flow is used for the detection and warning of terminal faults, and the algorithm is tested through simulation of real environment. The additional scoring function on the basis of traditional KNN algorithm does not only allow early fault detection and warning, but also can measure the reliability of the result of judgment through the score, so that related personnel can decide whether on-site trouble shooting is required, thus reducing the cost.
communications fault prediction; measurement automation;KNN-Score algorithm; feature extraction;data analysis
10.3969/j.issn.1000-3886.2016.04.027
TM712
A
1000-3886(2016)04-0086-04
王少鋒(1967-),男,廣東人,專業(yè):從事計(jì)量管理工作。 伍少成(1972-),男,湖南人,博士,高級(jí)工程師,專業(yè):從事計(jì)量自動(dòng)化工作。 劉濤(1980-),男,湖北人,博士,高級(jí)工程師,專業(yè):從事計(jì)量自動(dòng)化工作。 陳航(1992-),男,福建人,碩士生,專業(yè):信息與通信工程。 陸月明(1969-),男,江蘇人,教授,博士生導(dǎo)師,專業(yè):云計(jì)算、智能光網(wǎng)絡(luò)、大數(shù)據(jù)存儲(chǔ)與計(jì)算。
定稿日期: 2015-12-16