張 瑩,謝仕義,鄧偉彬,彭發(fā)定,余昱昕, 張培珍
(廣東海洋大學(xué) a.數(shù)學(xué)與計(jì)算機(jī)學(xué)院;b.電子與信息工程學(xué)院,湛江 524088)
隨著我國(guó)經(jīng)濟(jì)社會(huì)的迅速發(fā)展和城市化進(jìn)程的不斷加快,水資源短缺、水體污染嚴(yán)重已成為制約經(jīng)濟(jì)社會(huì)可持續(xù)發(fā)展和人民生活水平提高的重要因素。《2017年中國(guó)海洋生態(tài)環(huán)境狀況公報(bào)》顯示,我國(guó)海洋生態(tài)環(huán)境狀況不容樂觀,近岸局部海域污染依然嚴(yán)重。全國(guó)417個(gè)監(jiān)測(cè)點(diǎn)位中,一類海水比例為34.5%;二類為33.3%;三類為10.1%;四類為6.5%;劣四類為15.6%,加強(qiáng)對(duì)所屬海域的環(huán)境監(jiān)測(cè)和保護(hù)工作迫在眉睫。
海洋水質(zhì)評(píng)價(jià)的內(nèi)容就是根據(jù)海水水體的主要物質(zhì)成分及其含量,分析各類水質(zhì)的時(shí)空分布狀況[1-2]。已有的評(píng)價(jià)方法主要有單因子指數(shù)法[3-4]、綜合指數(shù)法[4-6]、分級(jí)評(píng)價(jià)法[7-9]等,以及模糊理論、灰色系統(tǒng)理論、投影尋蹤及神經(jīng)網(wǎng)絡(luò)等方法[9-11]。相比這些傳統(tǒng)的統(tǒng)計(jì)學(xué)、模式識(shí)別領(lǐng)域的算法,大數(shù)據(jù)下的機(jī)器學(xué)習(xí)大大擴(kuò)充了樣本的數(shù)量,使很多問題的分類都有豐富的樣本作為支撐[12],能夠有效解決這種多維因子組成系統(tǒng)的評(píng)價(jià)問題。因此,本研究擬利用數(shù)據(jù)量豐富的樣本,選擇適當(dāng)?shù)挠糜诙嗵卣鞫喾诸悊栴}的機(jī)器學(xué)習(xí)算法,構(gòu)建適用于海水水質(zhì)的綜合評(píng)價(jià)理論模型。
按照GB3097-1997《國(guó)家海水水質(zhì)標(biāo)準(zhǔn)》[13](表1),建立40×104個(gè)站位組成,每個(gè)站位包含13個(gè)水質(zhì)指標(biāo)信息的理論假設(shè)樣本。
決策樹是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法,它易于實(shí)現(xiàn),高度可解釋,完全符合人類的直覺思維。簡(jiǎn)單地說(shuō),決策樹是二叉或多叉樹,它判斷數(shù)據(jù)的屬性并獲得分類或回歸結(jié)果[14]。決策樹是支持多類分類問題的判別模型。在預(yù)測(cè)中,某個(gè)屬性值(特征向量的某個(gè)組成部分)用于樹的內(nèi)部節(jié)點(diǎn),根據(jù)判斷結(jié)果確定要進(jìn)入哪個(gè)分支節(jié)點(diǎn),直到到達(dá)葉子節(jié)點(diǎn),并獲得分類或回歸結(jié)果。決策樹的這些規(guī)則是通過(guò)機(jī)器訓(xùn)練而不是人為獲得的。
表1 國(guó)家海水水質(zhì)標(biāo)準(zhǔn)
在訓(xùn)練時(shí),我們需要找到一個(gè)拆分規(guī)則,將訓(xùn)練樣本集分成兩個(gè)子集。通過(guò)一種衡量標(biāo)準(zhǔn),來(lái)計(jì)算通過(guò)不同特征進(jìn)行分支選擇后的分類情況,找出來(lái)最好的那個(gè)當(dāng)成根節(jié)點(diǎn),以此類推。對(duì)于分類問題,確保左右子樹的樣本在分裂后盡可能純,即它們的樣本盡可能接近某個(gè)類。為此,定義一個(gè)不純的指標(biāo):當(dāng)樣本屬于某一類時(shí),不純度為0;當(dāng)樣品均勻的屬于不同類時(shí),Gini不純度最大。
使用樣本集中每種類型樣本的概率值構(gòu)建雜質(zhì)指標(biāo)。因此,首先計(jì)算每個(gè)類的出現(xiàn)概率,設(shè)訓(xùn)練樣本集中總樣本數(shù)為N,其中第i類樣本數(shù)為Ni,則每個(gè)類的出現(xiàn)概率可表示為式(1)。
pi=Ni/Ni=1,2,…,n
(1)
樣本集的熵不純度[15]可表示為式(2)。
(2)
熵是表示隨機(jī)變量不確定性的度量。當(dāng)樣本僅屬于一個(gè)類時(shí),熵是最小的,當(dāng)樣本在所有類中均勻分布時(shí),熵是最大的。所以找到一個(gè)分裂讓熵最小,即為最佳分裂。
樣本集的Gini不純度[15]可表示為式(3)。
i=1,2,…,n
(3)
當(dāng)樣本屬于某一類時(shí),Gini不純度的值最小,最小值為0;當(dāng)樣品均勻分布時(shí)Gini不純度值最大。
樣本集的不純度[15]可表示為式4)。
E(D)=1-max(pi)i=1,2,…,n
(4)
以上定義的是樣本集的混亂程度。需要評(píng)估的是分裂的質(zhì)量,分割規(guī)則將節(jié)點(diǎn)的訓(xùn)練樣本集分成兩個(gè)左右子集。分裂目標(biāo)是將數(shù)據(jù)分成兩部分,兩個(gè)子集盡可能純。因此,計(jì)算左右子集的不純度之和為分裂的不純度。實(shí)際上,求和需要加權(quán)以反映兩側(cè)的訓(xùn)練樣本的數(shù)量。
設(shè)G(DL)是左子集的不純度NR,NL是左子集的樣本數(shù),G(Dn)是右子集的不純度,NR是右子集的樣本數(shù),N是樣本總數(shù),得到的分裂不純度計(jì)算公式為[16]式5)。
(5)
如果采用Gini不純度作為劃分標(biāo)準(zhǔn),代入式(5)得式(6)。
i=1,2,…,n
(6)
式(6)值越小,樣本越純。要查找最佳分割,需要在將樣本集拆分后計(jì)算此值,并在值為最小值時(shí)找到相應(yīng)的分割,這是最好的分裂。
2.1.2 貝葉斯
貝葉斯分類器是可以處理多分類問題的生成模型,并且是非線性模型。樸素貝葉斯分類器基于貝葉斯分類方法,數(shù)學(xué)基礎(chǔ)是貝葉斯定理,它描述了統(tǒng)計(jì)條件概率之間的關(guān)系。貝葉斯分類器的核心就是將樣本判定為后驗(yàn)概率最大的類[17]。
已知樣本的特征向量為x={a1,a2,…,an},類別標(biāo)簽為L(zhǎng)={y1,y2,…,yn},根據(jù)貝葉斯公式,樣本屬于每個(gè)類的條件概率(后驗(yàn)概率)為[18]式(7)。
i=1,2,…,m
(7)
對(duì)于所有的分類標(biāo)簽y1、y2、…、ym,其P(x)都是相同的,在比較P(yi|x),…,P(y4|x)的時(shí)候我們可以忽略P(x)這個(gè)參數(shù)。所以分類器的判別函數(shù)為式(8)。
argmaxyP(x|yi)P(yi)
(8)
對(duì)于給定的觀測(cè)數(shù)據(jù),一個(gè)猜測(cè)是好是壞 ,取決于“這個(gè)猜測(cè)本身獨(dú)立的可能性大小即先驗(yàn)概率”和“這個(gè)猜測(cè)生成我們觀測(cè)到的數(shù)據(jù)的可能性大小”。
假設(shè)樣本服從高斯分布,在訓(xùn)練期間確定先驗(yàn)概率分布的參數(shù),通常使用最大似然估計(jì),即最大化對(duì)數(shù)似然函數(shù)。
2.1.3 支持向量機(jī)
支持向量機(jī)(SVM)是非常強(qiáng)大和靈活的有監(jiān)督學(xué)習(xí)算法,可用于分類和回歸。SVM的目標(biāo)是通過(guò)使用分界線(2D空間中的線或曲線)或流形體(多維空間中的曲線,曲面等)來(lái)分離各種類型的數(shù)據(jù),得到的分類超平面不僅可以正確地對(duì)每個(gè)樣本進(jìn)行分類,并且還要使得每一類樣本中距離超平面最近的樣本到分類線的距離盡可能遠(yuǎn),支持向量機(jī)實(shí)際上是邊界最大化評(píng)估器[19]。
最大間隔和最佳超平面僅完全由落在邊界上的采樣點(diǎn)確定。這樣的采樣點(diǎn)稱為支持向量[20],其余的非支持向量采樣點(diǎn)對(duì)確定分類超平面無(wú)效,找到最優(yōu)超平面等同于確定支持向量,并且由支持向量確定的線性分類器稱為線性支持向量機(jī)。
設(shè)訓(xùn)練樣本的特征向量為xi,i=1、2、…、n,類別標(biāo)簽為y∈{+1,-1},則分類超平面方程[21]可表示為:
(w·x)+b=0
(9)
其中:w為權(quán)重向量;b為偏置項(xiàng),是一個(gè)標(biāo)量。為了能正確分類并且有一定間隔,要求分類超平面方程滿足以下約束:
yi[(w·xi)+b]≥1i=1,2,…,n
(10)
(11)
最后通過(guò)構(gòu)造拉格朗日子乘函數(shù)得到最優(yōu)分類函數(shù)為:
(12)
其中:sgn為符號(hào)函數(shù);αi、b為確定最優(yōu)劃分超平面的參數(shù);(xix)為兩個(gè)向量的點(diǎn)積。
創(chuàng)建一個(gè)簡(jiǎn)單的支持向量機(jī)線性分類器,如圖1所示。支持向量機(jī)的優(yōu)化目標(biāo)就是找到一條線,使得離該線最近的點(diǎn)能夠最遠(yuǎn),此外藍(lán)色標(biāo)記的點(diǎn)為擬合數(shù)據(jù)的關(guān)鍵支持點(diǎn),稱之為支持向量。分類器可以成功擬合的關(guān)鍵因素是這些支持向量的位置,遠(yuǎn)離邊界的數(shù)據(jù)點(diǎn)對(duì)分類器完全沒有影響。
對(duì)于線性不可分割的情況,支持向量機(jī)的主要思想是通過(guò)一個(gè)二元函數(shù)k(x,y)即核函數(shù)將特征向量映射到高維特征向量空間,并在特征空間中構(gòu)造最優(yōu)分類面,使得原來(lái)線性不可分的數(shù)據(jù)在映射之后變得線性可分。
使用核函數(shù)k后,非線性支持向量機(jī)分類器的最終分類決策函數(shù)為:
(13)
常用的核函數(shù)見表2。
圖1 支持向量機(jī)線性分類器
表2 常用核函數(shù)
除了選擇核函數(shù)外,非線性支持向量機(jī)模型還需要為參數(shù)C及gamma設(shè)置恰當(dāng)?shù)闹怠?shù)C越大則精度越高,反之則分類邊界線容錯(cuò)率更高,泛化能力很強(qiáng)。參數(shù)gamma是多項(xiàng)式核、徑向基函數(shù)核及sigmoid核的參數(shù)。參數(shù)對(duì)分類器的性能至關(guān)重要,為SVM獲取最優(yōu)的參數(shù)使非線性支持向量機(jī)模型能對(duì)數(shù)據(jù)有更好的擬合。
水質(zhì)評(píng)價(jià)問題中,G=4,分別代表四類水質(zhì);每類水質(zhì)100 000個(gè)樣本,即n1=n2=n3=n4=100 000,N=400 000,m=13。
3.1.1 數(shù)據(jù)讀取
將13個(gè)海水水質(zhì)評(píng)價(jià)指標(biāo)作為樣本特征x,將四種水質(zhì)類別作為分類標(biāo)簽y,最終機(jī)器學(xué)習(xí)是通過(guò)樣本特征x得出具體水質(zhì)分類y。
3.1.2 數(shù)據(jù)切分
先把數(shù)據(jù)集x、y按相同的隨機(jī)方式進(jìn)行洗牌,然后把數(shù)據(jù)集切分成訓(xùn)練集和測(cè)試集。訓(xùn)練集占80%共32×104個(gè)數(shù)據(jù),設(shè)x_train為訓(xùn)練集的特征屬性,y_train為訓(xùn)練集的分類標(biāo)簽;測(cè)試集占20%共8×104個(gè)數(shù)據(jù),設(shè)x_test為測(cè)試集的特征屬性,y_test為測(cè)試集的分類標(biāo)簽。
3.1.3 數(shù)據(jù)標(biāo)準(zhǔn)化
由于水質(zhì)指標(biāo)的量綱不相等,因此必須對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化以消除量綱影響, 將原始數(shù)據(jù)集x_train和x_test歸一化為均值為0、方差1的數(shù)據(jù)集,使得在最開始的時(shí)候,各個(gè)特征之間的重要程度的是一樣。標(biāo)準(zhǔn)化公式為式(14)。
(14)
其中:μ、σ分別為原始數(shù)據(jù)集的均值和方差。
3.1.4 機(jī)器學(xué)習(xí)模型
1)決策樹:通過(guò)預(yù)剪枝策略指定決策樹模型的最大葉子節(jié)點(diǎn)為13,以此避免決策樹過(guò)擬合,切分標(biāo)準(zhǔn)為熵不純度。構(gòu)建好模型就可以對(duì)x_train、y_train訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練。決策樹的每一個(gè)節(jié)點(diǎn)中都有分類特征的判斷,熵不純度entropy,樣本數(shù)量samples及分類的數(shù)據(jù)values。其中熵值為2.0,樣本數(shù)量為320 000,數(shù)據(jù)分為4類,對(duì)應(yīng)4類水質(zhì)??梢缘玫?jīng)Q策樹每一次進(jìn)行分裂后熵值必定會(huì)較上一層小,數(shù)據(jù)變得更純凈。
2)貝葉斯:構(gòu)建高斯樸素貝葉斯分類器。利用x_train、y_train訓(xùn)練集32×104個(gè)數(shù)據(jù)對(duì)高斯樸素貝葉斯分類器模型進(jìn)行訓(xùn)練。查看高斯樸素分類器的P(yn)有:P(y1)=0.24982813,P(y2)=0.24962813,P(y3)=0.25004668,P(y4)=0.25049688。
3)支持向量機(jī):此次數(shù)據(jù)分類為多特征多分類問題,而標(biāo)準(zhǔn)的支持向量機(jī)只支持二分類問題,因此,構(gòu)建使用徑向基函數(shù)核的非線性支持向量機(jī)模型來(lái)解決數(shù)據(jù)線性不可分問題。選擇最佳參數(shù)時(shí),需要確定的參數(shù)有懲罰參數(shù)C及函數(shù)核參數(shù)gamma。先設(shè)置好參數(shù)列表,通過(guò)網(wǎng)格搜索找出最佳參數(shù),如果最佳參數(shù)落在網(wǎng)格邊緣則繼續(xù)調(diào)整參數(shù)列表,直至最佳參數(shù)落在網(wǎng)格中間,使用最佳參數(shù)能使非線性支持向量機(jī)模型能對(duì)數(shù)據(jù)有更好的擬合。通過(guò)網(wǎng)格搜索得出的最佳參數(shù)為:C∶107 000,gamma∶0.001為SVM獲取最優(yōu)的參數(shù),使非線性支持向量機(jī)模型能對(duì)數(shù)據(jù)有更好地?cái)M合。
圖2 決策樹模型的混淆矩陣
圖3 高斯樸素貝葉斯模型的混淆矩陣
圖4 非線性支持向量機(jī)模型的混淆矩陣
3.1.5 評(píng)估模型準(zhǔn)確性
分別利用已訓(xùn)練好的決策樹模型,高斯樸素貝葉斯模型和非線性支持向量機(jī)模型對(duì)測(cè)試數(shù)據(jù)集的x_test進(jìn)行分類預(yù)測(cè)得出分類結(jié)果y_pred。然后用x_test及y_test測(cè)試數(shù)據(jù)集對(duì)該模型進(jìn)行精度評(píng)估,得出決策樹模型的精度為98.358 75%,高斯樸素貝葉斯模型的精度為99.295%,非線性支持向量機(jī)模型的精度為99.542 5%。
利用y_test和y_pred畫出混淆矩陣,圖2為決策樹模型混淆矩陣,圖3為高斯樸素貝葉斯模型混淆矩陣,圖4為非線性支持向量機(jī)模型混淆矩陣,X軸為預(yù)測(cè)值的水質(zhì)分類,Y軸為真實(shí)值的水質(zhì)分類??梢钥闯鰶Q策樹模型容易把第三類水質(zhì)分類成第二類和第四類。第四類水質(zhì)也較容易分類成第三類水質(zhì)。高斯樸素貝葉斯分類模型第四類水質(zhì)較容易分類成第三類水質(zhì)。非線性支持向量機(jī)模型效果最佳。
1)本研究基于大數(shù)據(jù)與機(jī)器學(xué)習(xí)理論,按照GB3097-1997《海水水質(zhì)標(biāo)準(zhǔn)》建立了一個(gè)由400 000站位水質(zhì)信息組成的理論假設(shè)大樣本,通過(guò)三種適用于多特征多分類問題的機(jī)器學(xué)習(xí)算法的應(yīng)用,構(gòu)建了適用于海水水質(zhì)的綜合評(píng)價(jià)理論模型。
2)適用于海洋水質(zhì)評(píng)價(jià)問題的決策樹算法,是通過(guò)預(yù)剪枝策略指定了決策樹模型的最大葉子節(jié)點(diǎn)數(shù)量,其切分標(biāo)準(zhǔn)為熵不純度。適用于海洋水質(zhì)評(píng)價(jià)問題的貝葉斯算法,選用了高斯樸素貝葉斯分類器模型。適用于海洋水質(zhì)評(píng)價(jià)問題的支持向量機(jī)算法,是使用徑向基函數(shù)核的非線性支持向量機(jī)模型。
3)通過(guò)8萬(wàn)個(gè)站位測(cè)試樣本的驗(yàn)證,決策樹模型的精度為98.358 75%,貝葉斯模型的精度為99.295%,支持向量機(jī)模型的精度為99.542 5%,均可作海洋水質(zhì)評(píng)價(jià)問題的有效方法,其中的支持向量機(jī)模型效果最好。