高赫余,王 圣,吳瀟勇
(上海城投水務(wù)〈集團(tuán)〉有限公司供水分公司,上海 200444)
電磁流量計(jì)是基于電磁感應(yīng)原理所制成的進(jìn)行流量測(cè)量的專業(yè)儀器,可以對(duì)導(dǎo)電液體體積流量等進(jìn)行精確測(cè)量[1],構(gòu)造如圖1所示。一般電磁流量計(jì)都有一圈磁線圈,當(dāng)導(dǎo)電流體通過(guò)流量計(jì)的腔體時(shí),會(huì)切割磁感線產(chǎn)生磁感應(yīng)強(qiáng)度,將其轉(zhuǎn)換為電流,并最終轉(zhuǎn)換為流量數(shù)字。在整個(gè)過(guò)程中,必須保證磁感應(yīng)強(qiáng)度保持相對(duì)穩(wěn)定,但是在實(shí)際應(yīng)用中,電磁流量會(huì)收到外部因素和內(nèi)部導(dǎo)電流體的干擾,導(dǎo)致計(jì)量失準(zhǔn)。
圖1 電磁流量計(jì)構(gòu)造Fig.1 Construction of Electromagnetic Flowmeter
本文采用XGBoost集成模型構(gòu)建邊界流量計(jì)流量預(yù)測(cè)模型,旨在修正流量計(jì)非正常工作狀態(tài)下計(jì)量的水量,提高工作成效。
XGBoost的全稱是 eXtreme Gradient Boosting,是傳統(tǒng)boosting方法的一種極好實(shí)現(xiàn),其基本原理是把數(shù)千個(gè)精度較低的樹模型組合成一個(gè)精度較高的模型。Gradient Boosting Machine算法在生成每一棵樹時(shí)采用梯度下降的思想,通過(guò)上一步生成的所有樹為基礎(chǔ),向著最小化給定目標(biāo)函數(shù)的方向前進(jìn)。XGBoost的基學(xué)習(xí)器既有樹(gbtree)又有線性分類器(gblinear),從而得到帶L1+L2懲罰的線性回歸或邏輯回歸,其損失函數(shù)采用二階泰勒展開,具有高準(zhǔn)確度、不易過(guò)擬合、可擴(kuò)展性等特點(diǎn),能分布式處理高維稀疏特征。
XGBoost算法基本原理的特性,對(duì)數(shù)據(jù)波動(dòng)較大、受外界影響較大、特征因子較多的數(shù)據(jù)集有很好的適用性,能夠在水務(wù)行業(yè)邊界流量計(jì)流量預(yù)測(cè)中取得較好的應(yīng)用效果。
對(duì)于流量計(jì)計(jì)量水量的預(yù)測(cè),本文更關(guān)注預(yù)測(cè)結(jié)果和正常工作狀態(tài)下流量計(jì)計(jì)量水量之間的誤差,因此,采用平均絕對(duì)值誤差(mean absolute error)作為評(píng)價(jià)指標(biāo),如式(1)。
(1)
其中:nsamples——樣本數(shù)量;
yi——真實(shí)值;
另外一種可作為參考的指標(biāo)為平均相對(duì)誤差(mean relative error),如式(2)。
(2)
在使用Python進(jìn)行數(shù)據(jù)分析時(shí),會(huì)遇到多種多樣的數(shù)據(jù)類型,如水量、氣溫等數(shù)值型的特征變量,還會(huì)遇到天氣變化、季節(jié)氣候等離散型變量。對(duì)于離散型的變量,必須進(jìn)行數(shù)值化處理之后才能進(jìn)行計(jì)算,因?yàn)闄C(jī)器學(xué)習(xí)均為數(shù)學(xué)函數(shù)方法進(jìn)行模型計(jì)算。一般的離散型變量數(shù)值型轉(zhuǎn)化有2種方法。
第1種是one-hot編碼,又稱“獨(dú)熱編碼”[2],其基本原理是用N位狀態(tài)寄存器編碼N個(gè)狀態(tài),每個(gè)狀態(tài)都有獨(dú)立的寄存器位,且這些寄存器位中只有1位有效,簡(jiǎn)單數(shù)就是每1列特征的每1個(gè)獨(dú)立的值只能有一個(gè)狀態(tài),如圖2所示。
圖2 處理前(a)和處理后(b)one-hot編碼Fig.2 One-Hot Encoding before Treatment (a) and after Treatment (b)
這種編碼方式的優(yōu)點(diǎn)是:解決了分類器處理離散數(shù)據(jù)困難的問(wèn)題、一定程度上起到了擴(kuò)展特征的作用;缺點(diǎn)是:得到的特征是離散的和稀疏的、必須保證每列特征的每個(gè)值之間是相互獨(dú)立的。
第2種是label編碼,它是利用pandas計(jì)算包中的categoricals數(shù)據(jù)類型對(duì)離散新數(shù)據(jù)進(jìn)行處理。Categorical 類型的數(shù)據(jù)可以具有特定的順序,如:按程度來(lái)設(shè)定,“強(qiáng)烈同意”與“同意”、“首次觀察”與“二次觀察”。通過(guò)label編碼,將離散型變量數(shù)值化,如圖3所示。
圖3 處理前(a)和處理后(b)label編碼Fig.3 Label Encoding before Treatment (a) and after Treatment (b)
原始的流量計(jì)水量數(shù)據(jù)只有供水日期這1個(gè)特征,單一的特征會(huì)造成預(yù)測(cè)模型欠擬合。因此,需要進(jìn)一步考察挖掘影響流量計(jì)水量計(jì)量的多方面特征,同時(shí)將日期信息細(xì)化,并進(jìn)一步挖掘相關(guān)流量計(jì)、相關(guān)壓力計(jì)和相關(guān)區(qū)域水量特征,衍生出一系列影響供水量的特征(星期、月、日、四季、最高氣溫、最低氣溫、平均氣溫、天氣、轉(zhuǎn)天氣、風(fēng)向、風(fēng)力、節(jié)假日、空氣質(zhì)量指數(shù)、空氣污染程度、溫度等級(jí)、取對(duì)數(shù)、開根號(hào)、多項(xiàng)式、Day_of_Week、Day_of_month、Day_of_Year、溫差、相關(guān)區(qū)域、相關(guān)流量計(jì)、相關(guān)壓力計(jì)、相關(guān)水廠),結(jié)合這些特征因子和實(shí)際供水量訓(xùn)練流量計(jì)流量預(yù)測(cè)模型。
擴(kuò)展特征中有些是離散型變量(星期、四季、天氣、轉(zhuǎn)天氣、風(fēng)向、風(fēng)力、節(jié)假日、空氣污染程度、溫度等級(jí)),需要對(duì)其進(jìn)行數(shù)值化處理。
這些離散型特征值之間相互關(guān)聯(lián),因此,根據(jù)其特點(diǎn)選取label 編碼對(duì)其進(jìn)行數(shù)值化,結(jié)果如圖4所示。
圖4 處理前(a)和處理后(b)label編碼Fig.4 Label Encoding before Treatment (a) and after Treatment (b)
通過(guò)Pearson相關(guān)系數(shù)法[3]計(jì)算得到各特征與水量之間的相關(guān)性,并通過(guò)相關(guān)較高的數(shù)值型變量進(jìn)一步挖掘得到取對(duì)數(shù)、開根號(hào)、求E及多項(xiàng)式這4個(gè)特征值。
直接預(yù)測(cè)法是指直接以流量計(jì)正常工作狀態(tài)下的日水量數(shù)據(jù)為基礎(chǔ),結(jié)合擴(kuò)展特征進(jìn)行預(yù)測(cè)。
以某公司某DN1000流量計(jì)2017年1月1日—2019年2月14日共775條數(shù)據(jù)為例,此流量計(jì)上游離某大型水廠的出水管較近,并受附近1個(gè)泵站的影響,干擾較大。通過(guò)Pearson相關(guān)系數(shù)法計(jì)算得到各特征的相關(guān)性,如圖5所示。其中,數(shù)字越大,表明與流量計(jì)水量的相關(guān)性越大,最終取≥0.15的特征(滬太路DN500、泰和水廠、汶水泵站<進(jìn)站壓力>、總供水量、閘北所水量、Day_of_year、月份、寶山所水量、汶水泵站<出站壓力>、最低氣溫、平均氣溫、最高氣溫、溫度等級(jí)、泰和水廠二車間<出廠壓力>、節(jié)假日)進(jìn)行最終運(yùn)算。
圖5 Pearson相關(guān)系數(shù)Fig.5 Pearson Correlation Coefficient
選取相關(guān)性較高的滬太路DN500、泰和水廠和汶水泵站(進(jìn)站壓力)3個(gè)特征,進(jìn)行多項(xiàng)式運(yùn)算得式(3)。
多項(xiàng)式=3×滬太路DN500+2×泰和水廠+汶水泵站(進(jìn)站壓力)
(3)
深度挖掘構(gòu)造的3個(gè)特征通過(guò)Pearson相關(guān)系數(shù)法計(jì)算后得到較好的相關(guān)性,如圖6所示,可以最終使用。
圖6 Pearson相關(guān)系數(shù)Fig.6 Pearson Correlation Coefficient
最終通過(guò)特征選取得到18個(gè)特征:滬太路DN500、泰和水廠、汶水泵站(進(jìn)站壓力)、汶水泵站(出站壓力)、總供水量、閘北所水量、Day_of_year、月份、寶山所水量、最低氣溫、平均氣溫、多項(xiàng)式、溫度等級(jí)、泰和水廠二車間(出廠壓力)、節(jié)假日、開根號(hào)、取對(duì)數(shù)、最高氣溫。
將整體數(shù)據(jù)劃分為測(cè)試集和訓(xùn)練集,使用XGBoost集成模型建立某DN1000流量計(jì)日水量預(yù)測(cè)模型,模型在測(cè)試集上的平均絕對(duì)誤差(MAE)為8 276 t、平均相對(duì)誤差(MRE)為2.7%。
倒推預(yù)測(cè)法是通過(guò)此流量計(jì)所在供水區(qū)域的日水量預(yù)測(cè),倒推出此流量計(jì)的日水量。與直接預(yù)測(cè)法相比,倒推預(yù)測(cè)法的優(yōu)勢(shì)在于,當(dāng)無(wú)法取得流量計(jì)正常工作狀態(tài)下的日水量進(jìn)行模型運(yùn)算時(shí),可以通過(guò)間接的倒推法避開直接運(yùn)算流量計(jì)水量,利用總水量減去剩余水量得到目標(biāo)流量計(jì)預(yù)測(cè)水量。
以上海市城投水務(wù)(集團(tuán))有限公司供水分公司某DN1200流量計(jì)為例,利用倒推法進(jìn)行預(yù)測(cè),使用此流量計(jì)所在供水區(qū)域2017年1月1日—2018年9月30日共638條日水量數(shù)據(jù)。此流量計(jì)位于青東供水管理所和長(zhǎng)寧供水管理所之間的一級(jí)邊界上,流量計(jì)受到周邊4個(gè)大型水廠的出水影響,并受附近7個(gè)泵站的影響,計(jì)量情況較復(fù)雜。其作用是計(jì)量從青東所流向長(zhǎng)寧所的水量,從而計(jì)算2個(gè)所的供水量,并直接影響其產(chǎn)銷差,作用重大。
圖7 Pearson相關(guān)系數(shù)Fig.7 Pearson Correlation Coefficient
通過(guò)Pearson相關(guān)系數(shù)法計(jì)算得到各特征的相關(guān)性,圖6(a)為區(qū)域總?cè)展┧扛魈卣飨嚓P(guān)性,圖6(b)為剩余日供水量各特征相關(guān)性。其中,數(shù)字越大,表明與水量的相關(guān)性越大,取≥0.15的特征進(jìn)行最終運(yùn)算,得到區(qū)域總?cè)展┧康?6個(gè)特征[總供水量、閔行所、閔行水廠、溫差、平均氣溫、最高氣溫、最低氣溫、泰和水廠、長(zhǎng)橋水廠、南市水廠、溫度等級(jí)、長(zhǎng)寧所、月份、Day_of_year、長(zhǎng)橋水廠(出廠總瞬時(shí)流量)、徐涇水廠、徐涇水廠(新)(1#出廠管壓力)、徐涇水廠(新)(2#出廠管壓力)、徐涇水廠(新)(2#出廠管瞬時(shí)流量)、四季、閔虹(閔虹壓力)、滬青平DN1000、國(guó)展(國(guó)展壓力)、華翔水庫(kù)泵站(1#水庫(kù)水位)、長(zhǎng)橋水廠(4#出廠管壓力)、節(jié)假日]和區(qū)域剩余日供水量的27個(gè)特征[比區(qū)域總?cè)展┧慷嗔诵钦颈谜?出站壓力)]。
將整體數(shù)據(jù)劃分為測(cè)試集和訓(xùn)練集,使用XGBoost集成模型建立水量預(yù)測(cè)模型,模型在測(cè)試集上:總供水量的平均絕對(duì)誤差(MAE)為3 365 t、平均相對(duì)誤差(MRE)為1.5%;剩余供水量的平均絕對(duì)誤差(MAE)為4 314 t、平均相對(duì)誤差(MRE)為2.1%。驗(yàn)證結(jié)果表明,XGBoost總供水量預(yù)測(cè)模型和剩余供水量預(yù)測(cè)模型的平均相對(duì)偏差為1.8%,總?cè)展┧亢褪S嗳展┧款A(yù)測(cè)模型的精度滿足計(jì)算要求,因此,二者相減的結(jié)果可以用于流量計(jì)日流量的預(yù)測(cè)。
XGBoost集成模型作為機(jī)器學(xué)習(xí)領(lǐng)域里重要的模型之一,通過(guò)集成若干個(gè)學(xué)習(xí)器,構(gòu)造一個(gè)學(xué)習(xí)能力較強(qiáng)的學(xué)習(xí)器,不僅能很好地?cái)M合訓(xùn)練集,還能在測(cè)試集上有很好的表現(xiàn)。將XGBoost集成模型引入邊界流量計(jì)日流量預(yù)測(cè)中,非常符合邊界流量計(jì)數(shù)據(jù)波動(dòng)較大、受外界影響較大、特征因子較多的特點(diǎn)。最終取得的模型精度較高,有較好的泛化能力,并通過(guò)直接預(yù)測(cè)法和倒推預(yù)測(cè)法相結(jié)合的方式,可應(yīng)對(duì)多種情況;靈活性較高,可應(yīng)用于實(shí)際工作中,修正流量計(jì)非正常工作狀態(tài)下計(jì)量的水量,有效解決相關(guān)供水區(qū)域之間產(chǎn)生的水量誤差。