陳曉曼, 蘇 歡
(哈爾濱工業(yè)大學(xué)(威海) 理學(xué)院, 山東 威海 264209)
海況是海洋與大氣、海洋與海冰之間耦合的關(guān)鍵組成部分,對海上的運輸、生產(chǎn)和海洋資源的開發(fā)使用等有著至關(guān)重要的作用[1,2].研究者們[3-6]通常使用有效波高作為海洋活動中海況的使用指標(biāo),而海況對于船舶的影響往往是多種海況參數(shù)非線性耦合的結(jié)果.Dodet等[7]表示在未來的研究中,多源數(shù)據(jù)的使用將為復(fù)雜現(xiàn)象提供更加完整的描述.海況數(shù)據(jù)用戶在研究和工程應(yīng)用中仍然主要依賴于數(shù)值波浪模型[8],為了能夠更加合理且高質(zhì)量地使用海況數(shù)據(jù),考慮利用機器學(xué)習(xí)方法對海況參數(shù)進行聚類,從而得到更加全面可靠的結(jié)果.
目前國內(nèi)外有一些研究通過數(shù)據(jù)挖掘?qū)r參數(shù)進行聚類和智能識別從而實現(xiàn)航速優(yōu)化[9-11].王壯[12]利用KMeans算法對海況數(shù)據(jù)進行聚類,智能地根據(jù)不同海況采用最佳經(jīng)濟航速,實驗結(jié)果表明該方法能夠有效地實現(xiàn)航速優(yōu)化.然而KMeans聚類算法對于高維非線性數(shù)據(jù)的聚類效果并不理想,故而對于實現(xiàn)海況參數(shù)聚類的方法也還有待改進.
在眾多的聚類算法中KMeans[13]聚類算法應(yīng)用最為廣泛,自組織映射(Self-organizing Mapping,SOM)神經(jīng)網(wǎng)絡(luò)算法是全局排序的且被認為對于任意數(shù)據(jù)具有魯棒性[14].為克服KMeans算法難以處理復(fù)雜數(shù)據(jù)的不足,有學(xué)者提出利用核方法將數(shù)據(jù)嵌入高維流形,將歐氏距離替換成非線性核距離來衡量相似度[15-17].因此本文基于KMeans、SOM神經(jīng)網(wǎng)絡(luò)算法、核技巧,構(gòu)建了自組織映射混合核KMeans(SOM-Gaussian and Polynomial Kernel-KMeans,SGPK-Kmeans)算法.針對單核KMeans無法全面準確地反映數(shù)據(jù)內(nèi)在聯(lián)系的問題,將高斯核函數(shù)與多項式核函數(shù)進行線性組合,得到兼顧學(xué)習(xí)能力和泛化能力的混合核KMeans來更合理的描述數(shù)據(jù)的內(nèi)部聯(lián)系從而提升聚類效果;由SOM神經(jīng)網(wǎng)絡(luò)算法確定混合核KMeans的初始聚類中心以及聚類數(shù)目,可以有效避免隨機選擇初始聚類中心導(dǎo)致的聚類效果不穩(wěn)定以及易陷入局部最優(yōu)的問題.
本文構(gòu)建了SGPK-KMeans聚類算法,使用夏威夷群島北部的浮標(biāo),以1小時為分辨率選取從2021年1月到12月的數(shù)據(jù)共8 588組進行海況參數(shù)的聚類分析,并綜合考慮SC(Silhouette Coefficient)分數(shù)、CH(Calinski Harabaz)分數(shù)以及DBI(Davies Bouldin Index)指數(shù)對聚類的效果進行評估.實驗表明,使用SGPK-KMeans算法對數(shù)據(jù)進行聚類所得到的聚類評估效果最好,從而本文構(gòu)建的算法可以為海況的智能識別、航速優(yōu)化提供更加全面準確的聚類結(jié)果,也可以為其他受海況影響的應(yīng)用提供更加可靠的海況聚類結(jié)果.
KMeans是一種基于劃分的聚類算法,旨在最小化數(shù)據(jù)點和聚類中心之間的平均平方距離[18].該聚類方法的思想可以歸結(jié)為對樣本集合X={x1,x2,…,xn}的劃分,xi(i=1,2,…,n)表示數(shù)據(jù)集中第i個樣本數(shù)據(jù).通常使用歐氏距離作為距離度量.但該方法在復(fù)雜和未知形狀組織的數(shù)據(jù)中表現(xiàn)得并不理想[19].KMeans通過最小化損失函數(shù):
(1)
定義1[20]設(shè)χ是輸入空間,H是特征空間,若存在映射φ(y):χ→H使得對于任意y,z,∈χ,函數(shù)κ(y,z)滿足κ(y,z)=φ(y)·φ(z),則稱κ(y,z)為核函數(shù),φ(y)為映射函數(shù),式中·表示內(nèi)積運算.
定義2[21]令χ為輸入空間,κ(·,·)是定義在χ×χ上的對稱函數(shù),若κ是核函數(shù),對于任意數(shù)據(jù)x=(x1,x2,…,xm),稱矩陣:
為核矩陣.由文獻[20]知,只要一個對稱函數(shù)對應(yīng)的核矩陣半正定,該函數(shù)就可以作為核函數(shù)使用.常用的核函數(shù)有多項式核函數(shù):
κ(y,z)=(βy·z+γ)p
(2)
高斯核函數(shù):
(3)
定理1假設(shè)κ1,κ2是核函數(shù),λ∈(0,1),那么λκ1+(1-λκ2)也是核函數(shù).
證明:由κ1,κ2均為核函數(shù),知κ1,κ2均為對稱函數(shù)且生成的核矩陣K1,K2半正定,則
κ(xi,xj)=λκ1(xi,xj)+(1-λ)κ2(xi,xj)=λκ1(xj,xi)+(1-λ)κ2(xj,xi)=κ(xj,xi)
即κ(xi,xj)是對稱函數(shù),下證該對稱函數(shù)對應(yīng)的矩陣K半正定.
由于K=λK1+(1-λ)K2,其中K1,K2半正定且λ∈(0,1),故對稱函數(shù)κ對應(yīng)的矩陣K半正定,從而由定理知該函數(shù)是核函數(shù).
若核函數(shù)選取不當(dāng),會將輸入空間映射到不恰當(dāng)?shù)奶卣骺臻g使得聚類效果不佳.高斯核函數(shù)學(xué)習(xí)能力較強泛化能力較弱;多項式核函數(shù)學(xué)習(xí)能力較弱泛化能力較強.基于此,考慮將高斯核函數(shù)與多項式核函數(shù)相結(jié)合,使用這兩種核函數(shù)的線性組合生成新的核函數(shù)構(gòu)造核矩陣,能夠同時保證算法的學(xué)習(xí)能力和泛化能力,從而提升聚類效果.本文構(gòu)造的核函數(shù)為:
(4)
式(4)中:λ∈(0,1).
SOM神經(jīng)網(wǎng)絡(luò)算法是芬蘭的Kohonen教授[22]提出的一種由全連接的神經(jīng)元列陣組成的神經(jīng)網(wǎng)絡(luò)理論,神經(jīng)網(wǎng)絡(luò)的輸入層和競爭層之間通過權(quán)重向量實現(xiàn)全連接.能夠根據(jù)輸入空間中數(shù)據(jù)集的概率分布密度形成與此概率密度相對應(yīng)的輸出的分布關(guān)系[23].在學(xué)習(xí)過程中,競爭層的神經(jīng)元節(jié)點通過相互的側(cè)向交互作用競爭成為與輸入神經(jīng)元節(jié)點最相似的那個節(jié)點,相似度最高的節(jié)點為獲勝神經(jīng)元.獲勝神經(jīng)元會根據(jù)權(quán)重調(diào)整公式進行更新調(diào)整,周圍的神經(jīng)元也會受到其影響調(diào)整權(quán)重,故而SOM神經(jīng)網(wǎng)絡(luò)算法在實現(xiàn)聚類的同時保持了輸入空間的拓撲結(jié)構(gòu).SOM神經(jīng)網(wǎng)絡(luò)通過大量神經(jīng)元同時作用,容錯性好、魯棒性強,但是網(wǎng)絡(luò)結(jié)構(gòu)比較固定,可能會出現(xiàn)“死神經(jīng)元”.SOM神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示.
圖1 SOM神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖
KMeans聚類算法能夠很好的確定線性聚類邊界,但當(dāng)簇間的邊界為非線性的復(fù)雜形狀時,該聚類算法不能很好地發(fā)揮作用.因此,引入非線性變換,將數(shù)據(jù)集映射到高維特征空間,在高維特征空間利用KMeans聚類,便能得到更好的聚類結(jié)果.通過核函數(shù),隱式地實現(xiàn)了從低維到高維的映射,巧妙地避開了非線性映射φ的顯式選取.核KMeans算法以核距離:
(5)
取代原本的歐氏距離,其中xi,xj是輸入的第i,j個樣本數(shù)據(jù),κ(·,·)是核函數(shù).相應(yīng)的要求解的最優(yōu)化問題轉(zhuǎn)換為:
(6)
其中φ是非線性映射,滿足:
κ(xi,xj)=<φ(xi),φ(xj)>.
(7)
核KMeans算法克服了KMeans算法只能處理超球形數(shù)據(jù)的不足,但是該算法仍然需要事先確定聚類數(shù)目且對于初始聚類中心十分敏感,隨機選取的初始聚類中心有可能使得KMeans算法陷入局部最優(yōu).
將SOM神經(jīng)網(wǎng)絡(luò)算法引入核KMeans,由SOM神經(jīng)網(wǎng)絡(luò)算法確定初始聚類中心和k值,從而克服核KMeans不能確定聚類數(shù)目和初始聚類中心選取不當(dāng)?shù)牟蛔?對于k值的確定,綜合考慮了三種聚類內(nèi)部評價指標(biāo):SC分數(shù)、CH分數(shù)以及DBI指數(shù).
SC分數(shù)為:
(8)
式(8)中:a(i)表示向量i到它所屬簇中所有其他點的距離的均值,b(i)表示向量i到它不屬于的簇中所有點的平均距離的最小值,聚類結(jié)果總的SC分數(shù)是將所有點的SC分數(shù)求平均.由公式可知當(dāng)SC分數(shù)越接近1說明聚類效果越好.
CH分數(shù)為:
(9)
式(9)中:h為簇的數(shù)目,N為輸入空間中樣本的個數(shù),Bh為簇間色散矩陣,Wh為簇內(nèi)色散矩陣,Bh,Wh公式如下:
(10)
式(10)中:Cl為簇l中點集,nl為簇l中的點數(shù),cl為簇l的中心,c為E的中心,x為cl中的數(shù)據(jù).由公式可知若簇內(nèi)數(shù)據(jù)的協(xié)方差越小,簇間的協(xié)方差越大,則CH分數(shù)越大,說明聚類效果好.即聚類結(jié)果中同類別的樣本距離近,不同類別的樣本之間距離遠.
DBI指數(shù)為:
(11)
SGPK-KMeans算法具體實現(xiàn)如下:
(1)對于輸入空間數(shù)據(jù)X={x1,x2,…,xn}使用SOM神經(jīng)網(wǎng)絡(luò)算法,依據(jù)肘部法綜合考慮三種聚類評價內(nèi)部指標(biāo):SC分數(shù)、CH分數(shù)以及DBI指數(shù)確定聚類數(shù)目和初始聚類中心.
(2)根據(jù)第(1)步得到的結(jié)果,初始化核KMeans算法的聚類數(shù)目h及初始聚類中心c1,c2,…,ch.
(4)將xj,j=1,2,…,n劃分到與之距離最小的聚類心所屬的類別中,計算每一個類別中所有數(shù)據(jù)點的均值作為新的聚類中心,不斷更新聚類中心及每個類.
SGPK-KMeans算法實現(xiàn)流程如圖2所示.
圖2 SGPK-KMeans聚類流程圖
為了實現(xiàn)海況的聚類并驗證提出算法的有效性,本文采取來自美國國家資料浮標(biāo)中心的夏威夷群島北部地理位置(23.528 N,153.792 W)的浮標(biāo)從2021年1月到2021年12月共8 588組數(shù)據(jù)(以1小時為時間分辨率)進行聚類(部分數(shù)據(jù)如表1所示).該數(shù)據(jù)集有八個特征,分別為:風(fēng)向、風(fēng)速、波高、陣風(fēng)、大氣壓力、空氣溫度、水溫、露點溫度.由于特征量綱不同,在進行聚類前需要先對數(shù)據(jù)進行無量綱化,本文采用的無量綱化處理是Z-Score標(biāo)準化.具體過程通過Python實現(xiàn).
表1 部分實驗數(shù)據(jù)
利用SOM神經(jīng)網(wǎng)絡(luò)算法,綜合考慮CH分數(shù)、SC分數(shù)以及DBI指數(shù),得到聚類數(shù)目以及聚類中心,其中聚類數(shù)目確定為12.三種評估指標(biāo)部分結(jié)果如表2所示,折線圖如圖3、圖4所示.
表2 SOM算法得到的部分評估指標(biāo)結(jié)果
圖3 CH分數(shù)評估指標(biāo)結(jié)果
圖4 SC分數(shù)及DBI指標(biāo)評估結(jié)果折線圖
根據(jù)確定聚類數(shù)目的拐點檢測原理,本文利用機器學(xué)習(xí)中投票法的思想認為當(dāng)兩個指標(biāo)同時達到拐點且第三個指標(biāo)值處于所有該值的均值以上水平時,選擇此時的k值作為聚類數(shù)目,相應(yīng)的聚類中心為初始聚類中心.由表2及圖3、4知,CH分數(shù)、DBI指數(shù)在k取12時達到拐點且SC分數(shù)的值高于所有SC分數(shù)的均值,故可確定聚類數(shù)目為12.
分別利用傳統(tǒng)KMeans算法、高斯核KMeans算法、多項式核KMeans算法、混合核KMeans算法以及SGPK-KMeans算法進行聚類,并將五種方法以及SOM神經(jīng)網(wǎng)絡(luò)得到聚類結(jié)果的SC分數(shù)、CH分數(shù)以及DBI指數(shù)進行對比.其中由于KMeans和混合核KMeans初始聚類中心是隨機選取的,為避免偶然性,取七次評估平均值作為最終評估結(jié)果.表3是七次KMeans聚類評估結(jié)果,表4是七次高斯核聚類評估結(jié)果,表5是七次多項式核聚類評估結(jié)果,表6是混合核KMeans七次聚類評估結(jié)果,表7是6種不同聚類算法三個評估指標(biāo)的比較結(jié)果,表8、表9分別是使用KMeans算法和SGPK-KMeans算法得到的各聚類類別數(shù)目.
由表7可知,對于本文所用數(shù)據(jù),高斯核KMeans聚類效果差于經(jīng)典的KMeans算法和SOM神經(jīng)網(wǎng)絡(luò)算法,說明樣本被映射到了不合適的特征空間.多項式核KMeans比經(jīng)典KMeans聚類算法和SOM神經(jīng)網(wǎng)絡(luò)算法以及高斯核KMeans相比都有了很大改善,說明多項式核函數(shù)映射得到的特征空間是合理的,能夠提升聚類效果.兼顧了學(xué)習(xí)能力和泛化能力的混合核KMeans的CH分數(shù)相比于多項式核函數(shù)提升了1.56%,DBI指數(shù)效果改善了6.02%,SC分數(shù)沒有提升但相差很小,說明該核函數(shù)的設(shè)計是合理的,聚類效果有所提升.本文提出的SGPK-KMeans的聚類效果是這六種方法中最好的,三種指標(biāo)均優(yōu)于前五種方法,其中CH分數(shù)比傳統(tǒng)KMeans方法提升了一倍左右,比經(jīng)典SOM神經(jīng)網(wǎng)絡(luò)算法提升了1.57%,比混合核KMeans提升了0.53%;SC分數(shù)比傳統(tǒng)KMeans提升了8.09%,比經(jīng)典SOM神經(jīng)網(wǎng)絡(luò)算法提升了17.19%,比混合核KMeans提升了5.03%;DBI指數(shù)比傳統(tǒng)KMeans改善了9.92%,比經(jīng)典SOM神經(jīng)網(wǎng)絡(luò)算法改善了2.68%,比混合核KMeans改善了2.79%,因此本文提出的方法是有效且合理的.
表3 KMeans七次聚類評估結(jié)果
表4 高斯核KMeans七次聚類評估結(jié)果
表5 多項式核KMeans七次聚類評估結(jié)果
表6 混合核KMeans七次聚類評估結(jié)果
表7 6種算法聚類評估指標(biāo)對比
表8 KMeans得到的各類別樣本數(shù)目
表9 SGPK-KMeans得到的各類別樣本數(shù)目
由表8、表9分別得到了使用KMeans和SGPK-KMeans聚類得到的每個類別樣本的數(shù)目,通過觀察表9發(fā)現(xiàn)其中類別1、類別2、類別3以及類別9的樣本數(shù)目較少,返回到原數(shù)據(jù)發(fā)現(xiàn)類別1中數(shù)據(jù)空氣溫度特征和露點溫度特征數(shù)據(jù)存在異常;類別2中數(shù)據(jù)的三個特征:風(fēng)速、風(fēng)向、陣風(fēng)存在異常;類別3中波高特征數(shù)據(jù)存在異常;類別9中水溫特征數(shù)據(jù)存在異常,其余類別中數(shù)據(jù)均無異常.對比KMeans聚類得到的結(jié)果,發(fā)現(xiàn)KMeans算法不能有效的識別出異常值,聚類效果要差于SGPK-KMeans.一方面,這說明了SGPK-KMeans聚類的有效性以及準確性,能夠?qū)⒛骋粋€特征或者某幾個特征有異常的數(shù)據(jù)聚在一起;另一方面,也為海況的識別提供了更多的背景情況.因此聚類得到的12個類別中有4類相當(dāng)于對有異常值的數(shù)據(jù)進行了聚類,其余的8類為正常數(shù)據(jù)的海況聚類結(jié)果,即利用海洋的風(fēng)速、波高等數(shù)據(jù),應(yīng)用本文提出的聚類方法,將海況分成了8類.
結(jié)合以上的實驗和分析可以得出結(jié)論:SGPK-KMeans算法在聚類效果和異常值檢測方面可以得到更加優(yōu)化的結(jié)果,能夠有效的應(yīng)用于海況數(shù)據(jù)的聚類中,滿足實際應(yīng)用的需要.
本文構(gòu)造的SGPK-KMeans算法的聚類性能確實優(yōu)于高斯核KMeans以及多項式核KMeans且顯著優(yōu)于傳統(tǒng)KMeans聚類算法以及經(jīng)典SOM神經(jīng)網(wǎng)絡(luò)算法.SGPK-KMeans算法對于海況數(shù)據(jù)的聚類結(jié)果更加穩(wěn)定,而且還能有效的識別出數(shù)據(jù)中的異常值.應(yīng)用所提聚類方法于海況聚類中,利用海面數(shù)據(jù),將無異常值的真實海況聚成了8類,可以為海況的智能識別、異常值檢測以及航速優(yōu)化等提供更加全面準確的聚類效果.