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