劉 鶴 鵬,李 登 華,丁 勇
(1.南京理工大學(xué) 理學(xué)院,江蘇 南京 210094; 2.南京水利科學(xué)研究院,江蘇 南京 210029; 3.水利部水庫(kù)大壩安全重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210029)
大壩安全監(jiān)測(cè)數(shù)據(jù)是大壩安全運(yùn)行和正常維護(hù)工作的重要指標(biāo),是水利“四預(yù)”工作中的重要依據(jù)[1]。而在實(shí)際工程中,數(shù)據(jù)采集、傳輸、存儲(chǔ)等環(huán)節(jié)受各類因素影響,往往會(huì)使測(cè)量數(shù)據(jù)遭受不同程度的缺失,將影響大壩安全性的準(zhǔn)確評(píng)估[2]。因此,監(jiān)測(cè)數(shù)據(jù)的完整性和精準(zhǔn)性備受關(guān)注[3]。
目前,處理缺失值的傳統(tǒng)手段大都是基于統(tǒng)計(jì)學(xué)的理論建立的,如中位數(shù)填補(bǔ)法[4]、均值填補(bǔ)法[5]、眾數(shù)填補(bǔ)法[6]、線性插值填補(bǔ)法[7]以及多重插值填補(bǔ)法[8]等。隨著近年來(lái)對(duì)機(jī)器學(xué)習(xí)和其他新型學(xué)科研究的不斷深入,一些學(xué)者提出了全新的缺失值填補(bǔ)思想。李雙平等[9]比較了常用的數(shù)學(xué)插值方法,選擇了具有平滑插值曲線的三次Hermite分段插值,充分利用現(xiàn)有數(shù)據(jù)信息進(jìn)行數(shù)據(jù)序列的均質(zhì)化處理。文雯[10]在原有KNN的基礎(chǔ)上引入了灰色理論,并提出了一種新的加權(quán)灰色KNN方法對(duì)缺失值進(jìn)行填補(bǔ),通過(guò)融入加權(quán)灰色理論對(duì)傳統(tǒng)KNN算法進(jìn)行一定程度的改進(jìn)。Ramzan等[11]提出通過(guò)挖掘測(cè)點(diǎn)時(shí)間序列的自回歸性來(lái)填補(bǔ)缺失值。王娟等[12]針對(duì)含有缺失值的監(jiān)測(cè)數(shù)據(jù),使用核獨(dú)立分量分析法將提取的獨(dú)立分量作為預(yù)測(cè)模型的輸入項(xiàng)進(jìn)而預(yù)測(cè)缺失值。但這些研究針對(duì)大壩安全監(jiān)測(cè)數(shù)據(jù)集而言,仍存在一些問(wèn)題,如對(duì)于數(shù)據(jù)相似性的依賴度較強(qiáng)、對(duì)高缺失率數(shù)據(jù)集填補(bǔ)精度較低、應(yīng)對(duì)大壩安全監(jiān)測(cè)數(shù)據(jù)集中不同缺失值類型的魯棒性較差等。
有鑒于此,本文通過(guò)分析多座現(xiàn)役大壩的實(shí)測(cè)資料,對(duì)大壩安全監(jiān)測(cè)數(shù)據(jù)集中存在的缺失值類型進(jìn)行歸納總結(jié),并針對(duì)不同類型的缺失值提出了一種基于各測(cè)點(diǎn)時(shí)間尺度相關(guān)性的缺失值填補(bǔ)新算法,旨在考慮時(shí)間序列間相關(guān)性的同時(shí),引入迭代技術(shù)實(shí)時(shí)更新時(shí)間序列間的相關(guān)性,彌補(bǔ)傳統(tǒng)算法處理缺失值精度低的不足,并實(shí)現(xiàn)多測(cè)點(diǎn)缺失值的自動(dòng)化填補(bǔ)。
通過(guò)文獻(xiàn)調(diào)研,并基于多座大中型水庫(kù)的多年實(shí)測(cè)資料,研究發(fā)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的主要缺失類型有以下幾種。
針對(duì)單一測(cè)點(diǎn)的主要缺失值類型:
(1) 不同的缺失率[13],體現(xiàn)在相同時(shí)間段內(nèi)缺失值數(shù)量占該時(shí)間段全部數(shù)據(jù)量的比值不同。不同缺失率的時(shí)程曲線見(jiàn)圖1。
圖1 不同缺失率下時(shí)間序列的時(shí)程曲線Fig.1 Time history curves of time series under different missing rates
(2) 不同的離散程度[14],主要有3種形式:① 離散型缺失;② 連續(xù)型缺失;③ 混合型缺失。
離散型缺失:在數(shù)據(jù)分布上呈現(xiàn)為缺失值在時(shí)間序列內(nèi)分散分布、不連續(xù)。篩選并剔除數(shù)據(jù)集中的異常值是造成此類型缺失值的主要原因,此類型缺失數(shù)據(jù)集的歷史過(guò)程線見(jiàn)圖2(a)。
圖2 不同缺失值離散度下時(shí)間序列的時(shí)程曲線Fig.2 Time history curves of time series under different dispersion degree of missing value
連續(xù)型缺失:在數(shù)據(jù)分布上呈現(xiàn)為密集且連續(xù)出現(xiàn)缺失值。數(shù)據(jù)采集系統(tǒng)故障是造成此類型缺失值的主要原因,此類型缺失數(shù)據(jù)集的時(shí)程曲線見(jiàn)圖2(b)。
混合型缺失:在數(shù)據(jù)分布上呈現(xiàn)為在時(shí)間序列內(nèi)同時(shí)存在離散型和連續(xù)型分布。此類缺失類型在大壩安全監(jiān)測(cè)數(shù)據(jù)集中較為普遍,典型時(shí)程曲線見(jiàn)圖2(c)。
由于目前各項(xiàng)數(shù)據(jù)挖掘研究均需參考測(cè)點(diǎn)的空間分布特征[15-17],故針對(duì)多測(cè)點(diǎn)的缺失值填補(bǔ)算法也需考慮缺失值在空間尺度的分布情況。在空間尺度中主要的缺失類型有:① 集中型缺失;② 均勻型缺失。
集中型缺失:在數(shù)據(jù)分布上呈現(xiàn)為缺失值存在于一片區(qū)域測(cè)點(diǎn)的時(shí)間序列中的少數(shù)測(cè)點(diǎn)內(nèi)。造成此類型缺失值的主要原因是正常工作的測(cè)點(diǎn)群中出現(xiàn)少數(shù)測(cè)點(diǎn)發(fā)生損壞導(dǎo)致數(shù)據(jù)采集缺失,此類型缺失數(shù)據(jù)集的時(shí)程曲線見(jiàn)圖3(a)。
圖3 不同缺失值集中度下時(shí)間序列的時(shí)程曲線Fig.3 Time history curves of time series under different missing value concentration
均勻型缺失:在數(shù)據(jù)分布上呈現(xiàn)為缺失值均勻存在于一片區(qū)域測(cè)點(diǎn)的時(shí)間序列中。當(dāng)此區(qū)域出現(xiàn)區(qū)域性系統(tǒng)問(wèn)題時(shí),該區(qū)域內(nèi)所有儀器均無(wú)法采集數(shù)據(jù),進(jìn)而導(dǎo)致此類型的數(shù)據(jù)缺失,此類型缺失數(shù)據(jù)集的時(shí)程曲線見(jiàn)圖3(b)。
傳統(tǒng)缺失值填補(bǔ)算法或基于自回歸模型,或依據(jù)數(shù)據(jù)相似性,這些算法無(wú)法挖掘時(shí)間序列內(nèi)存在的潛在信息,但大壩作為整體,其各個(gè)監(jiān)測(cè)量之間存在一定相關(guān)性[18],有鑒于此,本文提出基于時(shí)間尺度相關(guān)性的缺失值填補(bǔ)新算法。
在統(tǒng)計(jì)學(xué)中常使用相關(guān)系數(shù)來(lái)描述兩個(gè)變量之間的相關(guān)程度,不同類型數(shù)據(jù)適用的相關(guān)系數(shù)不同。針對(duì)大壩安全監(jiān)測(cè)數(shù)據(jù)集而言,由于行業(yè)中一般假設(shè)數(shù)據(jù)集內(nèi)各變量符合正態(tài)分布[19],故本文選擇Pearson相關(guān)系數(shù)[20]來(lái)定量衡量各時(shí)間序列之間的相關(guān)性,記為r,是一種線性相關(guān)系數(shù),用來(lái)反映兩個(gè)變量X和Y的線性相關(guān)程度,其具體表達(dá)式如下,相關(guān)系數(shù)介于-1~1之間,絕對(duì)值越大表明兩變量之間的相關(guān)性越強(qiáng)。
基于時(shí)間尺度相關(guān)性的缺失值填補(bǔ)新算法其核心在于預(yù)測(cè)模型中作為輸入項(xiàng)的時(shí)間序列的選取,尋找與目標(biāo)待填補(bǔ)缺失值所在時(shí)間序列存在一定相關(guān)關(guān)系且符合一定要求的時(shí)間序列,并將這些時(shí)間序列作為預(yù)測(cè)算法的輸入項(xiàng),進(jìn)而預(yù)測(cè)填補(bǔ)缺失值。在輸入項(xiàng)選取上應(yīng)遵循以下原則:① 作為輸入項(xiàng)的時(shí)間序列不可與目標(biāo)缺失值存在同一時(shí)段的缺失;② 作為輸入項(xiàng)的時(shí)間序列需與目標(biāo)填補(bǔ)時(shí)間序列之間滿足一定的相關(guān)度。
新算法的基本步驟如下:
(1) 標(biāo)記輸入模型中每條時(shí)間序列中的缺失值Xi。
(2) 計(jì)算各時(shí)間序列之間的Pearson相關(guān)系數(shù)r。
(3) 將包含缺失值Xi的時(shí)間序列輸入到模型中,篩選3個(gè)以上與缺失值Xi所在時(shí)間序列r在0.95~1.00區(qū)間范圍內(nèi),且不與該缺失值同一時(shí)段缺失的時(shí)間序列進(jìn)行建模,將上述篩選的時(shí)間序列中連續(xù)部分作為訓(xùn)練集,將缺失部分作為測(cè)試集輸入預(yù)測(cè)模型并輸出預(yù)測(cè)值,將預(yù)測(cè)值作為缺失值的填補(bǔ)值,并將填補(bǔ)后的時(shí)間序列重新放回?cái)?shù)據(jù)集中。如符合上述步驟要求的時(shí)間序列數(shù)量?jī)H有2個(gè)時(shí),則引入至少一個(gè)已經(jīng)填補(bǔ)后的符合上述要求的時(shí)間序列來(lái)構(gòu)建輸入項(xiàng)。如符合上述步驟要求的影響因子數(shù)量?jī)H有一個(gè)時(shí),則引入至少2個(gè)已經(jīng)填補(bǔ)后的符合上述步驟要求的時(shí)間序列來(lái)構(gòu)建輸入項(xiàng)。
(4) 檢測(cè)數(shù)據(jù)集中是否存在缺失值,如有缺失值則進(jìn)行下述步驟,若檢測(cè)到?jīng)]有缺失值則直接輸出完整的數(shù)據(jù)集。
(5) 由于數(shù)據(jù)集中缺失值得到填補(bǔ),需重新計(jì)算各時(shí)間序列之間的Pearson相關(guān)系數(shù)r。
(6) 重復(fù)步驟(3)~(5)。
(7) 如缺失值Xi在完成上述填補(bǔ)后仍存在缺失值,則將步驟(3)要求的r區(qū)間降低至0.90~0.95,并重復(fù)上述填補(bǔ)過(guò)程。
(8) 如缺失值Xi在完成上述填補(bǔ)后仍存在缺失值,則將步驟(3)要求的r區(qū)間每次以0.05為區(qū)間長(zhǎng)度進(jìn)行降低,并重復(fù)上述的填補(bǔ)過(guò)程,直至所有缺失值得到填補(bǔ)。
整個(gè)流程如圖4所示。
圖4 融合多測(cè)點(diǎn)數(shù)據(jù)相關(guān)性的缺失值填補(bǔ)新算法流程Fig.4 Flowchart of new missing value filling algorithm based on fusion of multi-point data correlation
本次試驗(yàn)以新疆開(kāi)都河流域內(nèi)察汗烏蘇水電站混凝土面板堆石壩的安全監(jiān)測(cè)數(shù)據(jù)集為依據(jù),進(jìn)行了兩次缺失值填補(bǔ)試驗(yàn)。試驗(yàn)一測(cè)試了填補(bǔ)算法對(duì)于不同類型缺失值數(shù)據(jù)集的填補(bǔ)性能,試驗(yàn)二測(cè)試了在真實(shí)數(shù)據(jù)集下填補(bǔ)算法對(duì)于缺失值的填補(bǔ)效果。在該堆石壩壩左0+154、壩左0+200、壩左0+202此3個(gè)監(jiān)測(cè)斷面內(nèi)高程1 579~1 619 m的面板區(qū)域中共布設(shè)了30個(gè)測(cè)點(diǎn)[見(jiàn)圖5(a)],安裝包括面板測(cè)縫計(jì)、鋼筋應(yīng)力計(jì)、滲壓計(jì)、混凝土應(yīng)變計(jì)等4類監(jiān)測(cè)儀器。監(jiān)測(cè)時(shí)間為2017年1月1日至2020年12月31日。這些測(cè)點(diǎn)由于在空間上鄰近,受到的環(huán)境作用以及其他因素的影響相似,故這些測(cè)點(diǎn)在時(shí)間尺度上存在一定的相關(guān)性,各測(cè)點(diǎn)時(shí)間序列間Pearson相關(guān)系數(shù)熱力圖如圖5(b)所示。
試驗(yàn)一在原有完整數(shù)據(jù)集上構(gòu)建缺失值,通過(guò)不同缺失值分布類型來(lái)真實(shí)地還原原始數(shù)據(jù)集中缺失值的分布情況。在缺失率層面設(shè)置小缺失率(1%)和大缺失率(10%)兩種情況;在集中度層面設(shè)置為集中在少數(shù)測(cè)點(diǎn)缺失和均勻在全部測(cè)點(diǎn)缺失兩種情況;在離散程度層面設(shè)置離散型缺失、連續(xù)型缺失以及混合型缺失3種情況。綜合上述3個(gè)層次的組合,共模擬12種包含不同類型缺失值的數(shù)據(jù)集,具體對(duì)應(yīng)編號(hào)如表1所列。
表1 包含不同類型缺失值數(shù)據(jù)集對(duì)應(yīng)編號(hào)Tab.1 Corresponding numbering of data sets containing different types of missing values
試驗(yàn)二為測(cè)試各算法在實(shí)際工程中對(duì)于缺失值的填補(bǔ)效果,選取上述測(cè)點(diǎn)群中的R23測(cè)點(diǎn)(所測(cè)量的物理量為徑向位移),對(duì)其實(shí)測(cè)數(shù)據(jù)中2017年10月27日至12月25日存在的缺失值進(jìn)行填補(bǔ)測(cè)試。
本次試驗(yàn)使用了目前機(jī)器學(xué)習(xí)領(lǐng)域中認(rèn)可度廣且成熟度高的3種機(jī)器學(xué)習(xí)算法:BP神經(jīng)網(wǎng)絡(luò)、SVM(support vector machine)、多元線性回歸(LR)[21-22],將這3種算法分別作為預(yù)測(cè)填補(bǔ)算法中的預(yù)測(cè)模型內(nèi)核。同時(shí)為對(duì)比對(duì)缺失值填補(bǔ)的性能,選擇KNN最近鄰填補(bǔ)法和線性插值填補(bǔ)法同時(shí)對(duì)上述12種包含不同類型缺失值的數(shù)據(jù)集進(jìn)行缺失值填補(bǔ),并對(duì)填補(bǔ)結(jié)果進(jìn)行對(duì)比分析。
為了對(duì)比不同缺失值填補(bǔ)算法對(duì)于缺失值的填補(bǔ)精度,本文利用均方根誤差[23](RMSE)以及歸一化平均絕對(duì)百分比誤差[24](nMAPE)作為評(píng)價(jià)填補(bǔ)算法對(duì)于缺失值填補(bǔ)精度優(yōu)劣的指標(biāo)。
本文提出的缺失值填補(bǔ)算法、KNN最近鄰填補(bǔ)法以及線性插值填補(bǔ)法針對(duì)數(shù)據(jù)集1,2,3,7,8,9的填補(bǔ)精度結(jié)果如表2~3所列。
表2 不同填補(bǔ)算法針對(duì)數(shù)據(jù)集1~3的填補(bǔ)精度Tab.2 Filling accuracy of different filling algorithms for data sets 1~3
表3 不同填補(bǔ)算法針對(duì)數(shù)據(jù)集7~9的填補(bǔ)精度Tab.3 Filling accuracy of different filling algorithms for data sets 7~9
由表2~3可知,當(dāng)缺失率、集中度為常量時(shí),各填補(bǔ)算法對(duì)于離散型缺失數(shù)據(jù)集的填補(bǔ)效果均優(yōu)于連續(xù)型和混合型缺失數(shù)據(jù)集,對(duì)于連續(xù)型缺失數(shù)據(jù)集的填補(bǔ)效果最差。當(dāng)缺失率、離散程度為常量時(shí),各填補(bǔ)算法對(duì)于集中缺失型數(shù)據(jù)集的填補(bǔ)效果均優(yōu)于均勻缺失型數(shù)據(jù)集。不同預(yù)測(cè)模型內(nèi)核對(duì)缺失值的填補(bǔ)效果也有一定影響,其中LR、SVR內(nèi)核對(duì)于不同類型的缺失數(shù)據(jù)集擬合效果較好,且在應(yīng)對(duì)不同類型缺失數(shù)據(jù)集時(shí)兩種模型內(nèi)核的表現(xiàn)差異不大,BP神經(jīng)網(wǎng)絡(luò)內(nèi)核的擬合效果較差,但也優(yōu)于其余填補(bǔ)算法。
本文填補(bǔ)算法在各預(yù)測(cè)模型內(nèi)核下針對(duì)數(shù)據(jù)集1,2,3,7,8,9的RMSE均值為4.317 934,nMAPE均值為0.034 305;KNN填補(bǔ)法的RMSE均值為5.300 193,nMAPE均值為0.042 396;線性插值填補(bǔ)的RMSE均值為5.910 327,nMAPE均值為0.047 557。相對(duì)而言,本文填補(bǔ)算法的各項(xiàng)精度指標(biāo)的平均值針對(duì)小缺失率的情況下的不同類型缺失值數(shù)據(jù)集均優(yōu)于其他填補(bǔ)算法,其中RMSE均值相較于KNN填補(bǔ)法的RMSE均值提升了18.53%,相較于線性插值填補(bǔ)法的提高了26.94%;nMAPE均值相較于KNN填補(bǔ)法的提升了19.08%,相較于線性插值填補(bǔ)法的提高了27.86%。
同理,不同填補(bǔ)算法針對(duì)數(shù)據(jù)集4,5,6,10,11,12的填補(bǔ)精度結(jié)果如表4~5所列。
表4 不同填補(bǔ)算法針對(duì)數(shù)據(jù)集4~6的填補(bǔ)精度Tab.4 Filling accuracy of different filling algorithms for data sets 4~6
表5 不同填補(bǔ)算法針對(duì)數(shù)據(jù)集10~12的填補(bǔ)精度Tab.5 Filling accuracy of different filling algorithms for data sets 10~12
同時(shí)隨著缺失率的提升,各填補(bǔ)算法的填補(bǔ)精度雖均有所下降,但本文所提算法的下降率更低,RMSE均值在缺失率為10%的情況下相較于1%時(shí)下降了0.223 632,下降率為5.2%,nMAPE均值下降了0.001 694,下降率為4.9%。而KNN填補(bǔ)法的RMSE均值在缺失率為10%的情況下相較于1%時(shí)下降了0.132 192,下降率為5.7%,nMAPE均值下降了0.001 694,下降率為5.1%;線性插值填補(bǔ)法在缺失率為10%的情況下相較于1%時(shí)下降了0.813 341,下降率為13.8%,nMAPE均值下降了0.007 491,下降率為15.8%。
針對(duì)R23測(cè)點(diǎn)數(shù)據(jù)集,真實(shí)的填補(bǔ)情況如圖6所示。
圖6 實(shí)測(cè)缺失數(shù)據(jù)集不同填補(bǔ)算法的填補(bǔ)效果對(duì)比Fig.6 Comparison of the filling effect of measured missing data sets by different filling algorithms
依據(jù)圖6可知,本文提出的填補(bǔ)算法可有效還原缺失值的真實(shí)分布情況,且較好地還原了數(shù)據(jù)本身的周期性。而線性插值填補(bǔ)法等傳統(tǒng)算法,僅利用缺失值前后的數(shù)據(jù)進(jìn)行回歸,無(wú)法挖掘出測(cè)點(diǎn)內(nèi)部的周期性以及測(cè)點(diǎn)間的相關(guān)性,導(dǎo)致缺失值填補(bǔ)效果較差。
(1) 本文通過(guò)研究分析現(xiàn)有大壩安全監(jiān)測(cè)數(shù)據(jù)集中缺失值分布情況,總結(jié)提出了數(shù)據(jù)集中主要的缺失類型。
(2) 基于測(cè)點(diǎn)間相關(guān)度的評(píng)判依據(jù),提出了一種融合多測(cè)點(diǎn)數(shù)據(jù)相關(guān)性的缺失值填補(bǔ)新算法,該算法利用已有的預(yù)測(cè)模型作為數(shù)據(jù)填補(bǔ)的來(lái)源,通過(guò)反復(fù)迭代計(jì)算,獲得較高的數(shù)據(jù)填補(bǔ)質(zhì)量。
(3) 試驗(yàn)結(jié)果表明,本文所提算法相較于其他填補(bǔ)方法,針對(duì)不同類型缺失值數(shù)據(jù)集在RMSE均值上至少提升15%,nMAPE均值至少提升10%,能很好地還原缺失值的真實(shí)變化趨勢(shì),滿足大壩安全監(jiān)測(cè)要求。