張明霞,趙桐鳴,王思沂
大連理工大學 船舶工程學院,遼寧 大連 116024
隨著信息化發(fā)展,利用大數(shù)據(jù)獲得有效信息并用于行業(yè)發(fā)展成為智能化時代的熱點之一。船舶設計過程涉及范圍廣、生命周期長,船型技術經(jīng)濟論證非常必要。在船型技術經(jīng)濟論證中選取母型船多依靠設計者的經(jīng)驗進行,主觀依賴性較強,無法充分搜尋到各方面參數(shù)及綜合性能最接近設計方案的母型船;另一方面大量實船數(shù)據(jù)未得到充分利用,浪費了有效數(shù)據(jù)資源。而將知識工程應用到母型船選型中是實現(xiàn)船舶設計智能化的有效途徑。
知識工程(knowledge engineering)是1977 年美國斯坦福大學的費根鮑姆提出的[1],以知識為對象,通過智能軟件建立專家系統(tǒng),將收集到的知識儲存在計算機中,模擬人類推理及搜索過程進行專業(yè)問題的智能化求解,其主要環(huán)節(jié)包括知識獲取、表示及推理?;诎咐评?case-based reasoning, CBR) 是Schank 等[2]于1979 年首次提出,是利用先前的案例和經(jīng)驗解決類似問題的方法。在船舶領域中, Turan 等[3]采用基于普通權重的最鄰近算法,提出了基于CBR 的決策支持系統(tǒng),并應用在干貨船和客運滾裝船設計中,能快速確定主尺度與船型;陳小雅[4]構建集裝箱船知識庫,使用基于層次分析法的最鄰近算法進行相似度計算,運用基于實例和規(guī)則推理的混合推理法對集裝箱船進行主尺度方案設計;黃本燊[5]基于CBR 將主觀因子法與熵值法結(jié)合對母型船進行相似度評估,為母型船選型提供了新方法。
隨機森林算法(random forest,RF)是由Breiman等[6]于2001 年提出的一種機器學習算法,多用于分類和預測。由于隨機森林算法在分類時可以衍生獲得特征屬性權重,因此可以應用在案例推理中。張華年[7]提出了隨機森林加權的最近鄰算法,構建了混合案例推理系統(tǒng),實現(xiàn)了應急預案智能化。在船舶領域中,Lee 等[8]使用決策樹、隨機森林等算法對船舶靠泊速度影響因素進行重要性分析,并使用混淆矩陣評價結(jié)果。本文將隨機森林算法應用到母型船選型中,以實現(xiàn)選型的智能化。
案例檢索是從案例庫中檢索出與目標案例最相似案例的過程,是基于案例推理系統(tǒng)中的關鍵環(huán)節(jié)。常用的檢索算法有知識引導法、神經(jīng)網(wǎng)絡法、歸納索引法和最近相鄰法[9]等。
知識引導法是根據(jù)知識決定特征屬性的重要度,結(jié)果隨知識變化而變化,通常與其他檢索方法結(jié)合使用;神經(jīng)網(wǎng)絡法是將目標案例的特征屬性輸入至構建的神經(jīng)網(wǎng)絡系統(tǒng),從各案例庫檢索出最相似的案例,速度較快,但確定參數(shù)的合理值缺乏有效方法且容易陷入局部最優(yōu);歸納索引法是根據(jù)最能將案例與其他案例區(qū)分開來的特征屬性對案例進行分類,并據(jù)此重新對案例劃分結(jié)構,一般與最近相鄰法結(jié)合使用[9]。
本文采用最常用的最近相鄰法進行案例檢索,根據(jù)特征屬性的權重進行分類并檢索最近鄰的方案作為母型船。檢索中一般認為各特征屬性對結(jié)果影響程度相同或設計者進行主觀賦權,這2 種方式均存在不足。本文采用更智能的隨機森林算法得到特征屬性權重。
K 最近鄰算法(K-nearest neighbor,KNN)是一種機器學習分類算法,即如果一個樣本在特征空間中的K個最相近的樣本中的大多數(shù)都屬于某一個類別,那么該樣本同樣屬于這個類別[10],K的取值對分類性能有重要影響,詳見3.4 節(jié)。此算法核心為待分類樣本與已有樣本之間距離的計算以及各特征屬性的權重賦值。目標方案和樣本間的距離越小,代表樣本與目標方案越接近,信息內(nèi)容相關程度越高。
計算樣本之間距離的常用公式有曼哈頓距離(Manhattan distance)、歐幾里得距離(Euclidean distance)、閔可夫斯基距離(Minkowski distance)及其對應的加權距離等。本文采用加權歐氏距離計算公式,具體為
式中:wi為第i個特征屬性對應的權重,由不同賦權算法計算得出;xi為目標方案x=(x1,x2,···,xn)的特征屬性;yi為已有樣本y=(y1,y2,···,yn)的特征屬性。
為了驗證隨機森林算法的有效性,下面將普通權重法、熵權法及層次分析法–熵權法的組合權重法也分別加以介紹,以便對不同特征權重方法結(jié)果進行比較。
2.2.1 普通權重法
假設特征屬性個數(shù)為n,普通KNN 算法假設各特征屬性對相似度影響程度相同,各特征屬性對應的權重值為1 /n,此方式忽視了特征屬性的重要度差異,不符合實際情況。
2.2.2 組合權重法
付磊[11]在江海直達寬扁船型方案設計系統(tǒng)中,使用主客觀組合賦權法確定權重。主觀賦權代表了設計人員對屬性的評價,常用方法有專家打分法、層次分析法等??陀^權重代表著數(shù)據(jù)本身對結(jié)果帶來的影響,常用方法有熵權法。這種方法比單一的賦權方法更具說服力,但仍需要人工參與,不能實現(xiàn)智能化自動化賦權。本文組合權重法中采用層次分析法計算主觀權重,熵權法計算客觀權重,二者加權求和得到組合權重。
1)層次分析法
首先對各特征屬性進行分析判斷,兩兩比較各屬性來判斷指標之間的相對重要度bij,構建權重判斷矩陣B=(bij)n×n;計算判斷矩陣的最大特征值λmax及其對應的特征向量 ξ;計算一致性指標Ic=(λmax-n)/(n-1),根據(jù)隨機一致性指標IR的數(shù)值計算一致性比率Rc=Ic/IR,當Rc<0.1 時,通過一致性檢驗,將 ξ作為特征屬性的主觀權重wsub。表1為1~10 階對應的平均隨機一致性指標數(shù)值表。
2)熵權法
計算第j項指標下第i個樣本值占該指標的比重其中i= 1,2,···,m且j=1,2,···,n;再計算第j項指標的熵值A=1/ln(m)>0;計算信息熵冗余度dj=1-ej,計算各項指標的權重作為特征屬性的客觀權重wobj=
3)組合權重法
對主客觀權重計算的權重結(jié)果進行加法組合加權,從而確定組合權重為
2.2.3 隨機森林算法
隨機森林算法(random forest,RF)是一種機器學習算法,準確率高、訓練速度快、抗干擾能力強。利用隨機森林進行特征重要性度量來確定特征屬性的權重是隨機森林算法的一個分支,本文使用基尼(Gini)指數(shù)計算基尼不純度從而對特征進行重要度排序,若通過某特征劃分后平均基尼指數(shù)減少的程度越大,即通過該特征劃分集合變純的程度越大,則可以認為該特征的分類能力越強,重要性越大[12]。Gini 指數(shù)代表樣本集合D中某隨機樣本被分錯的概率,計算公式為
式中:F為決策樹有F個類別,pf為集合D中隨機選中的樣本屬于類別f的概率。
樣本集合D根據(jù)特征A是否取某一可能值a被劃分為D1和D2兩部分,則在特征A的條件下,集合D的基尼指數(shù)為[13]
式中:|D|為集合D中的樣本數(shù),|D1|為集合D1的樣本數(shù),|D2|為集合D2的樣本數(shù)。
平均不純度減少的計算公式為
式中E為隨機森林中決策樹的個數(shù),Ginin(D)為第n棵決策樹Gini(D)劃分前集合D的基尼指數(shù),Gini(D,A) 為第n棵決策樹Gini(D)通過特征A劃分后集合D的基尼指數(shù)[13]。
使用不同的權重算法均能得到特征屬性權重,代回KNN 算法中檢索最近案例,但如何判斷各權重計算方法的優(yōu)劣,需要對算法模型的性能及檢索后的結(jié)果進行比較評估。
2.3.1 多分類問題的評價指標
最近鄰算法及隨機森林算法本質(zhì)是分類算法,可采用分類算法性能的評價指標來評價。假設有n個類別,將模型預測值與實際值進行對比后的結(jié)果有4 類,以類別2 為例:實際與預測均為類別2(真正類);實際為類別2 預測不為類別2(假負類);實際不為類別2 但預測為類別2(假正類);實際與預測均不為類別2(真負類)[14],見表2。
根據(jù)以上情況多分類的性能評價指標如下[14]:
1)準確率(accuracy,A):
表示分類模型中所有預測正確的樣本數(shù)量(包括真正類及真負類)占總樣本數(shù)量的比重,代表整體的預測準確程度。
2)宏觀精確率(macro precision,Pmacro)
表示所有被預測為正的樣本(包括真正類及假正類)數(shù)量中實際為正的樣本數(shù)量的比例,分別計算出每一類的精確率值,再取算數(shù)平均值。
3)宏觀召回率(macro recall,Rmacro)
表示實際為正(真正類及假負類)的樣本數(shù)量被判斷為正樣本(真正類)的比例,分別計算出每一類的召回率值,再取算數(shù)平均值。
4)宏觀f1分數(shù)(macrof1_score,f1_scoremacro)
由于精確率及召回率互相矛盾,因此定義f1分數(shù)為二者的加權調(diào)和平均,從而進行整體評價。將式(1)式(2)計算得到的值代入下式則可以宏觀f1分數(shù)指標值。
2.3.2 十折交叉驗證
調(diào)用機器學習算法模型需要輸入?yún)?shù),參數(shù)不同時訓練結(jié)果不同,需進行交叉驗證[14]評估算法模型的準確度,以選取最優(yōu)參數(shù)值。采用十折交叉驗證,將數(shù)據(jù)集平均分為10 份,選取其中1 份作為測試數(shù)據(jù),其余9 份作為訓練數(shù)據(jù),依次循環(huán)可得到數(shù)據(jù)集的平均準確率、平均宏觀f1分數(shù)兩個評價參數(shù),二者值越高,代表不同賦權方法及參數(shù)下的最近鄰算法分類性能更優(yōu)。
以油輪為例,收集到617 例實船數(shù)據(jù)(來自國際船舶網(wǎng)、中國船級社及論文),將其分類為VLCC、蘇伊士型、阿芙拉型、巴拿馬型、中型、靈便型和通用油輪,并用1~7 編號分別表示,按表3中的特征屬性將對應數(shù)據(jù)儲存在SQL Server2014數(shù)據(jù)庫中。
在KNN 算法計算樣本距離時,各特征屬性的單位不同、數(shù)量級不同,如果一個特征值域范圍非常大,那么距離計算主要取決于此特征,所以只考慮空間中坐標之間的距離可能會出現(xiàn)量級相差大的現(xiàn)象,因此本文采用Min-Max 標準化對數(shù)據(jù)進行預處理[15]。
式中x為某特征屬性的值,min(x)、 max(x)分別為不同方案中該特征屬性的最小值及最大值。
選取表4 中船長、垂線間長、型寬、型深、吃水、總噸、載重、航速、主機持續(xù)功率作為特征值,使用以下方法計算對應權重。
表4 標度值含義
3.3.1 普通權重
特征屬性對應的普通權重為
3.3.2 組合權重
1)層次分析法主觀權重
層次分析法采用1~9 標度方法,比較各特征屬性兩兩之間的重要度,并建立判斷矩陣。
式中每個標度值bij代表指標i比j的重要程度。
兩標度值的中間值為兩標度重要度的中間值。考慮主觀因素影響,構建3 個判斷矩陣計算3 個主觀權重,特征屬性的重要度排序一致為:載重>船長、垂線間長、型寬、型深、吃水>航速、主機持續(xù)功率>總噸,給各矩陣屬性的標度值賦予3 組不同的值,見表5,對應的判斷矩陣如B1、B2、B3。
利用Python 編程求得判斷矩陣對應的最大特征值λmax及其對應的特征向量 ξ。
一致性檢驗指標:
滿足一致性檢驗,所以主觀權重
2)熵權法客觀權重
根據(jù)2.2.2 中2),可以得到以下計算結(jié)果:
由信息熵確定各指標的客觀權重為
3)3 個判斷矩陣對應的主客觀組合權重分別為
3.3.3 隨機森林權重
1)隨機森林模型參數(shù)確定
調(diào)用Python 中Scikit-learn 庫的Randomforest Classifier 模塊,不需人工參與賦權過程,僅需要設定決策樹數(shù)量及隨機狀態(tài)2 個重要的參數(shù)。運用2.3.2 的十折交叉驗證研究這2 個參數(shù)隨機森林模型準確度的影響,選擇準確度最大時對應的參數(shù)值來進行調(diào)用。
①決策樹數(shù)量(n_estimators,ne):當決策樹數(shù)量較小時,隨機森林的分類回歸誤差大,性能也較差;當決策樹數(shù)量過大時,模型構建時間長,森林的規(guī)模達到一定程度會導致森林的可解釋性降低[16]。本文分析不同決策樹數(shù)量對隨機森林算法模型準確度的影響,見圖1。
當ne= 43 時,隨機森林模型的平均準確率及平均f1分數(shù)均最高。
②隨機狀態(tài)數(shù)值(random_state, SR):用來設置不同的隨機狀態(tài),一般取0~100 內(nèi)整數(shù)。在每次運行需要保證隨機狀態(tài)數(shù)值一致,以此保證構建模型、拆分結(jié)果相同,使結(jié)果可以重現(xiàn)。本文研究了隨機狀態(tài)數(shù)值對隨機森林模型準確度的影響,見表6。
可以看出,隨機狀態(tài)數(shù)值對準確度影響不大。綜上,使用 RandomForestClassifier (n_estimators =43,random_state = 0)命令來構建隨機森林模型。
2)隨機森林權重
根據(jù)模型獲得各特征的對應權重見下式。
為直觀展現(xiàn)權重大小,繪制出各權重算法不同特征的重要度柱形圖,見圖2。
圖2 特征重要度
以上4 種方法均能確定特征屬性權重,但如何保證結(jié)果的準確性,需要對算法結(jié)果進行評估來評判模型的優(yōu)劣。本文的K 近鄰算法模型的準確度取決于K值的選取(一般取1~20 的奇數(shù))及權重的賦值方法,采用平均準確率和平均宏觀f1分數(shù)2 個指標對其進行交叉驗證,獲得最近鄰算法模型的平均準確率和平均宏觀f1分數(shù)與K值的關系,如圖3。
圖3 K 取值對各KNN 算法準確度的影響
可以看出,不同加權的KNN 算法平均準確率和平均宏觀f1分數(shù)為最大值時對應的K值不同:普通權重及隨機森林,K=9;熵權法及組合權重,K=3。隨機森林加權KNN 算法的平均準確率及平均宏觀f1分數(shù)均比其他3 種高。將各算法的最大平均準確率及平均宏觀f1分數(shù)進行比較,見表7。
表7 不同K 值對應各算法的最大平均準確率及平均宏觀%
隨機森林加權KNN 算法最大平均準確率指標高出1%~2%,最大平均宏觀f1分數(shù)高出1%~6%,因此使用隨機森林加權KNN 算法進行案例檢索可行有效。
以巴拿馬型油輪為例,分別選擇各算法最大平均準確率及平均宏觀f1分數(shù)最大時對應的K值構建最近鄰模型進行檢索,目標方案及各算法檢索母型船特征值見表8。
表8 目標船型特征值
以上4 種方法中,基于隨機森林權重的最近鄰算法檢索出的方案的特征參數(shù)值與目標方案更為相似,進一步證明隨機森林加權KNN 算法在案例檢索的表現(xiàn)優(yōu)異。
通過研究,實現(xiàn)了基于數(shù)據(jù)庫船型資料的智能化檢索,具體結(jié)論如下:
1)傳統(tǒng)案例檢索通常由設計人員選取特征屬性并對其進行主觀賦值,而隨機森林算法基于數(shù)據(jù)根據(jù)重要度排序確定特征屬性權重,減少主觀影響。
2)隨機森林加權的最近鄰算法模型在分類算法有良好的表現(xiàn),相比較于使用普通權重、熵權及組合權重加權KNN 算法的最大平均準確率高出1%~2%,最大平均宏觀f1分數(shù)高出1%~6%,準確度更高,分類性能更優(yōu)。
3)基于隨機森林權重的最近鄰算法檢索出的方案的特征參數(shù)值與目標方案更相似,證明了隨機森林加權KNN 算法在案例檢索中的有效性。