文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2018.S1.068
0 引言
近年來,隨著用電信息采集系統的推廣,部分地區的用電數據采集成功率達到99%以上,大工業用戶的96點負荷數據反映了用戶的用電特征和用電習慣。在同一個行業里,往往存在幾種相同的、相似的用電特性,而一小部分與其他企業用電習慣不同的用戶,稱之為離群點,離群用戶往往意味著用電異常、疑似竊電等情況,因此對于電力離群用戶的識別具有重要的業務意義。針對無序數據的離群點檢測方法通常包括基于統計的方法、基于距離的方法、基于密度的方法和基于偏離的方法。針對時間序列間的離群點檢測方法,近年來的主要研究包括:文獻[2]提出了一種基于小波密度估計的數據流離群點檢測;文獻[3]提出了一種基于粗糙集理論的序列離群點檢測方法,利用粗糙集理論中的知識熵和屬性重要性等概念來構建3種類型的序列,并通過分析序列中元素的變化情況來檢測離群點。在電力領域的離群點檢測研究中,文獻[4]提出了一種基于集合論估計的電網狀態辨識的離群點識別方法,它基于相容性的角度對離群點的性質進行分析,提出不相容離群點和相容離群點的概念,并基于狀態估計和集合論估計理論分別識別兩類離群點。在使用數據挖掘的技術方案中,文獻[1]中NAGI J等人使用GA-SVM (Genetic Support Vector Machines)檢測用電異常情況和竊電行為,GA-SVM使用C類SVM進行分類,能夠取得較高的準確率,但是存在學習時間過長、需要事先對大量樣本進行分類的問題。文獻[5]中提出了一種基于高斯核函數改進的電力用戶用電數據離群點檢測方法。首先通過模糊聚類的方法將用戶分類;然后提取每一類用戶的用電行為特征量,采用主成分分析法對特征集進行降維;最后利用高斯核函數改進局部離群因子算法,提出高斯核密度局部離群因子。文獻文獻[6]提出了一種基于SVM的AMI環境下用電異常檢測研究方法,使用One-Class SVM無監督機器學習架構對電力用戶負荷異常進行檢測,但因為未對參數進行優化,同樣存在學習時間過長、容易陷入局部最優化的問題。
本文提出了一種基于蟻群算法優化參數的One-Class SVM分類算法進行用電特征離群用戶識別研究,并通過實踐分析證明,該算法能夠有效識別某個行業中的用電特征離群用戶。
1 算法介紹
1.1 SVM簡介
支持向量機(Support Vector Machine,SVM)是VAPNIK V和CORTES C等人于20世紀90年代提出的一種分類算法,它是基于結構風險最小化原則,利用有限樣本訓練獲取具有較高泛化能力的決策函數。根據樣本集的特征,支持向量機可分為線性支持向量機和非線性支持向量機。一般情況下,實際問題中的樣本是符合高斯分布的非線性樣本集。本文專注于對非線性支持向量機的研究。
設樣本集為(xi,yi),i=1,2,…,n,其中n代表樣本個數,xi∈Rm是樣本的特征向量,yi∈{+1,-1}為樣本類別。存在非線性映射x→Φ(x),可以將樣本特征向量映射到另一個高維特征空間,并構造最優分類超平面:
其中C為懲罰參數,控制錯分樣本的懲罰程度。
引入核函數K(xi,xj)=Φ(xi)·Φ(xj),再用拉格朗日乘子法,將上述最優化問題轉化為對偶形式:
1.2 One-Class SVM算法介紹
One-Class問題指的是在分類問題中由于異常樣本較難獲取而只關注正常樣本,可以用One-Class SVM來解決,本文研究的電力離群用戶檢測即可以用此方法。在One-Class SVM算法中常用的核函數有線性核函數、多項式核函數、高斯徑向基(RBF)核函數以及Sigmoid核函數等,本文采用高斯徑向基核函數
One-Class SVM的參數決定了該算法的學習能力和推廣能力,對于RBF核函數的One-Class SVM來說,其參數包含懲罰參數C和核參數σ。懲罰參數C是在結構化風險和樣本誤差之間的折中,其值越大則允許的誤差越?。缓藚郸遗c學習樣本的輸入空間范圍和寬度有關,樣本輸入空間越大,σ取值越大。
2 改進蟻群算法優化One-Class SVM參數
One-Class SVM算法通常存在參數難以確定的問題,本文采用改進的蟻群算法對參數進行調優。蟻群算法是1992年意大利學者DORIGO M首先提出的一種源于螞蟻覓食行為的智能仿生蟻群優化算法,該算法具有智能搜索、正反饋、全局優化、魯棒性強等優點,本文采用蟻群算法優化One-Class SVM參數。
2.1 初始化參數
首先初始化蟻群算法的迭代次數M、蟻群數量N、全局搜索步長lam和信息素揮發系數等參數Rho。再隨機生成每只螞蟻的初始化位置(C,σ),然后對訓練集通過SVM學習得到相應的正確率模型:
其中precission(i)代表第i只螞蟻進行SVM訓練的準確率。當準確率越大時信息素越大。
2.2 局部和全局搜索
首先找到信息素最大的螞蟻并保存信息素信息為T0(bestindex),根據螞蟻的信息素大小確定每只螞蟻的下一步轉移概率:
如果螞蟻i的轉移概率p(i)≥p0,則進行全局搜索。當進行局部搜索時,對螞蟻的位置進行迭代更新,使用如下規則:記(Cold,σold)為迭代前的螞蟻位置,(Cnew,σnew)為迭代后的螞蟻位置,(Cbest,σbest)為迭代前信息素最大的螞蟻所在的位置,則當Cold<Cbest時,Cnew=Cold+lam;否則,Cnew=Cold-lam。同理,當σold<σbest時,σnew=σold+lam;否則,σnew=σold-lam。
2.3 更新信息素
若所有的螞蟻都完成了一次局部或全局搜索的迭代,根據蟻群算法的規則,需要對每個螞蟻位置上的信息素進行更新,將信息素揮發因子定義為:
利用更新后的信息素重復2.2的步驟,直至迭代次數達到設定的最大迭代次數,參數優化完成。找到信息素最大的螞蟻,并記錄下其位置(C,σ),即為One-Class SVM的最優化參數。
本文的改進蟻群算法優化One-Class SVM的過程如圖1所示。
3 實證驗證
本文以某地市電力公司的紡織業用戶的用電負荷數據為樣本,通過數據選取、數據預處理,利用上述基于蟻群算法優化的改進One-Class SVM算法進行離群用戶識別建模,最終通過模型輸出電力離群用戶。
3.1 數據選取及預處理
本文選取某地市電力采集系統的紡織業所有用戶(共計6 046個)的96點負荷數據,時間跨度為2018年2月1日至5月31日,共3個月,共計54萬余條樣本數據,94個維度,如表1所示。
3.2 數據預處理
在做大數據分析時,獲取到的原始數據通常不能立即使用,需要進行相應的去重、填補缺失值、歸一化處理等數據規范化操作才能使數據正常可用,本文的數據預處理包括缺失值處理、歸一化處理和數據降維。
(1)缺失值處理
由于數據采集系統在采集的過程中可能存在斷電或者其他采集異常等行為,會導致用戶96點負荷數據存在缺失值,如若不處理將會對分析結果造成影響。常用的處理缺失值的方法有刪除法、均值插補法、多重插補法等,本文采取的方式是均值插補法,即對每一個指標中存在的缺失值用該指標的非缺失樣本均值填充。
(2)歸一化處理
本文的目的是尋找用電曲線特征離群的用戶,因此在處理數據時,需要通過歸一化消除不同樣本之間負荷數據的大小問題,本文按照每個樣本對數據進行歸一化。處理函數如下:
其中x是某一樣本,i是代表該樣本對應的第x個變量,min(x)表示該用戶這一天的最小負荷,max(x)表示該用戶這一天的最大負荷。
(3)數據降維
本文數據采集的是96點負荷數據,維度太高對輸入模型的干擾較大,因此本文將數據處理為24小時的負荷數據。
3.3 蟻群算法獲取最優One-Class SVM參數
在蟻群算法中,設置初始化參數:迭代次數M=50,蟻群數量N=20,信息素揮發系數Rho=0.1,步長lam=0.03,螞蟻的初始化位置(C,σ)為隨機生成的范圍均為(0,1)。期間進行One-Class SVM訓練的樣本為6 046個用戶的用電負荷數據。最終得到最優的(C,σ)為(0.057,0.378)。
3.4 One-Class SVM異常點檢測
本文選用的核函數為高斯徑向基函數,懲罰系數和核函數分別取蟻群算法訓練得到的最優參數的One-Class SVM模型對樣本數據集進行異常點檢測,在6 046個樣本中共檢測出異常點344個,正常點5 702個。對所有樣本數據采用主成分分析(PCA)降至三維后,進行可視化,可得所有異常負荷點和正常負荷點的分布圖,如圖2所示。
在電量負荷曲線的表現上,離群用戶與正常用戶的差異很大,如圖3所示。正常用戶的負荷用電高峰出現在上午9點至下午17點范圍內,而離群用戶的負荷高峰出現在下午18點至凌晨2點這個范圍內,特征差異明顯,通過對識別出來的離群用戶進行調研,這部分用戶屬于多用電量較大且對電費敏感,在晚上進行生產的用戶。
4 結論
本文通過基于蟻群算法改進One-Class SVM模型對電力離群用戶進行識別,實踐證明,該改進的算法具有收斂速度快、運行效果好、能較快得到全局最優解等特點,具有良好的實踐效果,能有效識別出用電特征離群的用戶。
參考文獻
[1] NAGI J, YAP K S, TIONG S K, et al. Detection of abnormalities and electricity theft using genetic support vector Machines[C].TENCON 2008-2008 IEEE Region 10 Conference.IEEE,2008:1-6.
[2] 劉耀宗,張宏,孟錦,等.基于小波密度估計的數據流離群點檢測[J].計算機工程,2013,39(2):178-181.
[3] 江峰,杜軍威,葛艷,等.基于粗糙集理論的序列離群點檢測[J].電子學報,2011(2):345-350.
[4] 周寧慧,王彬,王治華,等.基于集合論估計的電網狀態辨識 (四)離群點識別[J].電力系統自動化,2016,40(8):22-28,50.
[5] 孫毅,李世豪,崔燦,等.基于高斯核函數改進的電力用戶用電數據離群點檢測方法[J].電網技術,2018,42(5):1595-1606.
[6] 簡富俊,曹敏,王磊,等.基于SVM的AMI環境下用電異常檢測研[J]. 電測與儀表,2014(6):64-69.
[7] 張玲,劉波.基于殘差統計的時間序列加性離群點檢測算法研究[J].電子技術應用,2015,41(9):85-87,91.
[8] 孫毅,李世豪,崔燦,等.基于高斯核函數改進的電力用戶用電數據離群點檢測方法[J].電網技術,2018,42(5):1595-1606.
[9] 李權,周興社.一種新的多變量時間序列數據異常檢測方法[J].時間頻率學報,2011,34(2):154-158.
[10] 周勇.時間序列時序關聯規則挖掘研究[D].成都:西南財經大學,2008.
[11] 蘇衛星,朱云龍,胡琨元,等.基于模型的過程工業時間序列異常值檢測方法[J].儀器儀表學報,2012(9):2080-2087.
[12] 皇甫堪,陳建文,樓生強.現代數字信號處理[M].北京:電子工業出版社,2003.
[13] 薛安榮,鞠時光,何偉華,等.局部離群點挖掘算法研究[J]. 計算機學報,2007(8):1455-1463.
作者信息:
張 薇1,呂 磊2,朱 敏2
(1.中國電力科學研究院有限公司,北京 100192;2.國網四川省電力公司眉山供電公司,四川 眉山 620020)