劉明群,何 鑫,覃日升,姜 訸,孟 賢
(云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,云南 昆明 650217)
近年來(lái),配電網(wǎng)電壓監(jiān)測(cè)系統(tǒng)建設(shè)加強(qiáng)了對(duì)配電網(wǎng)電壓、電流等數(shù)據(jù)的管理與計(jì)算分析,實(shí)現(xiàn)了電網(wǎng)故障預(yù)警、電壓準(zhǔn)實(shí)時(shí)在線監(jiān)測(cè)等功能[1]。然而,由于配電網(wǎng)規(guī)模和配電網(wǎng)監(jiān)測(cè)數(shù)據(jù)日益增大,傳統(tǒng)在線監(jiān)測(cè)方法已無(wú)法滿(mǎn)足監(jiān)測(cè)系統(tǒng)對(duì)數(shù)據(jù)挖掘的快速性和準(zhǔn)確性要求。因此,為保障配電網(wǎng)安全可靠運(yùn)行,配電網(wǎng)電壓監(jiān)測(cè)系統(tǒng)數(shù)據(jù)異常檢測(cè)方法研究具有重要意義。
聚類(lèi)算法通過(guò)對(duì)配電網(wǎng)電壓數(shù)據(jù)聚類(lèi),挖掘數(shù)據(jù)特征、區(qū)分?jǐn)?shù)據(jù)類(lèi)型、實(shí)現(xiàn)實(shí)時(shí)故障預(yù)警。聚類(lèi)算法可分為劃分聚類(lèi)法、層次聚類(lèi)法和密度聚類(lèi)法等,其中劃分聚類(lèi)法計(jì)算效率較高,但需事先假定聚類(lèi)數(shù)值[2],包括K-means、K-medoids和CLARA算法。特別地,K-means算法原理簡(jiǎn)單且效率高,非常適合配電網(wǎng)電壓數(shù)據(jù)在線監(jiān)測(cè);K-means算法僅在多項(xiàng)式時(shí)間內(nèi)收斂到局部最優(yōu)解[3],但合理地選擇初值將有利于收斂到全局最優(yōu)解。文獻(xiàn)[4]采用K-means++算法選取K-means算法初值,但運(yùn)用K-means算法要事先假定聚類(lèi)數(shù)。聚類(lèi)數(shù)可根據(jù)樣本情況判斷[5],然而,在相關(guān)經(jīng)驗(yàn)不足或數(shù)據(jù)量過(guò)大等情況下無(wú)法給出最佳聚類(lèi)數(shù)。對(duì)于靜態(tài)數(shù)據(jù)庫(kù)而言,聚類(lèi)數(shù)不會(huì)改變,但當(dāng)在線監(jiān)測(cè)系統(tǒng)數(shù)據(jù)庫(kù)是動(dòng)態(tài)時(shí),聚類(lèi)數(shù)會(huì)隨著配電網(wǎng)故障等問(wèn)題的產(chǎn)生而動(dòng)態(tài)變化,導(dǎo)致K-means算法的聚類(lèi)效果變差[6],因而需要其他算法輔助選擇聚類(lèi)數(shù)。
為解決聚類(lèi)數(shù)選擇問(wèn)題,目前已有學(xué)者提出多種聚類(lèi)數(shù)選擇算法。文獻(xiàn)[7]提出輪廓系數(shù)法,算法原理簡(jiǎn)單且只需給定聚類(lèi)數(shù)上限,對(duì)最佳聚類(lèi)數(shù)估計(jì)效果很好,但計(jì)算速度較慢,不適合在線監(jiān)測(cè)配電網(wǎng)電壓;文獻(xiàn)[8]運(yùn)用DBI算法為K-means算法選取聚類(lèi)數(shù),DBI算法對(duì)最佳聚類(lèi)數(shù)估計(jì)效果較好,但計(jì)算速度稍慢;文獻(xiàn)[9]運(yùn)用Canopy算法快速自適應(yīng)選取聚類(lèi)數(shù),但該算法需根據(jù)交叉驗(yàn)證法或先驗(yàn)知識(shí)設(shè)定松閾值和緊閾值,且緊閾值嚴(yán)重影響聚類(lèi)數(shù)的選取,因此算法自適應(yīng)能力不夠強(qiáng);文獻(xiàn)[10-11]運(yùn)用elbow method選取聚類(lèi)數(shù),該方法因簡(jiǎn)單直觀且計(jì)算速度快而被廣泛應(yīng)用,但常常因“肘部點(diǎn)”不明顯而無(wú)法估計(jì)最佳聚類(lèi)數(shù)。上述常用算法存在自適應(yīng)能力不強(qiáng)、計(jì)算速度慢和準(zhǔn)確率不夠高等問(wèn)題,不適合異常數(shù)據(jù)在線檢測(cè)。
針對(duì)上述常用算法問(wèn)題,本文提出一種快速選取聚類(lèi)數(shù)的自適應(yīng)算法。所提算法基于elbow method和輪廓系數(shù)法,首先利用自適應(yīng)變化閾值求解聚類(lèi)數(shù)下限,接著在聚類(lèi)數(shù)上、下限內(nèi)計(jì)算輪廓系數(shù)。為提高算法速度,提出“一個(gè)極大值”規(guī)則,避免計(jì)算所有輪廓系數(shù)。該算法充分考慮elbow method的快速性和輪廓系數(shù)法的高準(zhǔn)確率特點(diǎn),為K-means算法自動(dòng)選取聚類(lèi)數(shù),使K-means算法在線監(jiān)測(cè)成為可能。最后,為評(píng)價(jià)所提算法,以2個(gè)實(shí)際配網(wǎng)電壓數(shù)據(jù)為例,通過(guò)仿真對(duì)比其他聚類(lèi)數(shù)選擇算法。結(jié)果表明,相比于所對(duì)比算法,所提算法能以最高準(zhǔn)確率和最快計(jì)算速度自適應(yīng)選取最佳聚類(lèi)數(shù)。
K-means是一種基于劃分的無(wú)監(jiān)督聚類(lèi)算法,能將數(shù)據(jù)集分成k類(lèi),其中k是事先假定的。K-means算法隨機(jī)產(chǎn)生k個(gè)聚類(lèi)中心,根據(jù)最近鄰原則將數(shù)據(jù)點(diǎn)歸類(lèi)離其最近的聚類(lèi)中心,形成k個(gè)類(lèi),并重新計(jì)算各類(lèi)的聚類(lèi)中心,重復(fù)上述步驟直到聚類(lèi)中心不再改變位置或達(dá)到規(guī)定的迭代次數(shù)。
K-means算法聚類(lèi)的目標(biāo)是使各類(lèi)誤差平方和(sum of the squared errors, SSE)最小,即
(1)
式中Ci為第i個(gè)聚類(lèi);p為Ci中的樣本點(diǎn);mi為Ci的聚類(lèi)中心,即Ci中所有樣本的均值;eSSE為所有樣本的聚類(lèi)誤差,代表聚類(lèi)效果的好壞。
根據(jù)拉格朗日定理和最小二乘法原理,確保SSE最小的聚類(lèi)中心[3]應(yīng)滿(mǎn)足:
(2)
由式(2)可得:
(3)
其中,ni為第i聚類(lèi)的樣本總量。因此,聚類(lèi)中心是該聚類(lèi)數(shù)據(jù)的平均值。K-means算法每一次迭代將聚類(lèi)中心取為該聚類(lèi)樣本的平均值,確保SSE在本次迭代內(nèi)達(dá)到最小,交替采用最近鄰原則和以均值計(jì)算聚類(lèi)中心,使SSE不斷下降,直到平衡收斂。
結(jié)合elbow method和輪廓系數(shù),提出改進(jìn)的elbow method和輪廓系數(shù)算法(improved elbow method and silhouette coefficient,IES),用于自適應(yīng)確定聚類(lèi)數(shù),從而與K-means算法結(jié)合為自適應(yīng)K-means算法。對(duì)于假定的聚類(lèi)數(shù)上限kmax,首先,IES算法基于elbow method的聚類(lèi)評(píng)價(jià)指標(biāo)SSE值確定聚類(lèi)數(shù)下限kmin;然后,在聚類(lèi)數(shù)搜索范圍[kmin,kmax]內(nèi)基于輪廓系數(shù)搜尋最佳聚類(lèi)數(shù)k*,并利用提出的“一個(gè)極大值”規(guī)則避免計(jì)算[kmin,kmax]內(nèi)所有聚類(lèi)數(shù)對(duì)應(yīng)的輪廓系數(shù)。當(dāng)最佳聚類(lèi)數(shù)確定后,可用K-means算法進(jìn)行聚類(lèi)。
IES算法的核心是在一定的定義域內(nèi)利用輪廓系數(shù)尋找最佳聚類(lèi)數(shù)。使輪廓系數(shù)最大的聚類(lèi)數(shù)為最佳聚類(lèi)數(shù)k*。輪廓系數(shù)法一般在定義域[2,kmax]內(nèi)計(jì)算每一個(gè)聚類(lèi)數(shù)k對(duì)應(yīng)的輪廓系數(shù),但輪廓系數(shù)計(jì)算速度慢,不滿(mǎn)足配電網(wǎng)在線監(jiān)測(cè)的快速性要求。因此,IES算法利用計(jì)算速度更快的SSE確定聚類(lèi)數(shù)下限kmin,將定義域范圍縮小為[kmin,kmax]。
聚類(lèi)數(shù)為k時(shí)elbow method的誤差平方和記為eSSE(k)。k=i時(shí)的相對(duì)SSE定義為
(4)
式中eSSE(1)為k=1時(shí)eSSE(k)的值,也是其最大值。
由于eSSE(k)、相對(duì)SSE單調(diào)遞減且離散不可導(dǎo),無(wú)法用極值點(diǎn)和拐點(diǎn)估計(jì)最佳聚類(lèi)數(shù),因此考慮設(shè)置閾值來(lái)估計(jì)聚類(lèi)數(shù)下限。同時(shí),由于不同數(shù)據(jù)集的手肘曲線不同,因而所設(shè)置閾值應(yīng)隨之自適應(yīng)變化。
定義取值范圍為(0,1)的常數(shù)Kelbow,稱(chēng)為手肘系數(shù)。隨著k的增大,相對(duì)SSE從eSSE(1)%開(kāi)始下降,當(dāng)k=kmax時(shí),相對(duì)SSE最大下降量為eSSE(1)%-eSSE(kmax)%,而當(dāng)相對(duì)SSE下降量達(dá)到最大下降量的Kelbow倍時(shí),對(duì)應(yīng)的相對(duì)SSE定義為手肘閾值eSSE,elbow%,可計(jì)算如下:
eSSE,elbow%=eSSE(1)%-Kelbow(eSSE(1)%-
eSSE(kmax)%)=100%-Kelbow·
(100%-eSSE(kmax)%)
(5)
根據(jù)大量仿真經(jīng)驗(yàn),取Kelbow=0.5,則
(6)
利用式(6),將聚類(lèi)數(shù)下限kmin取為使eSSE(k)%≤eSSE,elbow%成立的最小k值。
在聚類(lèi)數(shù)上限為kmax以及Kelbow=0.5時(shí),kmax對(duì)應(yīng)人為限定的相對(duì)SSE最大下降量,所選的kmin使相對(duì)SSE下降量達(dá)到最大下降量的一半以上。應(yīng)指出,IES算法解出的kmin≥2。
手肘閾值具有自適應(yīng)性,因?yàn)楫?dāng)k>k*后eSSE(k)%變化緩慢,即使kmax較大,eSSE(kmax)%仍接近于eSSE(k*)%,而不同數(shù)據(jù)集的eSSE(k*)%不同,因此,由eSSE(kmax)%計(jì)算的手肘閾值也隨之自適應(yīng)變化。對(duì)不同數(shù)據(jù)集,當(dāng)kmax等于樣本總數(shù)時(shí),均有eSSE(kmax)=eSSE(kmax)%=0[3],由式(6)可知,手肘閾值達(dá)到其最小值eSSE,elbow%=50%,手肘閾值恒為常數(shù)且不隨數(shù)據(jù)集不同而變化,因此kmax可取值較大,但不應(yīng)過(guò)大。
不同Kelbow取值影響IES算法計(jì)算時(shí)間和準(zhǔn)確率(能否解出k*)。若降低Kelbow,手肘閾值將增大,使得解出的kmin變小,有利于IES算法解出k*(若kmin>k*,則IES算法無(wú)法解出k*),但kmin變小又會(huì)使得輪廓系數(shù)法的定義域[kmin,kmax]范圍變大,不利于縮短輪廓系數(shù)法計(jì)算時(shí)間。同樣分析Kelbow增大的情況,可知Kelbow不應(yīng)過(guò)大或過(guò)小。由此也能看出,手肘閾值隨數(shù)據(jù)集不同而自適應(yīng)增大或減小,是在自適應(yīng)兼顧IES算法對(duì)不同數(shù)據(jù)集的準(zhǔn)確率和計(jì)算速度。實(shí)際應(yīng)用中可根據(jù)配網(wǎng)電壓歷史數(shù)據(jù)進(jìn)行測(cè)試,適當(dāng)調(diào)整Kelbow取值。改進(jìn)elbow method確定聚類(lèi)數(shù)下限流程如圖1所示。
圖1 改進(jìn)elbow method確定聚類(lèi)數(shù)下限流程Figure 1 The flowchart of determinizing the lower limit of clustering number with the improved elbow method
具體步驟如下:
1)讀取人為設(shè)定的kmax和數(shù)據(jù)集;2)對(duì)k=1、kmax分別進(jìn)行K-means聚類(lèi),對(duì)聚類(lèi)結(jié)果應(yīng)用式(1)計(jì)算SSE,即eSSE(1)、eSSE(kmax);3)結(jié)合式(4)、(6)計(jì)算eSSE,elbow%,令k=2;4)對(duì)當(dāng)前k值進(jìn)行K-means聚類(lèi)并計(jì)算eSSE(k);5)采用式(4)計(jì)算eSSE(k)%;6)判斷eSSE(k)%≤eSSE,elbow%是否成立,不成立則令k自增1并返回步驟4),成立則跳出循環(huán)進(jìn)入步驟7);7)記錄此時(shí)的k為kmin,該流程結(jié)束。
聚類(lèi)數(shù)為k時(shí)相應(yīng)的輪廓系數(shù)記為S(k)。基于輪廓系數(shù)搜尋最佳聚類(lèi)數(shù),在[kmin,kmax]區(qū)間內(nèi)利用輪廓系數(shù)算法搜尋最佳聚類(lèi)數(shù)。然而,為確保大于最佳聚類(lèi)數(shù)k*,聚類(lèi)數(shù)上限kmax的設(shè)置可能會(huì)過(guò)大,而輪廓系數(shù)計(jì)算速度慢,對(duì)[kmin,kmax]區(qū)間內(nèi)每一個(gè)聚類(lèi)數(shù)k計(jì)算輪廓系數(shù)將消耗大量時(shí)間。
為提高算法速度,IES算法借鑒gap statistic算法中“一個(gè)標(biāo)準(zhǔn)錯(cuò)誤”(1-standard-error)的規(guī)則[12](文獻(xiàn)[13]也在其他算法中使用該規(guī)則),提出“一個(gè)極大值”規(guī)則,即令聚類(lèi)數(shù)k在[kmin,kmax]區(qū)間內(nèi)每次增加1,依次計(jì)算輪廓系數(shù)S(k),當(dāng)S(k)首次出現(xiàn)極大值時(shí)停止計(jì)算S(k)。使用該規(guī)則得到多個(gè)輪廓系數(shù),選其中最大值對(duì)應(yīng)的k為最佳聚類(lèi)數(shù)k*。當(dāng)S(k)在定義域[kmin,kmax]內(nèi)不存在極大值時(shí),“一個(gè)極大值”規(guī)則失效,需計(jì)算定義域內(nèi)所有S(k),選最大值對(duì)應(yīng)的k為k*。本文中“一個(gè)極大值”規(guī)則在k=K生效是指:對(duì)于K>kmin,當(dāng)k增大到K+1時(shí),出現(xiàn)S(k)的極大值S(K),IES算法停止計(jì)算S(k)。S(K)為極大值是指:S(K)>S(K-1)且S(K)>S(K+1)。
“一個(gè)極大值”規(guī)則避免計(jì)算所有輪廓系數(shù),相當(dāng)于降低了實(shí)際假定的kmax,從而提高算法速度。
聚類(lèi)數(shù)下限確定后應(yīng)用“一個(gè)極大值”規(guī)則,在定義域[kmin,kmax]內(nèi)利用輪廓系數(shù)法求解最佳聚類(lèi)數(shù)。在已計(jì)算不同聚類(lèi)數(shù)對(duì)應(yīng)的輪廓系數(shù)中自動(dòng)尋找最大輪廓系數(shù),所對(duì)應(yīng)聚類(lèi)數(shù)為最佳聚類(lèi)數(shù)k*,從而實(shí)現(xiàn)自適應(yīng)確定聚類(lèi)數(shù)。基于輪廓系數(shù)自適應(yīng)確定聚類(lèi)數(shù)流程如圖2所示。
圖2 基于輪廓系數(shù)自適應(yīng)確定聚類(lèi)數(shù)流程Figure 2 The flowchart of determinizing the clustering number with the improved elbow method based on the silhouette coefficient adaptive determination
具體步驟如下:
1)建立空數(shù)組{S},令k=kmin;2)對(duì)當(dāng)前k值進(jìn)行K-means聚類(lèi),接著對(duì)聚類(lèi)結(jié)果計(jì)算輪廓系數(shù)并放入數(shù)組{S};3)若數(shù)組{S}中的元素已達(dá)3個(gè)及以上,則說(shuō)明可以判斷是否出現(xiàn)極大值,進(jìn)入步驟4),否則令k自增1并回到步驟2);4)判斷是否出現(xiàn)極大值,即S[-2]>S[-3]、S[-2]>S[-1]是否同時(shí)成立,其中S[-1]是數(shù)組{S}倒數(shù)第1個(gè)元素,即本次循環(huán)計(jì)算得到的輪廓系數(shù);S[-2]、S[-3]分別是倒數(shù)第2、3個(gè)元素,若不出現(xiàn)極大值,令k自增1并回到步驟2),若出現(xiàn)極大值則跳出循環(huán)進(jìn)入步驟5);5)在數(shù)組{S}中尋找最大輪廓系數(shù),并記錄對(duì)應(yīng)的聚類(lèi)數(shù)為最佳聚類(lèi)數(shù)k*,IES算法結(jié)束。
IES算法從圖1流程開(kāi)始至圖2流程結(jié)束。自適應(yīng)確定聚類(lèi)數(shù)的IES算法與K-means算法結(jié)合為自適應(yīng)K-means算法。正常運(yùn)行時(shí)配電網(wǎng)電壓數(shù)據(jù)波動(dòng)范圍較穩(wěn)定,因此,可利用K-means算法對(duì)正常運(yùn)行數(shù)據(jù)聚類(lèi)并得到聚類(lèi)中心,通過(guò)判斷新輸入數(shù)據(jù)到聚類(lèi)中心距離是否超過(guò)距離閾值H,從而判斷數(shù)據(jù)是否異常。
H=(h1,h2,…,hk)表示各聚類(lèi)的閾值,其中k是聚類(lèi)數(shù),聚類(lèi)中數(shù)據(jù)到聚類(lèi)中心距離的最大值乘以常數(shù)D作為H,綜合考慮文獻(xiàn)[14]、[15]的實(shí)驗(yàn)結(jié)果,取D=1.04。若某數(shù)據(jù)X到k個(gè)聚類(lèi)中心Ci距離均超過(guò)相應(yīng)閾值,則判定為異常數(shù)據(jù),即異常數(shù)據(jù)滿(mǎn)足:
|X-Ci|>hi,i=1,2,…,k
(7)
IES算法能在異常檢測(cè)中更新正常數(shù)據(jù)最佳聚類(lèi)數(shù),并能在發(fā)生異常時(shí)幫助挖掘異常數(shù)據(jù)特征。隨著歷史正常運(yùn)行數(shù)據(jù)的不斷增多,正常數(shù)據(jù)的最佳聚類(lèi)數(shù)可能改變,因此,每隔一段時(shí)間需用IES算法自適應(yīng)求解并更新最佳聚類(lèi)數(shù)。當(dāng)發(fā)生異常時(shí),在分析數(shù)據(jù)異常模式之前,為充分利用當(dāng)前所有異常數(shù)據(jù),可通過(guò)IES算法對(duì)當(dāng)前所有正常和異常數(shù)據(jù)的最佳聚類(lèi)數(shù)自適應(yīng)快速求解,然后利用K-means算法將異常與正常數(shù)據(jù)一起聚類(lèi),為挖掘異常數(shù)據(jù)特征和探測(cè)異常來(lái)源提供信息。除上述基于自適應(yīng)K-means聚類(lèi)的方法,文獻(xiàn)[14]還利用了其他方法分析數(shù)據(jù)異常模式。
基于自適應(yīng)K-means的實(shí)時(shí)異常檢測(cè)總流程如圖3所示,具體步驟如下:
1)對(duì)配電網(wǎng)電壓歷史正常運(yùn)行數(shù)據(jù)進(jìn)行K-means聚類(lèi),并根據(jù)聚類(lèi)得到的最優(yōu)聚類(lèi)中心和聚類(lèi)結(jié)果更新距離閾值H;2)計(jì)算新輸入數(shù)據(jù)到各個(gè)聚類(lèi)中心的距離并與距離閾值比較;3)若新輸入數(shù)據(jù)屬于異常數(shù)據(jù)則標(biāo)記為異常,否則將其加入歷史正常運(yùn)行數(shù)據(jù);當(dāng)歷史正常運(yùn)行數(shù)據(jù)新增數(shù)量達(dá)到一定量時(shí),利用IES算法求解并更新最佳聚類(lèi)數(shù);4)將異常數(shù)據(jù)與歷史正常運(yùn)行數(shù)據(jù)共同作為新的數(shù)據(jù)集DS;5)IES算法根據(jù)事先假定聚類(lèi)數(shù)上限計(jì)算數(shù)據(jù)集DS的最佳聚類(lèi)數(shù)k*;6)用K-means將數(shù)據(jù)集DS分為k*個(gè)聚類(lèi);7)利用K-means聚類(lèi)結(jié)果分析數(shù)據(jù)異常模式。
以2個(gè)實(shí)際配電網(wǎng)電壓數(shù)據(jù)集為例(記為D1和D2),與DBI算法和輪廓系數(shù)法進(jìn)行仿真比較,驗(yàn)證所提IES算法的有效性。
D1有1 000個(gè)樣本點(diǎn),每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)時(shí)刻三相電壓有效值。為體現(xiàn)所提IES算法的普適性,對(duì)A、B、C三相電壓分別加入異常數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。對(duì)于A相電壓,隨機(jī)抽取10%,即100個(gè)正常數(shù)據(jù),并加上4%~10%噪聲,生成1個(gè)數(shù)據(jù)集,重復(fù)進(jìn)行50次,生成50個(gè)數(shù)據(jù)集,記為A組數(shù)據(jù)(注意:每個(gè)數(shù)據(jù)集只含10%異常數(shù)據(jù),其中50個(gè)正常數(shù)據(jù)加上正噪聲4%~10%,50個(gè)正常數(shù)據(jù)加上負(fù)噪聲-10%~-4%)。用同樣方法對(duì)B、C相電壓各生成50個(gè)數(shù)據(jù)集,分別記為B、C組數(shù)據(jù)。
D2有4 000個(gè)樣本點(diǎn),每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)時(shí)刻三相電壓有效值。為說(shuō)明選取不同聚類(lèi)數(shù)對(duì)聚類(lèi)效果的影響,對(duì)A、B、C三相電壓均加入異常數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。對(duì)于A相,隨機(jī)抽取15%,即600個(gè)正常數(shù)據(jù),在±5%處加高斯分布隨機(jī)函數(shù)G作為噪聲。設(shè)正常數(shù)據(jù)值為Ndata,則加噪聲后的值為Ndata·(1±0.05)+G。用同樣方法處理B、C相電壓,最終得到的數(shù)據(jù)集記為D2noise。
各算法對(duì)最佳聚類(lèi)數(shù)估計(jì)的準(zhǔn)確率定義為
(8)
式中N為實(shí)驗(yàn)次數(shù),對(duì)A、B、C三相電壓的每一組數(shù)據(jù)實(shí)驗(yàn)50次,故N=50;NT為對(duì)最佳聚類(lèi)數(shù)估計(jì)正確的次數(shù)。
對(duì)于A、B、C三相電壓的3組數(shù)據(jù),最佳聚類(lèi)數(shù)為3,即分為1個(gè)正常數(shù)據(jù)聚類(lèi)和2個(gè)異常數(shù)據(jù)聚類(lèi)。用DBI算法、輪廓系數(shù)法和IES算法估計(jì)所有數(shù)據(jù)集的最佳聚類(lèi)數(shù)k*,若k*=3則估計(jì)正確,若k*≠3則估計(jì)錯(cuò)誤。
由于出現(xiàn)異常時(shí)需用自適應(yīng)K-means算法對(duì)正常和異常數(shù)據(jù)聚類(lèi),聚類(lèi)效果影響下一步分析數(shù)據(jù)異常模式,因此,需說(shuō)明K-means對(duì)正常和異常數(shù)據(jù)聚類(lèi)時(shí)不同最佳聚類(lèi)數(shù)估計(jì)值對(duì)聚類(lèi)效果的影響。為方便說(shuō)明,簡(jiǎn)化為分析二分類(lèi)異常檢測(cè)效果,再給出異常檢測(cè)效果評(píng)價(jià)指標(biāo)。對(duì)于二分類(lèi)異常檢測(cè),可根據(jù)真實(shí)和檢測(cè)情況將檢測(cè)結(jié)果分為4類(lèi),如表1所示,TN為實(shí)際正常且被檢測(cè)為正常的樣本,F(xiàn)P為實(shí)際正常但被檢測(cè)為異常的樣本,F(xiàn)N為實(shí)際異常但被檢測(cè)為正常的樣本,TP為實(shí)際異常且被檢測(cè)為異常的樣本。
表1 檢測(cè)結(jié)果分類(lèi)Table 1 Classification of test results
對(duì)于異常檢測(cè),相比于不將正常樣本判定為異常,更重要的是檢測(cè)到更多的異常點(diǎn)[16]。因此,采用召回率評(píng)估異常檢測(cè)效果,其值越高意味著檢測(cè)到越多真實(shí)異常點(diǎn),其最大值為1。召回率:
(9)
計(jì)算環(huán)境如下:計(jì)算機(jī)CPU為Core i7-10700,內(nèi)存16 GB,主頻2.90 GHz,操作系統(tǒng)為Windows 10(64 bit),數(shù)據(jù)分析工具為Python 3、Jupyter NoteBook。
對(duì)A、B、C三相電壓的3組數(shù)據(jù)分別用3種算法進(jìn)行最佳聚類(lèi)數(shù)估計(jì),為滿(mǎn)足在線監(jiān)測(cè)的自適應(yīng)性,應(yīng)取足夠大的聚類(lèi)數(shù)上限kmax,以保證其大于最佳聚類(lèi)數(shù),因此取kmax=20,實(shí)驗(yàn)結(jié)果如表2~4所示。
表2 對(duì)A組數(shù)據(jù)應(yīng)用3種算法Table 2 Three algorithms are applied to group A data
表3 對(duì)B組數(shù)據(jù)應(yīng)用3種算法Table 3 Three algorithms are applied to group B data
表4 對(duì)C組數(shù)據(jù)應(yīng)用3種算法Table 4 Three algorithms are applied to group C data
由表2可以看出,輪廓系數(shù)法和IES算法對(duì)最佳聚類(lèi)數(shù)的估計(jì)值穩(wěn)定為3;DBI算法的估計(jì)值僅在2、3之間波動(dòng),其中,對(duì)于A組9個(gè)數(shù)據(jù)集,DBI算法解出k*=2,其余41個(gè)數(shù)據(jù)集解出k*=3。對(duì)表3、4不再贅述。根據(jù)表2~4,計(jì)算3種算法對(duì)A、B、C三相電壓的3組數(shù)據(jù)最佳聚類(lèi)數(shù)估計(jì)的準(zhǔn)確率ω,如表5所示。
表5 3種算法準(zhǔn)確率Table 5 Accuracy of three algorithms accuracy %
由于3種算法對(duì)k*的估計(jì)值只有2和3,因此分別取k*=2、3,對(duì)A、B、C三相電壓的3組數(shù)據(jù)進(jìn)行K-means聚類(lèi),其中,k*=3時(shí)將聚類(lèi)后的2個(gè)異常數(shù)據(jù)聚類(lèi)合并,從而得到正常和異常數(shù)據(jù)二分類(lèi)(注意:實(shí)際中不將異常數(shù)據(jù)聚類(lèi)合并,因?yàn)闀?huì)損失異常數(shù)據(jù)特征信息,此處僅是為了計(jì)算召回率)。計(jì)算不同k*取值下各組數(shù)據(jù)召回率均值,如表6所示。
表6 不同k*取值下各組數(shù)據(jù)召回率均值Table 6 Mean recall rates of data in each group under different k* values
由表6可見(jiàn),選取合適的聚類(lèi)數(shù)能大幅提升異常檢測(cè)效果。對(duì)于A、B、C三相電壓的3組數(shù)據(jù)取k*=2顯然不合適,而在表2~4中,DBI算法對(duì)k*的估計(jì)值多次為2,結(jié)合表5可知輪廓系數(shù)法對(duì)最佳聚類(lèi)數(shù)估計(jì)的準(zhǔn)確率比DBI算法更高,而IES算法保持了輪廓系數(shù)法的高準(zhǔn)確率。
為進(jìn)一步說(shuō)明輪廓系數(shù)法和IES算法在準(zhǔn)確率方面比DBI算法更適合為K-means選擇最佳聚類(lèi)數(shù),對(duì)A組數(shù)據(jù)中某一數(shù)據(jù)集進(jìn)行K-means聚類(lèi),取k*=3,聚類(lèi)結(jié)果如圖4所示,可明顯區(qū)分3類(lèi)數(shù)據(jù),但對(duì)于該數(shù)據(jù)集,DBI算法解出k*=2,而輪廓系數(shù)法和IES算法解出k*=3。
圖4 k*=3時(shí)K-means算法聚類(lèi)結(jié)果Figure 4 Clustering results of K-means algorithm when k* =3
圖4中聚類(lèi)2、3為異常數(shù)據(jù)類(lèi),聚類(lèi)1為正常數(shù)據(jù)類(lèi),此時(shí)召回率的值為1,表明K-means算法適合對(duì)該數(shù)據(jù)集聚類(lèi),而輪廓系數(shù)法和IES算法比DBI算法更適合為K-means選擇最佳聚類(lèi)數(shù)。
為說(shuō)明選取不同聚類(lèi)數(shù)對(duì)聚類(lèi)效果的影響,分別取聚類(lèi)數(shù)為2~9,對(duì)數(shù)據(jù)集D2noise進(jìn)行K-means聚類(lèi);為方便計(jì)算各聚類(lèi)結(jié)果的召回率,人為將異常數(shù)據(jù)聚類(lèi)合并,從而得到正常和異常數(shù)據(jù)二分類(lèi)。數(shù)據(jù)集D2noise召回率隨聚類(lèi)數(shù)變化曲線如圖5所示,可見(jiàn)召回率隨著聚類(lèi)數(shù)增大而增大,說(shuō)明聚類(lèi)效果越來(lái)越好,當(dāng)聚類(lèi)數(shù)為7、8、9時(shí)達(dá)到最大值1。應(yīng)指出,3種聚類(lèi)數(shù)選擇算法對(duì)于D2noise的最佳聚類(lèi)數(shù)估計(jì)值均為7。
圖5 數(shù)據(jù)集D2noise召回率隨聚類(lèi)數(shù)變化曲線Figure 5 The curve of recall rate of D2noise changing with clustering number
進(jìn)一步分析發(fā)現(xiàn),聚類(lèi)數(shù)大于7時(shí)會(huì)發(fā)生模型過(guò)擬合。聚類(lèi)數(shù)分別為7、8時(shí)數(shù)據(jù)集D2noise的K-means聚類(lèi)結(jié)果如圖6、7所示。對(duì)比圖6、7可知,圖6為最佳聚類(lèi),而圖7中將正常數(shù)據(jù)過(guò)擬合為2個(gè)聚類(lèi)(聚類(lèi)4、7),不利于對(duì)數(shù)據(jù)進(jìn)行分析。
圖6 聚類(lèi)數(shù)為7時(shí)數(shù)據(jù)集D2noise的K-means聚類(lèi)結(jié)果Figure 6 K-means clustering results of D2noise when the clustering number is 7
用3種算法對(duì)A組50個(gè)數(shù)據(jù)集估計(jì)最佳聚類(lèi)數(shù),記錄平均運(yùn)行時(shí)間和最小、最大運(yùn)行時(shí)間,如表7所示,可見(jiàn)輪廓系數(shù)法的最小運(yùn)行時(shí)間大于DBI算法最大運(yùn)行時(shí)間,從運(yùn)行時(shí)間均值也能看出DBI算法運(yùn)行速度更快。IES算法的運(yùn)行時(shí)間均值小于其他2個(gè)算法,計(jì)算速度最快,最符合在線監(jiān)測(cè)的快速性。IES算法運(yùn)行時(shí)間波動(dòng)范圍大于其他2個(gè)算法,是因?yàn)閷?duì)于50個(gè)數(shù)據(jù)集,IES算法均解出kmin=3,但“一個(gè)極大值”規(guī)則在不同的聚類(lèi)數(shù)k值(k>3)處生效,因此,不同數(shù)據(jù)集的計(jì)算量不同,導(dǎo)致運(yùn)行時(shí)間波動(dòng)。
表7 3種算法運(yùn)行時(shí)間對(duì)比Table 7 Running time comparison of three algorithms
綜上所述,盡管DBI算法計(jì)算速度稍快于輪廓系數(shù)法,但DBI算法準(zhǔn)確率是3種算法中最低的。與DBI算法相比,IES算法不僅計(jì)算速度更快,而且準(zhǔn)確率更高;與輪廓系數(shù)法相比,IES算法不僅保持相同的準(zhǔn)確率,而且計(jì)算速度更快。因此,IES算法兼顧準(zhǔn)確率和計(jì)算速度,在保證高準(zhǔn)確率的前提下縮短了計(jì)算時(shí)間,提高了K-means算法在線監(jiān)測(cè)的準(zhǔn)確率和高效性。
K-means聚類(lèi)算法計(jì)算速度快、準(zhǔn)確率高,適合配電網(wǎng)在線監(jiān)測(cè),但當(dāng)假定聚類(lèi)數(shù)不合適時(shí),可能導(dǎo)致聚類(lèi)結(jié)果不理想。本文提出了一種快速選取聚類(lèi)數(shù)的自適應(yīng)IES算法,為K-means算法自動(dòng)選取聚類(lèi)數(shù),使K-means算法在線監(jiān)測(cè)配電網(wǎng)成為可能。以召回率評(píng)價(jià)二分類(lèi)異常檢測(cè)效果為例,說(shuō)明為K-means選取合適聚類(lèi)數(shù)對(duì)異常檢測(cè)的重要性。IES算法首先利用自適應(yīng)變化閾值求解聚類(lèi)數(shù)下限,接著在聚類(lèi)數(shù)上、下限內(nèi)計(jì)算輪廓系數(shù)。為提高算法速度,提出“一個(gè)極大值”規(guī)則,避免計(jì)算所有輪廓系數(shù)。所提IES算法有如下優(yōu)點(diǎn)。
1)自適應(yīng)能力強(qiáng)。IES算法只需給定聚類(lèi)數(shù)上限這一參數(shù),且該上限允許較大,即使動(dòng)態(tài)數(shù)據(jù)庫(kù)的最佳聚類(lèi)數(shù)發(fā)生一定的改變,也能保證大于最佳聚類(lèi)數(shù)。所提出用于確定聚類(lèi)數(shù)下限的閾值可隨數(shù)據(jù)集不同而自適應(yīng)變化,從而自適應(yīng)兼顧IES算法準(zhǔn)確率和計(jì)算速度。
2)計(jì)算速度快。IES算法利用計(jì)算迅速的SSE求解聚類(lèi)數(shù)下限,縮小了最佳聚類(lèi)數(shù)的搜尋范圍,又利用所提出的“一個(gè)極大值”規(guī)則減少計(jì)算量,提高了計(jì)算速度。
3)準(zhǔn)確率高。IES算法充分利用了輪廓系數(shù)高準(zhǔn)確率的特點(diǎn)。
算例表明,所提IES算法能自適應(yīng)快速選取最佳聚類(lèi)數(shù),與輪廓系數(shù)法相比,IES算法準(zhǔn)確率相同而計(jì)算速度更快,與DBI算法相比,IES算法不僅準(zhǔn)確率更高,而且計(jì)算速度更快。因此,IES算法兼顧準(zhǔn)確率和計(jì)算速度,更有利于應(yīng)用于配電網(wǎng)在線監(jiān)測(cè)。
電力科學(xué)與技術(shù)學(xué)報(bào)2022年6期