李樹平,王瑩瑩,唐之嵋,王磊新,陸納新,姚 靈,陳 偉
(1.同濟(jì)大學(xué)環(huán)境科學(xué)與工程學(xué)院,上海 200092;2.無錫市水務(wù)集團(tuán)有限公司,江蘇無錫 214031;3.寧波水表<集團(tuán)>有限公司,浙江寧波 315032)
城市用水量既有周期性也有變化性。城市用水量周期性表現(xiàn)在一年、一周、1 d內(nèi)的變化上(年用水量變化如圖1所示)[1]。一年內(nèi)用水量隨不同季節(jié)的溫度而變化;一周內(nèi)分工作日和周末用水情況。當(dāng)城市以居民活動為主導(dǎo)時(shí),1 d內(nèi)的小時(shí)用水量表現(xiàn)為“雙峰雙谷”特點(diǎn)(各地在如下所列時(shí)間上可能略有差異):早上5:00—6:00,人們開始準(zhǔn)備一天的活動,用水量開始上升;到早上8:00—10:00達(dá)到最高峰;11:00—16:00用水量處于下降時(shí)段;16:00之后用水量又逐漸上升;20:00—22:00再次達(dá)到高峰;之后用水量逐漸下降;其中2:00—4:00為1 d內(nèi)用水量最低時(shí)段,此時(shí)段的流量常稱作夜間最小流量。
圖1 某市365 d用水量變化Fig.1 365-Day Water Consumptions of a City
城市用水量變化性包括:(1)一年365 d(閏年366 d)并非一周7 d的整數(shù)倍,按照周規(guī)律變化時(shí),并不能使不同年份的同一日歷日固定為某周內(nèi)的同一天;(2)每年農(nóng)歷日期與公歷日期不是固定對應(yīng)的,例如每年農(nóng)歷春節(jié)、端午節(jié)、中秋節(jié)等我國傳統(tǒng)節(jié)日在公歷中常常是變化的。此外,由于氣候變化等原因,也會引起城市用水量的變化。
在城市用水量規(guī)律性分析中,分析一周內(nèi)(工作日和周末)各日用水量變化、節(jié)假日用水量變化的文獻(xiàn)居多;很少在一整年基礎(chǔ)上,分析不同月份、不同日期之間用水的相似性和差異[2-6]。若能發(fā)現(xiàn)一年內(nèi)不同日期之間用水的相似性,則可以初步根據(jù)先出現(xiàn)日期的用水規(guī)律,預(yù)測將要來臨的相似用水特性日期的情況。同時(shí),有助于總體掌握一年內(nèi)的用水規(guī)律性。
為此,本研究將采用K均值聚類算法分析城市年用水量,試圖尋找一年內(nèi)不同日期之間用水的相似性和一年內(nèi)的用水規(guī)律性,為城市用水量管理和供水運(yùn)行調(diào)度提供有價(jià)值的信息。K均值聚類算法兼具模式識別和異常值診斷功能,已在供水用戶類型識別中得到應(yīng)用[7]。
聚類是將樣本中相似的數(shù)據(jù)點(diǎn)分配到相同的類,不相似的數(shù)據(jù)點(diǎn)分配到不同的類。聚類時(shí)樣本通常是歐氏空間中的向量;類別不是事先給定,而是從數(shù)據(jù)中自動發(fā)現(xiàn)。樣本之間的相似度或距離由應(yīng)用決定[8]。
常用的K均值聚類算法將數(shù)據(jù)點(diǎn)集合劃分為K個(gè)子集,構(gòu)成K個(gè)類;將N個(gè)數(shù)據(jù)點(diǎn)分配到K個(gè)類別中(K (1) 輸入N個(gè)數(shù)據(jù)點(diǎn)集X和類別數(shù)K。 (4) 計(jì)算各數(shù)據(jù)點(diǎn)到所屬類別質(zhì)心之間距離平方的總和(稱作損失函數(shù)W(0))如式(1)。 (1) 其中:n(k)——類別k內(nèi)所含數(shù)據(jù)點(diǎn)個(gè)數(shù)。 (2) (6) 計(jì)算新的損失函數(shù)W(1),即各數(shù)據(jù)點(diǎn)到所屬類別質(zhì)心之間距離平方的總和如式(3)。 (3) (7) 比較W(0)和W(1)的數(shù)值大小。如果W(1) K均值聚類算法受初始值和異常點(diǎn)影響,聚類結(jié)果可能不是全局最優(yōu)而是局部最優(yōu)。(1)盡管異常點(diǎn)會影響聚類結(jié)果,但K均值聚類算法的一個(gè)優(yōu)點(diǎn)就是可用于檢測異常值。因此,當(dāng)檢測到異常值時(shí),對其進(jìn)行修正,重新執(zhí)行計(jì)算,將會克服異常值的影響。(2)選擇不同的各類質(zhì)心初始值會得到不同的聚類結(jié)果。通常需要執(zhí)行多次運(yùn)算,從中選擇可使相應(yīng)損失函數(shù)較小的分類結(jié)果作為最終聚類結(jié)果。 以上K均值聚類中的類別數(shù)K值需要預(yù)先指定,而實(shí)際應(yīng)用中最優(yōu)K值是不知道的。K值的選擇常采用手肘法:嘗試不同K值并將對應(yīng)的損失函數(shù)繪制成曲線圖;隨著K值增大,經(jīng)過圖中曲線拐點(diǎn)后損失函數(shù)將不再顯著變化,因此,認(rèn)為該曲線拐點(diǎn)就是所求最優(yōu)K值[10]。 K均值聚類算法的應(yīng)用還包括前期原始數(shù)據(jù)的預(yù)處理,以及計(jì)算結(jié)果的分析。 算例采用我國華東某城市365 d逐時(shí)用水量進(jìn)行分析。在該365 d內(nèi)最低小時(shí)用水量為20 000 m3,最高小時(shí)用水量為67 227 m3。算例分析之前需先對異常值進(jìn)行處理。 一年內(nèi)每日的小時(shí)用水量原始數(shù)據(jù)中可能存在異常值,在本研究算例中異常值包括小時(shí)用水量為0或較低值。經(jīng)與現(xiàn)場工作人員了解,很少出現(xiàn)小時(shí)用水量的超高值異常,因此,本研究中未考慮超高值異常。小時(shí)用水量為0時(shí)很容易辨識出來;而大于0的較低值隱藏在大量數(shù)據(jù)之內(nèi),很難辨識,通常需要在K均值聚類分析后發(fā)現(xiàn)。 用水量常會出現(xiàn)逐小時(shí)用水量高低變化的情況,線性插值法處理會抹去中間點(diǎn)的上凸或下凹特征,因此,不能按照線性插值處理。針對某小時(shí)用水量異常值的修正,可引入權(quán)重系數(shù),將前1 h和后1 h數(shù)據(jù),以及前1 d和后1 d該小時(shí)數(shù)據(jù)處理為式(4)。 (4) 其中:w1、w2——權(quán)重,數(shù)值均在[0,1],且w1+w2=1,應(yīng)根據(jù)相鄰數(shù)據(jù)變化趨勢確定; Qij——第id第jh的用水量,m3; Qi-1,j、Qi+1,j——第i-1 d第jh、第i+1 d第jh的用水量,m3; Qi, j-1、Qi, j+1——第id第j-1 h、第j+1 h的用水量,m3。 在K均值聚類分析中,數(shù)據(jù)點(diǎn)總數(shù)N取365;數(shù)據(jù)點(diǎn)xi=(xi1,xi2,…,xih,…,xiH)為H=24的向量,由1 d內(nèi)24 h用水量組成。 針對K= 1,2,…,20,分別執(zhí)行K均值聚類計(jì)算,將不同K值獲得的損失函數(shù)值繪制成曲線(圖2)。為使聚類具有充分代表性,參考手肘法,取K= 10作為該年每日用水量聚類的類別數(shù),各類別分別記為a,b,…,j(圖3、表1)。各類別質(zhì)心數(shù)據(jù)如圖4所示。以下分別從逐月、逐類別和季節(jié)性方面進(jìn)行說明。 圖2 不同K值對應(yīng)損失函數(shù)值Fig.2 Loss Function Values Corresponding to Different K Values 注:圖中實(shí)線為該類別平均用水量,虛線為具體日期用水量變化。 圖4 各類別質(zhì)心小時(shí)用水量Fig.4 Hourly Water Flow of Centroid of Each Cluster 表1中逐月與各個(gè)類別的對應(yīng)情況如下。該年度1月用水可歸為4類,主要為a類(13 d)和b類(13 d)。2月用水可歸為5類,主要為a類(15 d)和d類(9 d)。3月用水可歸為5類,主要為b類(10 d)和c類(12 d)。4月用水可歸為4類,主要為a類(7 d)、c類(12 d)和f類(10 d)。5月用水可歸為8類,主要為e類(9 d)。6月用水可歸為5類,主要為e類(9 d)和h類(17 d)。7月用水可歸為4類,主要為e類(7 d)、h類(8 d)和j類(14 d)。 8月用水可歸為5類,主要為h類(17 d)和j類(8 d)。9月用水可歸為5類,主要為g類(8 d)和h類(14 d)。10月用水可歸為4類,主要為f類(8 d)和g類(18 d)。11月用水可歸為4類,主要為b類(7 d)和f類(19 d);12月用水可歸為3類,主要為b類(25 d)。其中,歸類數(shù)最少的為12月(3類),最多的為5月(8類)。 表1中逐個(gè)類別與日期對應(yīng)情況如下。a類共含43 d用水量數(shù)據(jù),多數(shù)為1月(13 d)、2月(15 d)用水,所含4月用水量(7 d)均處于周末(星期六和星期日);a類中含有元旦、元宵節(jié)、端午節(jié)3個(gè)法定假日。b類共含57 d用水量數(shù)據(jù),多數(shù)為12月(25 d)、1月(13 d)和3月(10 d)用水量。c類共含43 d用水量數(shù)據(jù),多數(shù)為3月(12 d)、4月(12 d)用水量;c類中含有清明節(jié)、勞動節(jié)和國慶節(jié)3個(gè)法定假日;含有5月1日—4日,10月1日—4日的用水量。d類共含有連續(xù)從1月28日—2月9日13 d的用水量數(shù)據(jù),其中2月1日春節(jié)。e類共含36 d用水量數(shù)據(jù),多數(shù)為5月(9 d)、6月(9 d)、7月(7 d)用水量。f類共含50 d用水量數(shù)據(jù),多數(shù)為4月(10 d)、10月(8 d)、11月(19 d)用水量。g類共含31 d用水量數(shù)據(jù),多數(shù)為9月(8 d)、10月(18 d)用水量。h類共含61 d用水量數(shù)據(jù),多數(shù)為6月(17 d)、7月(8 d)、8月(17 d)、9月(14 d)用水量。i類共含5月(2 d)、6月(1 d)、8月(1 d)的數(shù)據(jù),從圖4中可以看出,1 d內(nèi)水量變化趨勢極不穩(wěn)定。j類共含27 d用水量數(shù)據(jù),多數(shù)為7月(14 d)、8月(8 d)用水量。 逐個(gè)類別對應(yīng)季節(jié)性情況為:a類和b類反映了冬季用水;c類反映了春季用水,且含有“五一”和“十一”兩個(gè)小長假期間的用水;d類為春節(jié)前后用水;e類、h類和j類反映了夏季用水;g類反映了秋季用水;f類反映了春末和初冬用水。由圖3可知,d類(春節(jié)前后)各小時(shí)用水量均較低;j類(7月、8月)各小時(shí)用水量均較高。 城市年用水量的周期性和變化特征可采用K均值聚類算法進(jìn)行理論分析。K均值聚類算法具有模式識別和異常值診斷功能,在使用中應(yīng)關(guān)注各類質(zhì)心初始值的隨機(jī)選取問題,以及K值非預(yù)先指定特點(diǎn),需要多次運(yùn)行,以獲得最優(yōu)K值和較小損失函數(shù)結(jié)果。 以華東某城市某年逐日用水量為原始數(shù)據(jù),分析認(rèn)為K=10較為合理;分類中的明顯特點(diǎn)包括用水高峰作為一類,春節(jié)期間用水量較少時(shí)作為一類,“五一”和“十一”小長假期間用水作為一類。 在小時(shí)用水量異常值處理中,為兼顧時(shí)用水變化中上凸和下凹特點(diǎn),考慮利用前后兩日該時(shí)段用水量和前后2 h用水量的加權(quán)方式修正。 本研究只針對一年的用水量進(jìn)行了計(jì)算,如果每年能夠采用K均值聚類算法分析,充分考慮特殊年份用水(例如出現(xiàn)冬季凍災(zāi)、受新冠疫情影響等),將會對城市用水量管理和供水運(yùn)行調(diào)度提供更有價(jià)值的信息。2 算例分析
2.1 異常值處理
2.2 K均值聚類分析
3 結(jié)束語