李寧,尹小明,丁學峰,蔡慧,汪偉
(1.中國計量大學 機電工程學院,杭州 310018; 2.國網浙江長興縣供電有限公司,浙江 湖州 313100)
當前,我國電力行業正處在技術水平升級的關鍵時期,需要加強新技術產品的開發。電網規模的逐漸增大和電力消費增長的同比提高,使電力網絡經濟化運行、節約資源降低線損以及優化電力消費結構成為當今社會關注的熱點話題[1]。
隨著竊電現象的層出不窮,我國電力企業每年因竊電產生的損失高達200億,社會供用電秩序也受到了極大地影響。所以電力企業必須開展高效的反竊電工作,以做到合理供電、合理用電,盡可能降低經濟損失[2]。
目前,國網供電公司采取的反竊電措施主要有:應用專業化的電能表箱和計量箱;將低壓出線端閉合至計量裝置的導體,此技術是目前反竊電技術中應用最為廣泛的方法;安裝反竊電智能電能表、豐富電能表功能;提高電采集系統的應用率等[3]。但是這些方法大多以研究反竊電裝置為主,缺乏足夠的反竊電算法用于分析海量的歷史用電數據,從而很難發現竊電用戶的用電特征[4]。
當前主流的反竊電算法有聚類、BP神經網絡、離群點算法等。文獻[5]利用自適應k-means聚類算法提取用戶的典型負荷曲線,用于實現負荷預測和負荷控制。文獻[6]分析了基于BP神經網絡的異常點檢測方法處理各種數據的情況,為挖掘電力數據異常點提供一種新的思路。文獻[7]介紹了一種基于異常因子檢測分析的電能表飛走異常分析方法,是一種檢測電能表飛走異常的新方法。
文章中研究的是一種針對電量數據異常點挖掘的竊電辨識方法,該方法融合聚類和異常點檢測算法,可以解決單一算法對離散度較高、非規律性的樣本無法有效挖掘的問題。方法的實現過程是:先利用聚類算法對樣本進行粗略分類,按照包含竊電異常嫌疑點數量大小降序排列,然后運用異常點挖掘算法對竊電嫌疑最大(即包含異常點數量最多)的一類進行二次分析,最后綜合兩種算法分析結果和實際情況確定最終的竊電嫌疑數據,并實現竊電報警。換句話說,這種方法可在現有的計量裝置下,通過分析用電量數據特征發現竊電用戶,降低防竊電成本[8]。
聚類算法有很多種,選擇哪一種算法用于實際樣本分析取決于數據的類型、聚類的目的。聚類算法主要分為:劃分方法、層次方法、基于密度的方法以及基于模型的方法等,在這些方法中使用最為廣泛的是劃分方法中的K-means聚類算法。該算法數據處理的效率高且原理簡單、易于實現,因此文中采用K-means聚類算法。
K-means聚類算法不同于分類方法,它不需要事先確定樣本分類類別的屬性,一般是根據經驗和需求先確定聚類的數目k,然后隨機選取k個點作為k個簇的聚類中心。初始聚類數目和初始聚類中心對聚類效果的影響都很大,一般對K-means聚類算法的改進都是在這兩個方面進行[9]。而聚類準則函數通常都是采用誤差平方和最小函數,即:
(1)
式中SSE是數據庫中所有樣本平方誤差的總和;x是空間中的點,表示給定的對象;ci是第i個簇的樣本平均值。
聚類算法迭代結束的條件是聚類準則函數達到最優,這種最小方差劃分使生成的結果簇盡可能的緊湊和獨立。
在大量數據中挖掘異常點的任務可以被分為兩個子任務:
(1)準確定義異常點;
(2)找到異常點挖掘方法。
1.2.1 定義異常點
假設任意一個樣本點的鄰域內最多允許的鄰居數為M,若發現某個樣本點存在第M+1個鄰居,則該點不是異常點;反之,若某個樣本點的鄰居數少于M個,則該點是異常點[10]。總結來說,在正常情況下,樣本的鄰居節點越少,則它是異常點的概率就越大。
求任意樣本點的鄰居數的方法是計算它與其他所有點的歐式距離,根據距離的大小來定義它們之間的相似度[11],最后根據上述假設確定分析的樣本點是否是異常點。由于所研究分析的對象是日用電量數據,所以此處采用的是一維歐氏距離。對兩個一維樣本數據x1和x2,歐式距離公式定義為:
D(x1,x2)=|x1-x2|
(2)
采用一維樣本大大降低了數據處理的復雜度,提高了算法執行的效率。因此,和其它竊電辨識算法相比,該方法具有一定的優勢。
1.2.2 異常點挖掘方法
對于一個包含n個樣本的數據集,采用循環搜索樣本鄰居的方法發現所有樣本的k個鄰居。當k≤M時,則可初步確定該點是異常點;反之,k>M時,則可認為該點是正常點。
兩種算法融合的過程是先用K-means聚類對樣本進行粗略地分類,按照包含竊電異常嫌疑點數量的大小降序排列,然后利用異常點檢測算法對竊電嫌疑最大的一類進行二次分析,最后綜合兩種算法分析結果和實際情況確定最終的竊電嫌疑數據,并實現竊電報警。
對日用電量數據特征進行分析可解決聚類數目k和初始聚類中心選擇不合理導致聚類效果下降的問題。因為根據用電量的實際情況,即使實際樣本波動很大,一般可將用電量分為3類,即異常偏高非竊電的樣本點、處在正常范圍內的樣本點、偏低的竊電嫌疑點,因此可將初始聚類數目k定為3;而對于一組符合上述情況的樣本,其樣本最大值、樣本均值、樣本最小值可以作為3個類的初始聚類中心。具體的聚類流程如圖1所示。
將圖1中的聚類結果按照包含異常點個數的大小降序排列,然后對竊電嫌疑最大的一類樣本利用異常點檢測算法進行二次分析,見圖2。
圖1 聚類算法流程圖
圖2 異常點檢測算法流程圖
圖3所示,融合兩種算法的竊電辨識方法是對聚類算法得到的異常數據進一步篩選,提高了竊電嫌疑報警的可信度。
圖3 融合兩種算法的竊電辨識方法流程圖
樣本作為算法的輸入,必定會影響算法輸出的分析結果,因此做好數據清洗和預處理工作對提高算法的準確性至關重要。表1中數據清洗的規則主要有四條。
表1 數據清洗規則
總之,清洗后要保證日用電量數據和相應的用電時間一一對應,否則無法正常處理和分析。數據預處理包含電量計算和電量數據歸一化。
任意一天用電量的計算方法定義為:
di=pi-pi-1
(3)
式中pi代表第i天的表計總正向有功功率,pi-1代表第i-1天的表計總正向有功功率。
當樣本數量較多時,一般采用線性歸一化方法將所有樣本化為介于0和1之間的數。線性歸一化公式為:
(4)
式中x(i)代表任意一個樣本值;min(x(n))代表樣本最小值;max(x(n))代表樣本最大值。
經過上述數據清洗和預處理過程,很大程度地減少了原始樣本數據不均衡對竊電辨識效果的影響。以此為基礎,經過K-means聚類算法和異常點檢測算法的兩次分析篩選,最終得到的異常點數據已經有很大的竊電嫌疑了。最后,通過對異常點對應的時間進行準確報警,可以為一線稽查人員的現場排查工作提供較為準確的依據。
此外,考慮到該方法所用數據都是由智能電能表采集得到,電能表如果存在時鐘偏差將導致用電數據不準確,進而在很大程度上影響竊電辨識結果的可信度。電力行業一般要求現場運行的電能表實際時鐘與北京時間的差異δ≤5 min/年(即0.82 s/天),因此在實際的分析過程中,要根據電能表是否存在偏差以及偏差程度大小適當調整算法辨識的結果以減少誤差。
為了驗證該方法在實際竊電辨識工作的有效性,下面選取了用電信息采集系統采集的真實數據進行分析驗證。
經過數據清洗后的某低壓用電用戶A在2015.4.1~2015.10.9期間的日用電量數據如圖4所示。橫坐標表示按照時間前后順序排列的數據編號,縱坐標表示的是用電量數值。從圖中可以看出,該樣本數據離散度較高、規律不明顯,所以不能直觀地看出該用戶在哪一天開始竊電。因此,下面使用融合聚類和異常點檢測算法的數據挖掘方法進行分析。
圖4 用戶A日用電量
該樣本的用電量最大值dmax=139.260 0(單位:kWh,下同),用電量最小值dmin=0,樣本均值dmean=32.028 3?;谏鲜鲈恚跏季垲悢的慷?,即將原始樣本分為3類C1、C2、C3,初始聚類中心集合Ccenter={139.260 0,32.028 3,0}。
因為實際分析的樣本數量有限,此處的樣本未經過歸一化。聚類分析的結果是將樣本分成3類,聚類后的結果不是按照原有時間順序排列,而是根據大小分類(見圖5)。
圖5 聚類算法分析結果
很明顯,經過聚類得到的分類結果還是比較粗糙的,處在簇邊緣的一些樣本被錯誤分類。
因此,需要利用異常點檢測算法對該分類結果進行二次分類。按照包含竊電嫌疑異常點數目大小將3類結果降序排列,即:標簽1類>標簽2類>標簽3類,3類用電量數據如圖6所示。
圖6 標簽分類用電量
考慮到竊電實際情況,在針對竊電嫌疑最大的標簽1類進行二次分類的結果中,將少量“×”狀的樣本數據(即錯誤聚類到標簽1類的樣本點)去掉,“”狀樣本點即為最終的異常點,將異常點與其對應的時間聯系起來,就可以實現竊電時間報警(見圖7)。
單獨使用異常點檢測算法得到的分析結果如圖8所示。圖中底部的粗線部分是檢測出的70個用電異常點,個數較多且較為密集。
圖7 標簽1類異常點二次分類結果
圖8 異常點檢測算法分析結果
通過上述案例分析得到的竊電報警時間為2015年7月17日,實際查證的開始出現竊電異常的時間為2015年7月13日,與算法流程中設置連續5天出現異常,第5天開始報警的條件相符合。此外,案例中分析的電量數據是來自正常的用電信息采集系統,不存在因電能表時鐘偏差導致電能計量不準確的問題,因此算法的報警時間是準確的,驗證了該方法在竊電辨識方面的準確性和實用性。
在異常數據挖掘方面,單獨的聚類算法準確率為q1=73/84×100%=86.9%,單獨的異常點檢測算法準確率為q2=70/84×100%=83.3%,兩種算法融合的方法檢測準確率為q=79/84×100%=94.0%。
由于篇幅限制,其它算例分析過程在這里就不一一贅述,此處選取了10個典型案例(包括上述案例)的算法分析結果與實際查證結果進行了對比(見表2)。
表2 典型案例分析結果匯總
從表2可以看出,對于竊電辨識準確的7組樣本,兩種算法融合后的異常數據挖掘準確率相比聚類算法平均提升6%,相比異常點檢測算法平均提升6.4%,其中有3組樣本的算法分析結果與實際查證結果存在偏差的原因在于這些用戶是間斷性用電,因為竊電原理是用戶采取非法手段不用電或少用電,而間斷性用電用戶在正常不用電時期的用電數據會被當做異常點處理。
綜合大量的樣本分析結果,表明融合聚類和異常點檢測算法的竊電辨識方法在一定程度上提高了竊電辨識的準確度和效率,具有一定的實用性。
在深入分析竊電原理、研究聚類算法和異常點檢測算法的基礎上,結合用電信息采集系統提供的用電數據,提出了一種融合聚類和異常點檢測算法的竊電辨識方法。該方法利用聚類算法先對樣本進行粗略分類,按照包含竊電異常嫌疑點數量大小降序排列,然后利用異常點檢測算法對竊電嫌疑最大的一類數據進行二次分析,最后綜合兩種算法分析結果和實際情況確定最終的竊電嫌疑數據,并實現竊電報警。
相較于單純的聚類算法和異常點檢測算法,該方法將兩種算法進行結合,一定程度上彌補了單一算法的不足,可以將竊電辨識的準確率提高6%左右,進而提升了反竊電工作的效率。
當然,本算法仍需要不斷的完善,研究更加合適的聚類準則函數和更加高效的異常點篩選機制將會進一步提高竊電辨識的準確性。因此,針對該方法的完善工作將會在后續的研究中進行。