馬 創(chuàng),王 堯,李林峰
(重慶郵電大學(xué) a.軟件工程學(xué)院;b.通信與信息工程學(xué)院,重慶 400065)
水是人類社會(huì)生產(chǎn)生活必不可少的資源,水資源相關(guān)的環(huán)境保護(hù)與循環(huán)利用至關(guān)重要。隨著社會(huì)的進(jìn)步,水體污染對(duì)社會(huì)的影響也日益明顯,水體被排入大量污染物,對(duì)人類的日常生活造成極大的威脅。而水質(zhì)預(yù)測(cè)可以為有關(guān)部門(mén)的干預(yù)決策提供重要參考。在許多工業(yè)場(chǎng)景中,水質(zhì)預(yù)測(cè)也具有重要意義。例如在污水處理工藝中,如果可以通過(guò)水質(zhì)預(yù)測(cè)提前預(yù)知突發(fā)的水質(zhì)超標(biāo)情況,就能夠?yàn)楣こ倘藛T提供預(yù)警,預(yù)留時(shí)間人為干預(yù),保證污水處理出廠水質(zhì)達(dá)標(biāo)。
水質(zhì)預(yù)測(cè)主要有如下幾種預(yù)測(cè)方法:通過(guò)構(gòu)建物理模型的方法[1],灰色系統(tǒng)預(yù)測(cè)法,神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)法[2],模糊理論預(yù)測(cè)法[3],以及數(shù)理統(tǒng)計(jì)預(yù)測(cè)法等。
顏劍波等人[4]通過(guò)分析水質(zhì)變量之間的規(guī)律,建立多元回歸模型,對(duì)三門(mén)峽斷面水質(zhì)進(jìn)行了預(yù)測(cè)。劉東君等人[5]結(jié)合灰色系統(tǒng)預(yù)測(cè)法與神經(jīng)網(wǎng)絡(luò),對(duì)北京密云水庫(kù)的溶解氧進(jìn)行了預(yù)測(cè),通過(guò)將混合模型分別于2個(gè)原型方法作比較,表明混合模型相比2個(gè)原型方法,預(yù)測(cè)結(jié)果更為精確和穩(wěn)定。姜云超等人[6]綜合運(yùn)用 BP, SOM 與模糊綜合評(píng)價(jià)法對(duì)黃河水質(zhì)進(jìn)行了評(píng)價(jià),取得了較理想的結(jié)果。榮潔等人[7]提出指數(shù)平滑法-馬爾科夫預(yù)測(cè)模型,將平滑處理后的數(shù)據(jù)通過(guò)馬爾科夫預(yù)測(cè)模型對(duì)合肥湖濱與巢湖裕溪口2個(gè)斷面的CODMn、TP、TN濃度進(jìn)行了預(yù)測(cè)。RederK等人[8]使用人工神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)水質(zhì)變化,證實(shí)了神經(jīng)網(wǎng)絡(luò)模型是被用于水質(zhì)預(yù)測(cè)的可行性。Alizadeh M J和Kavianpour M R[9]使用小波神經(jīng)網(wǎng)絡(luò)對(duì)太平洋希洛灣地區(qū)的水質(zhì)進(jìn)行了預(yù)測(cè),證明了小波神經(jīng)網(wǎng)絡(luò)模型相對(duì)于其他神經(jīng)網(wǎng)絡(luò)模型的優(yōu)越性。Azimi S等人[10]結(jié)合神經(jīng)網(wǎng)絡(luò)與改進(jìn)的模糊聚類技術(shù)來(lái)預(yù)測(cè)了水質(zhì)惡化的概率。
文獻(xiàn)中雖然對(duì)水質(zhì)預(yù)測(cè)方面作了深入的研究,但并未針對(duì)原始數(shù)據(jù)的各項(xiàng)特征對(duì)預(yù)測(cè)任務(wù)的影響權(quán)重進(jìn)行評(píng)估,而在輸入預(yù)測(cè)模型的數(shù)據(jù)維度比較多時(shí),對(duì)預(yù)測(cè)任務(wù)貢獻(xiàn)比較小的特征會(huì)干擾預(yù)測(cè)模型,降低預(yù)測(cè)模型的性能。因此使用遺傳算法來(lái)調(diào)整各特征維度的權(quán)重,使其符合預(yù)測(cè)模型的特性,提高了預(yù)測(cè)模型的預(yù)測(cè)精度,為水質(zhì)預(yù)測(cè)提供了一種有價(jià)值的解決方案。
源數(shù)據(jù)來(lái)自重慶市某污水廠2016年1月1日至2018年12月31日之間每日采集的進(jìn)出水水質(zhì)數(shù)據(jù)與活性污泥池監(jiān)測(cè)數(shù)據(jù),共有1 096條數(shù)據(jù)。源數(shù)據(jù)共有21維,主要包含了進(jìn)出水的5 d需氧量、化學(xué)需氧量、酸堿度、總磷、總氮等水質(zhì)數(shù)據(jù)與污水處理總量、耗電量、活性污泥濃度等污水處理設(shè)備相關(guān)數(shù)據(jù)。本次水質(zhì)預(yù)測(cè)中標(biāo)簽以國(guó)家三類水質(zhì)標(biāo)準(zhǔn)中相關(guān)水質(zhì)的標(biāo)準(zhǔn)為閾值。
在正式使用遺傳算法依據(jù)數(shù)據(jù)優(yōu)化特征權(quán)重向量之前,首先要經(jīng)過(guò)一系列數(shù)據(jù)預(yù)處理。處理流程主要分為數(shù)據(jù)特征初步選擇、標(biāo)簽生成、數(shù)據(jù)標(biāo)準(zhǔn)化處理3個(gè)步驟。
為了加快預(yù)處理速度,首先依據(jù)一般經(jīng)驗(yàn)剔除一部分較為明顯地與問(wèn)題相關(guān)性小的特征,本數(shù)據(jù)在剔除了若干特征后,剩余17維特征。列出部分?jǐn)?shù)據(jù)樣例如表1所示。
表1 數(shù)據(jù)樣例表
初步選擇特征后,需要為數(shù)據(jù)生成對(duì)應(yīng)標(biāo)簽。假設(shè)使用連續(xù)的nd的連續(xù)數(shù)據(jù)來(lái)預(yù)測(cè)下一天的水質(zhì)情況,則數(shù)據(jù)將被整合為1 096-n條,17*n維的可用數(shù)據(jù)。由于本次實(shí)驗(yàn)中特征維數(shù)基數(shù)較大,n值增長(zhǎng)會(huì)導(dǎo)致數(shù)據(jù)維數(shù)急劇上升,引發(fā)維度災(zāi)難,從而極大地影響預(yù)測(cè)模型的性能,所以將此處的n值定為1,使用原數(shù)據(jù)中的每一條數(shù)據(jù)預(yù)測(cè)其后一條(1d后)的水質(zhì)情況。
據(jù)此依據(jù)每條數(shù)據(jù)的總磷、總氮、BOD5、CODcr 4項(xiàng)出水水質(zhì)結(jié)合國(guó)家三類水質(zhì)標(biāo)準(zhǔn)生成其前一條數(shù)據(jù)的標(biāo)簽。標(biāo)簽生成步驟完成后,數(shù)據(jù)共1 095條,17維。
由數(shù)據(jù)樣例可以看出原數(shù)據(jù)中各特征維度的數(shù)據(jù)尺度差距非常大,如果直接導(dǎo)入預(yù)測(cè)模型會(huì)導(dǎo)致部分特征維度被模型忽略掉。由于沒(méi)有關(guān)于特征之間權(quán)重的可信先驗(yàn)知識(shí)的情況下,將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化操作,統(tǒng)一所有特征維度的尺度(方差)至相同,然后通過(guò)遺傳算法進(jìn)行特征權(quán)重調(diào)整,達(dá)到特征選擇的目的。
支持向量機(jī)是一種基于統(tǒng)計(jì)學(xué)習(xí)理論的一種新類型的廣義分類器,由于它使結(jié)構(gòu)風(fēng)險(xiǎn)最小化、有較好的泛化能力,在引入核函數(shù)后,還能將在低維輸入空間線性不可分的樣本通過(guò)映射至高位空間使樣本變得線性可分,被廣泛應(yīng)用于各種監(jiān)督學(xué)習(xí)場(chǎng)景下[11-13]。近年來(lái),不少研究將SVM應(yīng)用于各類預(yù)測(cè)分析問(wèn)題[14],在進(jìn)行小樣本數(shù)據(jù)預(yù)測(cè)時(shí),其預(yù)測(cè)能力甚至優(yōu)于BP神經(jīng)網(wǎng)絡(luò)方法和RBF神經(jīng)網(wǎng)絡(luò)。
設(shè)樣本(x1,y1),(x2,y2),…,(xk,yk)∈RN×R,其中xi為輸入數(shù)據(jù),yi對(duì)應(yīng)標(biāo)簽,k為數(shù)據(jù)總數(shù),則其最小化目標(biāo)函數(shù)可表示為
(1)
式中:C為平衡模型經(jīng)驗(yàn)風(fēng)險(xiǎn)與模型復(fù)雜度的懲罰因子;ζ為非負(fù)松弛變量;φ()為受核函數(shù)相關(guān)的函數(shù);K(xi,xj)=φ(xi)Tφ(xj)。
通過(guò)拉格朗日法將上述最優(yōu)化問(wèn)題轉(zhuǎn)化為對(duì)偶問(wèn)題。
(2)
最后可得決策函數(shù)
(3)
模型在預(yù)測(cè)時(shí),輸入數(shù)據(jù)x,則可通過(guò)上式計(jì)算得到對(duì)應(yīng)的預(yù)測(cè)結(jié)果。
在數(shù)據(jù)挖掘機(jī)器學(xué)習(xí)領(lǐng)域中,高維數(shù)據(jù)通常需要特征選擇降維以避免使模型受到維度災(zāi)難的影響,這使得特征選擇成為機(jī)器學(xué)習(xí)算法數(shù)據(jù)預(yù)處理步驟中的重要一環(huán)。
遺傳算法是一種模擬物種進(jìn)化模式而來(lái)的迭代優(yōu)化算法。它通過(guò)模擬生物種群的變異、繁衍來(lái)優(yōu)化候選解。由于遺傳算法具有全局優(yōu)化搜索的特點(diǎn)[15],在各個(gè)領(lǐng)域都有著廣泛的應(yīng)用[16-20]。遺傳算法的流程圖如圖1所示。
圖1 遺傳算法流程圖
在使用遺傳算法優(yōu)化SVM模型時(shí),通過(guò)選取每個(gè)維度的放縮因子組成的向量v=(v1,v2,v3,…,vm)作為種群個(gè)體,將訓(xùn)練集數(shù)據(jù)以特征權(quán)重向量v放縮后數(shù)據(jù)x′=x×vT供給SVM模型訓(xùn)練,其在驗(yàn)證集上的F1分?jǐn)?shù)作為個(gè)體適應(yīng)度。
遺傳算法優(yōu)化特征權(quán)重向量的過(guò)程中,是將SVM模型調(diào)整得適用于驗(yàn)證集數(shù)據(jù)分布的特點(diǎn),在將優(yōu)化結(jié)果放到測(cè)試集上進(jìn)行驗(yàn)證時(shí),由于驗(yàn)證集數(shù)據(jù)分布不完全與測(cè)試集數(shù)據(jù)分布相同,會(huì)因?yàn)檫^(guò)擬合而導(dǎo)致模型在測(cè)試集上的性能相比于驗(yàn)證集出現(xiàn)退化。這個(gè)退化本身是由于過(guò)擬合產(chǎn)生的,可以通過(guò)調(diào)整遺傳算法的種群大小、迭代次數(shù)、變異程度參數(shù)來(lái)抑制。
綜上所述,采用原始水質(zhì)數(shù)據(jù)x、國(guó)家三級(jí)水質(zhì)標(biāo)準(zhǔn)訓(xùn)練基于遺傳算法與SVM的水質(zhì)預(yù)測(cè)模型的完整流程如圖2所示。
圖2 預(yù)測(cè)模型流程圖
本實(shí)驗(yàn)所用硬件為聯(lián)想Y500筆記本一臺(tái),CPU型號(hào)為I5-3210M,內(nèi)存8 GB。軟件平臺(tái)為python 3.5.3,主要使用了pandas、numpy、sklearn 3個(gè)庫(kù)。
實(shí)驗(yàn)依據(jù)污水廠的1 000余條歷史數(shù)據(jù),對(duì)廠方感興趣的總磷、總氮、氨氮、BOD5、CODcr 5項(xiàng)出水水質(zhì)分別進(jìn)行預(yù)測(cè),并與傳統(tǒng)SVM預(yù)測(cè)的結(jié)果進(jìn)行對(duì)比。
由于模型的過(guò)擬合問(wèn)題可以通過(guò)加大驗(yàn)證集數(shù)據(jù)數(shù)量,確保驗(yàn)證集數(shù)據(jù)分布貼近實(shí)際應(yīng)用時(shí)的情形(測(cè)試集)來(lái)緩和,所以在數(shù)據(jù)分段時(shí),將數(shù)據(jù)按3∶5∶2的比例分為訓(xùn)練集、驗(yàn)證集與測(cè)試集。
在給定遺傳網(wǎng)絡(luò)中種群大小為10,變異范圍為0~0.1的前提下,通過(guò)測(cè)試觀察驗(yàn)證集上的適應(yīng)度與測(cè)試集上的適應(yīng)度隨迭代次數(shù)變化情況來(lái)確定合適的迭代次數(shù)。實(shí)驗(yàn)得到的效果圖如圖3所示。
圖3 遺傳算法適應(yīng)度曲線
圖3中驗(yàn)證集的適應(yīng)度隨著進(jìn)化代數(shù)小幅震蕩提升并在40代左右達(dá)到一個(gè)穩(wěn)定值,而對(duì)測(cè)試集的適應(yīng)度在第23代左右達(dá)到最大值。為了避免實(shí)驗(yàn)的隨機(jī)性影響,保守取最佳迭代次數(shù)為20。
由于水質(zhì)除少數(shù)情況外,在大部分的時(shí)間中都是合乎國(guó)家三類水質(zhì)標(biāo)準(zhǔn)的,數(shù)據(jù)表現(xiàn)出不平衡的傾向,本次數(shù)據(jù)依照4個(gè)預(yù)測(cè)目標(biāo)的標(biāo)簽平衡情況如表2所示。
表2 正例樣本統(tǒng)計(jì)表
類別不平衡的樣本容易導(dǎo)致模型過(guò)擬合,還容易出現(xiàn)模型正確率較高而召回率、精確率較低,沒(méi)有實(shí)用意義。例如數(shù)據(jù)中有100個(gè)正例與900個(gè)反例,模型被訓(xùn)練永遠(yuǎn)返回新樣本預(yù)測(cè)結(jié)果為反例,雖然正確率高達(dá)90%,但對(duì)于實(shí)際問(wèn)題是沒(méi)有任何參考價(jià)值的。解決類別不平衡問(wèn)題一般有2大類方法:欠采樣與重采樣。欠采樣通過(guò)去除多數(shù)類樣本使得正例、反例數(shù)目接近,但容易導(dǎo)致樣本數(shù)量過(guò)少,也容易產(chǎn)生過(guò)擬合;重采樣通過(guò)重復(fù)少數(shù)類樣本來(lái)平衡正反例數(shù)目,但簡(jiǎn)單重復(fù)原本就較少的少類樣本會(huì)使得這部分信息被放大,模型學(xué)習(xí)到的信息過(guò)于‘特殊’。綜合考慮下,通過(guò)將sklearn庫(kù)中的SVM模型參數(shù)中的class_wight參數(shù)設(shè)置為‘balanced’,運(yùn)用加權(quán)的方式使得多數(shù)類與少數(shù)類在加權(quán)平衡后,對(duì)SVM訓(xùn)練過(guò)程中的損失函數(shù)起到同樣大的作用,緩解數(shù)據(jù)本身類別不平衡對(duì)模型的影響。
在正式實(shí)驗(yàn)中,使用基于遺傳算法與SVM的水質(zhì)預(yù)測(cè)模型與傳統(tǒng)線性SVM模型分別對(duì)1 000余條水質(zhì)數(shù)據(jù)依照國(guó)家三類水質(zhì)進(jìn)行預(yù)測(cè)。其中遺傳算法參數(shù)參考之前的測(cè)試,取種群大小為10、變異范圍為0~0.1(均勻分布)、迭代次數(shù)為20次。兩者的SVM模型部分參數(shù)為C=1.0,tol=0.000 1,class_wight=balanced。得到預(yù)測(cè)的正確率、召回率如表3所示。
表3 預(yù)測(cè)結(jié)果
從表3中可以看出,在水質(zhì)指標(biāo)方面,總磷與BOD5兩項(xiàng)水質(zhì)指標(biāo)預(yù)測(cè)指標(biāo)較好,較為易于預(yù)測(cè),總氮與COD相對(duì)難以預(yù)測(cè)一些。在模型對(duì)比方面,改進(jìn)的SVM在所有水質(zhì)指標(biāo)預(yù)測(cè)上均優(yōu)于傳統(tǒng)SVM,特別在總氮指標(biāo)預(yù)測(cè)上,有非常大的提升。說(shuō)明通過(guò)遺傳算法優(yōu)化特征權(quán)重向量以達(dá)到一定程度上的特征選擇的做法的確能夠提升分類器的預(yù)測(cè)性能。
通過(guò)在SVM分類模型的基礎(chǔ)上使用遺傳算法進(jìn)行特征選擇,提升了模型的性能,使得預(yù)測(cè)模型能夠更加有效地幫助污水廠提前發(fā)現(xiàn)問(wèn)題,保證出廠水質(zhì)達(dá)標(biāo)。實(shí)驗(yàn)結(jié)果表明,在對(duì)4項(xiàng)主要水質(zhì)指標(biāo)的預(yù)測(cè)上,正確率能達(dá)到76%以上,召回率能達(dá)到75%,較為可靠地為技術(shù)人員提供參考。但模型的召回率與精準(zhǔn)率還有提升空間,依然無(wú)法完全代替人工檢測(cè)的功能。這些都還有待進(jìn)一步研究。