劉豐威,胡文,陳臣
(廣州供電局有限公司,廣東廣州,510620)
當前在用戶用電的過程中,存在竊電、欺詐等一系列問題,這些問題會導致電力損失,統(tǒng)稱為非技術性損失NTL(Non-Technical Loss)。非技術性損失不僅僅會影響電力系統(tǒng)的正常運行,而且對于整個電網的調度也會產生顯著影響,甚至由于竊電等行為的存在會引發(fā)安全事故。因此,對于電力企業(yè)以及電力系統(tǒng)而言會對用戶的用電行為進行稽查。目前稽查用戶行為異常主要靠人工進行篩選,而依靠人工篩選的工作量大、效率低等原因,如果考慮利用機器學習對居民用電行為進行分析,自動篩選出用電異常嫌疑比較大的用戶,重點對篩選出的用戶進行分析,減少其工作量。其中高斯分布的檢測算法能夠進行對用電行為進行分析,因此希望通過高斯分布的檢測算法對居民用電行為異常進行分析。
這是比較常用的一種方法,即通過歷史經驗或者對數據進行一定的處理并且得到閾值,并且制定一系列規(guī)則,在用戶用電量在一定條件下高于該閾值的時候便自動判定為異常。
該方法優(yōu)點為簡單快捷,可以通過規(guī)則一步得出用電異常的用戶或者通過閾值得到用電嫌疑用戶,但是缺點也十分明顯,即根據歷史經驗或者對數據簡單處理的閾值可能不能精準的定位到實際的閾值。
其基本原則都是: 希望族(類)內的相似度盡可能高,族(類)間的相似度盡可能低(相異度盡可能高)。常用的聚類方法有以下四種。
劃分聚類:給定一個n個對象的集合,劃分方法構建數據的k 個分區(qū),其中每個分區(qū)表示一個族(族)。大部分劃分方法是基于距離的,給定要構建的k個分區(qū)數,劃分方法首先創(chuàng)建一個初始劃分,然后使用一種迭代的重定位技術將各個樣本重定位,直到滿足條件為止。
層次聚類:層次聚類可以分為凝聚和分裂的方法;凝聚也稱自底向上法,開始便將每個對象單獨為一個族,然后逐次合并相近的對象,直到所有組被合并為一個族或者達到迭代停止條件為止。分裂也稱自頂向下,開始將所有樣本當成一個族,然后迭代分解成更小的值。
基于密度的聚類:其主要思想是只要“鄰域“中的密度(對象或數據點的數目)超過某個閥值,就繼續(xù)增長給定的族。也就是說,對給定族中的每個數據點,在給定半徑的鄰域中必須包含最少數目的點。這樣的主要好處就是過濾噪聲,剔除離群點。
基于網格的聚類:它把對象空間量化為有限個單元,形成一個網格結構,所有的聚類操作都在這個網格結構中進行,這樣使得處理的時間獨立于數據對象的個數,而僅依賴于量化空間中每一維的單元數。
異常檢測的樣本數據,可能有標簽,但通常正常狀況的樣本很多,異常狀況的樣本很少,并且出異常的原因通常也不盡相同。所以,可以只針對正常狀況的樣本建模。
但因為本文收集的用電量數據沒有標簽,則可以對所有的樣本數據用一個模型建模,因為通常數據中異常狀況的樣本很少,對最終模型的影響很小。
通常樣本數據是多維的,所在使用高斯分布來建模的時候,可以分別對每一維使用一個一元高斯分,或者是對多維使用一個多元高斯分布來描述正常狀況的樣本數據。
這樣得到高斯分布模型對正常狀況的樣本計算得到的概率值就會比較大,對異常狀況的樣本計算得到的概率值就會比較小。
劃分聚類是基于距離的,可以使用均值或者中心點等代表族中心,對中小規(guī)模的數據有效;而層次聚類是一種層次分解,不能糾正錯誤的合并或劃分,但可以集成其他的技術;基于密度的聚類可以發(fā)現任意形狀的族,族密度是每個點的“鄰域“內必須具有最少個數的點,可以過濾離群點;基于網格的聚類使用一種多分辨率網格數據結構,能快速處理數據。
圖1 多分辨率網格數據處理圖
如圖1可以看出,通過聚類分析可以將相似度較高的一組數據進行分類。
其有不需要對數據進行打標簽,并且可以通過快速迭代完成分類的優(yōu)點,但是如數據并沒有清晰的分界,那么聚類分析算法將不能很好的應用。抽取普通居民用戶約4000戶,將其用電量做成散點圖圖2。
從圖2可以看出,除了年用電量超過5萬度的3個用戶,其余用電量均分布在0-20000度,并且沒有明顯的分界。因此僅基于低壓普通居民用電量數據較難應用聚類分析算法。
可以設定一個閾值,對一個新樣本,使用訓練得到的多元高斯分布模型計算概率值,如果得到的概率值比閾值小,就認為它是一個異常情況。
圖2 居民年用電量分布圖
下面我們觀察居民用電量在不同區(qū)間的分布情況。
圖3 2016年居民年總用電量
由圖3可以發(fā)現,很多住宅基本沒人住, 0度戶需要除去,去除0度戶后可以發(fā)現居民用電量分布基本符合高斯分布。
高斯概率的分布函數為:
正態(tài)分布的期望值μ決定了其位置,其標準差σ決定了分布的幅度。
累積分布函數是指隨機變量X小于或等于x的概率,用密度函數表示為:
由于從計量自動化系統(tǒng)導出的數據如圖4和圖5所示。
由圖可知,0度戶占了絕大部分,因此需要先將0度戶剔除,同時一年用電僅有200度以下的用戶可視為沒有人居住的用戶,也需要剔除。最后得出2016年總用電量分布圖如下,用柱狀圖方式表達,可以看到,總用電量分布基本上符合高斯分布。
圖4 居民用電量分布圖
圖5 居民年總電量分布圖
圖6 居民年總用電量分布圖
那么下一步可以進行高斯分布公式的計算。
根據已經處理好的數據,下一步需要對數據進行計算,求出高斯概率分布函數的參數。
第一步進行μ的計算,計算公式如下:
圖7 理論分布、實際分布對比圖
本文選取多于平均值5個標準差作為異常檢測的閾值,即2555+5*1550=10305kWh。
確定好閾值后即可以隨機選取臺區(qū),選取臺區(qū)中居民用電,并且用電容量為4kWh的居民用戶,將超過閾值的用戶篩選出來并且按照偏離平均值的大小進行排序,根據該清單去現場進行稽查核實,提升工作效率。
本文使用了基于高斯分布概率函數的異常檢測算法,本算法可以根據樣本自動確定異常閾值,同時定期更新樣本可以獲得新的異常閾值,不會因為整體用戶群用電量發(fā)生改變就使算法失去意義。未來可以進一步輔助以聚類算法對居民用電行為進行聚類,可以進一步篩選出用電行為異常嫌疑較大的用戶,同時輔助變壓器過載信息,輔助歷史用電突變情況等一系列信息進行判斷。可以進一步精確定位居民用電異常的行為。相信未來隨著算法的進步,機器學習分類、異常檢測可以極大提升稽查工作效率。