本發(fā)明涉及電力系統(tǒng)配用電數據挖掘領域,特別是一種異常電力用戶挖掘過程中,類分布不平衡問題的解決方法。
背景技術:
對于電力公司,檢測異常用電模式的主要目的在于降低非技術性損失(non-technical losses,NTL)。所謂NTL是指由配電網側電力用戶的竊電、欺詐等一系列欺騙性用電行為所導致的電能損失。NTL損失集中在中低壓網絡遍布整個電力分布系統(tǒng),而目前的處理方法多是基于現場檢查,這不僅需要大量的人力資源而且增加了運營成本。
現有的分類算法都是基于類分布大致平衡這一假設,即假定用于訓練的數據集中各類所含樣本數大致相當。然而在電力用戶構成的數據集中,異常用戶所占的比例非常小,因此,異常用戶挖掘屬于不平衡數據集的二元分類問題。傳統(tǒng)的分類器傾向于對多數類(正常用戶)有較高的識別率,而對于少數類(異常用戶)的識別率卻很低。因此,對異常電力用戶挖掘的問題需要采用特殊的處理技術。
技術實現要素:
本發(fā)明的目的是為了解決上述問題,設計了一種異常電力用戶挖掘中類分布不平衡問題的解決方法。具體設計方案為:
一種異常電力用戶挖掘中類分布不平衡問題的解決方法,包括SMOTE算法、ROSE算法,
所述SMOTE算法為合成少數類過采樣算法,所述ROSE算法為隨機過采集樣本算法,所述SMOTE算法通過在位置相近的少數樣本點之間插入新樣本來實現對樣本數量的平衡,其樣本采集公式為:
pi=x+rand(0,1)×(yi-x),i=1,2,…,N,
其中pi為獲得少數類樣本,
x為原少數類樣本,
y為隨機采集樣本,
N為過采集樣本倍率,
所述ROSE算法為隨機過采集樣本算法,所述ROSE算法中,首先從n的訓練集Tn訓練集中抽取一個元
組(xi,yi),然后在其近鄰生成一個新元組該近鄰區(qū)域的形狀由概率分布確定,范圍由協方差矩陣Hj確定。
所述SMOTE算法中,所述隨機采集樣本y通過搜索原少數類樣本x的k個同類最近鄰樣本,并在原少數類樣本x的k個最近鄰樣本中隨機選擇N個樣本獲得,記為y1,y2,···,yN,在x與yi(i=1,2,···,N)之間進行隨機線性插值。
所述SMOTE算法中,所述rand(0,1)是區(qū)間(0,1)內的隨機數。
所述ROSE算法中,元組(xi,yi),i=1,2,···,n。其中元組的類標號yi∈{y0,y1}。
所述ROSE算法中,xi是Rd上隨機向量x的某個實現,服從概率密度函數f(x)。
所述ROSE算法中,令類別yj(j=0,1)對應的元組數為nj,則:
以概率πj選擇
以概率1/nj選擇元組(xi,yi)∈Tn,其中
從中隨機抽樣得到其中是以xi為分布中心,以Hj為協方差矩陣的概率分布。
重復所述ROSE算法m次,則可以得到一個規(guī)模為m的新的合成訓練集
所述合成訓練集的不平衡程度由概率πj確定,若πj=1/2,則中兩類的樣本數大致相等。
通過本發(fā)明的上述技術方案得到的異常電力用戶挖掘中類分布不平衡問題的解決方法,其有益效果是:
從訓練集入手,通過重采樣改變訓練數據的分布,即構造一個樣本數相對平衡的合成數據集,并在新數據集上進行建模,從而提高分類器的性能,解決類分布不平衡問題。
具體實施方式
一種異常電力用戶挖掘中類分布不平衡問題的解決方法,包括SMOTE算法、ROSE算法,
所述SMOTE算法為合成少數類過采樣算法,所述ROSE算法為隨機過采集樣本算法,所述SMOTE算法通過在位置相近的少數樣本點之間插入新樣本來實現對樣本數量的平衡,其樣本采集公式為:
pi=x+rand(0,1)×(yi-x),i=1,2,…,N,
其中pi為獲得少數類樣本,
x為原少數類樣本,
y為隨機采集樣本,
N為過采集樣本倍率,
所述ROSE算法為隨機過采集樣本算法,所述ROSE算法中,首先從n的訓練集Tn訓練集中抽取一個元組(xi,yi),然后在其近鄰生成一個新元組該近鄰區(qū)域的形狀由概率分布確定,范圍由協方差矩陣Hj確定。
所述SMOTE算法中,所述隨機采集樣本y通過搜索原少數類樣本x的k個同類最近鄰樣本,并在原少數類樣本x的k個最近鄰樣本中隨機選擇N個樣本獲得,記為y1,y2,···,yN,在x與yi(i=1,2,···,N)之間進行隨機線性插值。
所述SMOTE算法中,所述rand(0,1)是區(qū)間(0,1)內的隨機數。
所述ROSE算法中,元組(xi,yi),i=1,2,···,n。其中元組的類標號yi∈{y0,y1}。
所述ROSE算法中,xi是Rd上隨機向量x的某個實現,服從概率密度函數f(x)。
所述ROSE算法中,令類別yj(j=0,1)對應的元組數為nj,則:
以概率πj選擇
以概率1/nj選擇元組(xi,yi)∈Tn,其中
從中隨機抽樣得到其中是以xi為分布中心,以Hj為協方差矩陣的概率分布。
重復所述ROSE算法m次,則可以得到一個規(guī)模為m的新的合成訓練集
所述合成訓練集的不平衡程度由概率πj確定,若πj=1/2,則中兩類的樣本數大致相等。
實施例1
本實施例所用的數據集為6200個電力用戶18個月的用電負荷數據,采樣頻率為30分鐘。由于本實施例重點研究用戶長期用電模式的異常性,因此研究的時間單位取一個月,即對原始數據集進行處理,計算每個用戶的月平均負荷以反映其用電模式,即30天。故本例中一共有111600條負荷曲線。6200個電力用戶包含6123個正常用戶和77個異常用戶,異常用戶比例為1.24%。模型的輸入為原始數據集,輸出為用戶異常度及疑似概率排序。
異常用戶比例過小,在本實施例中采用SMOTE算法進行數據集平衡,異常數據集為2310個異常負荷曲線Xn(n=1,2,…,2310)。
步驟1.設定過采樣倍率N和搜索最近樣本數k;
步驟2.找出每個異常用戶相鄰最近的k個樣本
步驟3.尋找距離X1最近的k個樣本,并隨機選取其中一個Y,通過以下公式構造少類樣本P1
p1=x+rand(0,1)×(y-x)
步驟4.將步驟3循環(huán)N次,計算出少類樣本X1的N個過采樣樣本Pi(i=1,2,…,N)。
重復步驟3、4,得出所有2310個異常負荷曲線的過采樣樣本。
實施例2
本實施例所用的數據集為6200個電力用戶18個月的用電負荷數據,采樣頻率為30分鐘。由于本實施例重點研究用戶長期用電模式的異常性,因此研究的時間單位取一個月,即對原始數據集進行處理,計算每個用戶的月平均負荷以反映其用電模式,即30天。故本例中一共有111600條負荷曲線。6200個電力用戶包含6123個正常用戶和77個異常用戶,異常用戶比例為1.24%。模型的輸入為原始數據集,輸出為用戶異常度及疑似概率排序。
異常用戶比例過小,在本實施例中采用ROSE算法進行數據集平衡,異常數據集為2310個異常負荷曲線Xn(n=1,2,…,2310)。
步驟1.將111600條負荷曲線Xn,n=111600合成訓練集T,數據規(guī)模為111600。T的每行對應一個元組(Xi,Yi),i=1,2,…,111600。其中Xi為負荷曲線,Yi∈{0,1},若Xi為正常用戶,則Yi=0,否則,Yi=1。故本例中共110214個Y=0,n0=110214;1386個Y=1,n1=1386
步驟2.以概率π選擇Y*=Yi;
步驟3.若Y*=0,以概率1/n0選擇元組(Xi,Yi)∈Tn,其中Yi=0,從中隨機抽樣得到X*,其中是以Xi為分布中心,以Hj為協方差矩陣的概率分布;
步驟4.若Y*=1,以概率1/n1選擇元組(Xi,Yi)∈Tn,其中Yi=1,從中隨機抽樣得到X*,其中是以Xi為分布中心,以Hj為協方差矩陣的概率分布;
重復以上步驟m次,則可以得到一個規(guī)模為m的新的合成訓練集其不平衡程度由概率π確定,如果π=1/2,則中兩類的樣本數大致相等。
上述技術方案僅體現了本發(fā)明技術方案的優(yōu)選技術方案,本技術領域的技術人員對其中某些部分所可能做出的一些變動均體現了本發(fā)明的原理,屬于本發(fā)明的保護范圍之內。