陳冬 袁媛
摘 要:針對航運大數(shù)據(jù)應(yīng)用中船舶噸級數(shù)據(jù)難以獲取的情況,本文提出了一種基于K最近鄰(K-Nearest Neighbor,KNN)算法的船舶噸級判別模型。該模型考慮了船舶類型、船長、型寬、型深等參數(shù)的影響,以常年在江蘇沿江、沿海運行的船舶為例,選取1萬余條船舶數(shù)據(jù)進(jìn)行訓(xùn)練和驗證。結(jié)果表明,該模型在船舶噸級判別上具有較好的準(zhǔn)確性,能夠應(yīng)用于實際航運數(shù)據(jù)分析。
關(guān)鍵詞:船舶特征;判別模型;K近鄰
中圖分類號:U674.13? ? ? ? ?文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? 文章編號:1006—7973(2021)05-0104-02
1概述
船舶屬性數(shù)據(jù)是非常重要的基礎(chǔ)數(shù)據(jù),包括船舶身份(IMO、MMSI、船名)、船舶類型、船舶尺度(船舶長度、船舶型寬、船舶型深、滿載吃水)、船舶噸級(船舶總噸、船舶凈噸、船舶載重噸)等內(nèi)容。在航運大數(shù)據(jù)應(yīng)用中,船舶屬性信息與船舶動態(tài)信息相結(jié)合,能夠為航運各領(lǐng)域發(fā)展決策提供支撐,如將船舶屬性信息中的船舶噸級與船舶AIS數(shù)據(jù)相結(jié)合,能夠估算港口在某段時間內(nèi)的吞吐量。但在航運數(shù)據(jù)的實際應(yīng)用過程中,由于航運數(shù)據(jù)開放共享格局尚未形成,研究人員較難獲得全部船舶屬性數(shù)據(jù),尤其是船舶屬性數(shù)據(jù)中的船舶噸級信息,如AIS數(shù)據(jù)的船舶靜態(tài)信息僅僅包括船舶身份、船舶長度、船舶型深、船舶類型等內(nèi)容,缺少船舶噸級等內(nèi)容,使航運大數(shù)據(jù)的應(yīng)用缺少關(guān)鍵基礎(chǔ)數(shù)據(jù)支撐。
傳統(tǒng)的船舶噸級推算主要是利用船舶長度通過曲線估計來計算船舶噸位。傳統(tǒng)方法需針對不同的船型選擇不同的曲線(二次曲線、立方曲線、S曲線、冪函數(shù)等)進(jìn)行擬合,建模過程繁雜,使用較為不便[1]。針對船舶噸級信息難以獲得以及傳統(tǒng)估算方法使用不便的問題,本文探索了大數(shù)據(jù)機器學(xué)習(xí)方法,提出了基于KNN算法的船舶噸級判別模型。
2 KNN算法
2.1 KNN算法原理
KNN(K-Nearest Neighbor)算法即K最鄰近法,是機器學(xué)習(xí)算法中最常用的分類算法之一,KNN算法主要應(yīng)用領(lǐng)域是對未知事物的判別,即判別位置事物屬于哪一類[2-3]。
算法模型首先對給定的一個訓(xùn)練數(shù)據(jù)集T進(jìn)行訓(xùn)練。其中,xi為實例的特征向量,yi為實例的類別。
輸出過程中,根據(jù)給定的距離度量,在訓(xùn)練集T中找出與x最鄰近的k個點,涵蓋這k個點的x的鄰域為Nk(x);在Nk(x)中根據(jù)分類規(guī)則決定x的類別y。
KNN算法模型由距離度量、k值的選擇和分類決策規(guī)則決定。
2.2 KNN算法實現(xiàn)流程與評價指標(biāo)
相比傳統(tǒng)的依據(jù)船舶長度的曲線估計方法,本次基于KNN的船舶噸級判別模型選取了更多的特征向量并采用不同組合進(jìn)行建模,模型1選取“船舶總長、型寬、船舶類型”為特征向量,模型2選取“船舶總長、型寬、型深、船舶類型”為特征向量。算法的實現(xiàn)流程如圖1所示。
為驗證模型的可靠性,模型采用決定系數(shù)(R2)作為精度評價指標(biāo),R2代表目標(biāo)向量的變化中有多少能通過模型進(jìn)行解釋,具體計算公式為:
式中,是樣本i的真實值,是樣本的預(yù)測值,是目標(biāo)向量的平均值, R2得分越接近1,代表模型的性能越好。
3 船舶噸級判別模型
3.1 基礎(chǔ)數(shù)據(jù)
本文數(shù)據(jù)采用常年在江蘇沿江、沿海運行的約1.5萬艘船舶屬性數(shù)據(jù),數(shù)據(jù)內(nèi)容包括船名、MMSI號、IMO號、總長、型寬、型深、總噸、凈噸、載重噸、船籍港、經(jīng)營人等信息,具體數(shù)據(jù)示例如表1。
沿江、沿海運行的船舶種類較多,主要船舶種類包括散貨船、石油化學(xué)品船、雜貨船等。本次根據(jù)海港總體設(shè)計規(guī)范,以船舶載重噸計算了散貨船、雜貨船、石油化學(xué)品船、集裝箱船等貨運船舶的船舶噸級。船舶主要類型及等級分布如圖2所示。
3.2 特征數(shù)據(jù)處理
船舶屬性數(shù)據(jù)處理步驟包括:
(1)數(shù)據(jù)清理。對船舶類型、載重噸等關(guān)鍵屬性缺失以及船舶類型樣本較少的船舶數(shù)據(jù)進(jìn)行刪除處理,最終得到9490條船舶的屬性信息。
(2)數(shù)據(jù)特征量化。特征向量中的船舶類型和目標(biāo)向量中的船舶噸級為非數(shù)值類型,需將其量化為數(shù)值,以實現(xiàn)距離計算。
(3)數(shù)據(jù)抽樣。訓(xùn)練集與測試集按照9:1的比例進(jìn)行數(shù)據(jù)抽樣,最終得到8541條訓(xùn)練樣本和949條測試樣本。
3.3 模型參數(shù)標(biāo)定
KNN模型的預(yù)測效果依賴于不同鄰近數(shù)K值的選定,K值太大容易引起欠擬合,太小則容易過擬合。本文通過交叉驗證確定最優(yōu)k值,從圖3可以看出,K=3時,交叉驗證得分R2最高,為0.96,因此取K=3標(biāo)定本次船舶噸級判別模型。
3.4 模型預(yù)測結(jié)果分析
用上述建立的KNN船舶噸級判別模型對測試集進(jìn)行測試,從圖4對測試集的測試結(jié)果可以看出,兩種模型的預(yù)測值與真實值基本吻合,模型決定系數(shù)R2均大于0.9,準(zhǔn)確性較好,其中選用“船舶總長、型寬、船舶類型”作為特征向量的模型1具有更好的測試效果。
4分析與結(jié)論
KNN方法較為適合類域交叉的待分樣本集的類別判別,本文基于KNN算法,以船舶總長、型寬、型深、船舶類型為特征向量,創(chuàng)新性地提出了船舶噸級判別模型,計算的結(jié)果與實際情況基本吻合,具有較好的準(zhǔn)確性;同時,相比于傳統(tǒng)方法,本次提出的算法適用于不同尺度及類型的船舶噸級判別,應(yīng)用更為便捷,能夠更好地為航運大數(shù)據(jù)研究提供基礎(chǔ)數(shù)據(jù)支撐。
參考文獻(xiàn):
[1]朱連江.內(nèi)河船舶交通量換算系數(shù)研究[D].大連:大連海事大學(xué),2019.
[2]周志華.機器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
[3]霍豪,沈金星.基于KNN算法的公交到站時間預(yù)測[J].交通運輸工程與信息學(xué)報,2020,12(18):76-102.