周峙泓 沈 克 范培華
(上海外國(guó)語(yǔ)大學(xué) 國(guó)際工商管理學(xué)院,上海 200083)
RMS Titanic沉船事件是歷史上著名的災(zāi)難事件。1912年4月15日,泰坦尼克號(hào)從英國(guó)南安普敦出發(fā),途經(jīng)法國(guó)瑟堡-奧克特維爾以及愛(ài)爾蘭昆士敦,駛向美國(guó)紐約。其在此處女航中與冰山相撞后沉沒(méi),2224名乘客和機(jī)組人員中有1502人喪生,事發(fā)時(shí)正是泰坦尼克號(hào)從英國(guó)南安普敦港至美國(guó)紐約港首航的第5天。該船當(dāng)時(shí)是世界上最大的郵輪,1912年4月14日星期天23時(shí)40分與一座冰山擦撞前,已經(jīng)收到6次海冰警告,但當(dāng)瞭望員看到冰山時(shí),該船的行駛速度正接近最高速。由于無(wú)法快速轉(zhuǎn)向,該船右舷側(cè)面遭受了一次撞擊,部分船體出現(xiàn)縫隙,使16個(gè)水密隔艙中的5個(gè)進(jìn)水。泰坦尼克號(hào)的設(shè)計(jì)僅能夠承受4個(gè)水密隔艙進(jìn)水,因此沉沒(méi)。
通過(guò)分析幸存者名單,本文發(fā)現(xiàn),雖然最終幸存有一些運(yùn)氣因素,但是的確有一些人比其他人更有可能幸存,比如婦女、兒童和上層階級(jí)。是否從上船伊始,生死已定?所謂“運(yùn)氣”是否能夠在關(guān)鍵時(shí)刻決定生死?是否存在某些特征因素可預(yù)測(cè)或影響乘客的存活?
因此,本文通過(guò)建立LMT模型,運(yùn)用機(jī)器學(xué)習(xí)算法Weka和Python對(duì)泰坦尼克號(hào)的幸存者數(shù)據(jù)進(jìn)行特征工程分析,探究乘客特征因素對(duì)幸存率的影響,以期為后世沉船事件提供船舶安全管理實(shí)踐參考。
首先,通過(guò)定性分析對(duì)各屬性對(duì)預(yù)測(cè)變量的影響方向和程度進(jìn)行初步判定,避免由于對(duì)屬性的不了解造成對(duì)數(shù)據(jù)處理時(shí)的主觀臆斷;同時(shí)進(jìn)行初期特征工程,從難以處理的屬性(Name、Ticket、Cabin)著手,初步析出屬性并判定冗余變量,以便選擇算法后對(duì)數(shù)據(jù)進(jìn)行再次處理和調(diào)參。
隨后進(jìn)行定量分析,利用Pearson Correlation Heatma方法理清各屬性間的相關(guān)關(guān)系,生成特征相關(guān)圖,量化一個(gè)特征和另一個(gè)特征的相關(guān)程度,以進(jìn)行冗余變量的剔除工作。同時(shí),避免在模型融合的過(guò)程中,如將決策樹(shù)算法與Regression算法進(jìn)行融合,造成由于 multicollinearity導(dǎo)致的測(cè)試集準(zhǔn)確率低。
選擇Weka-Classifier-Trees算法——Random Forest、LMT、J48、REP Tree四種算法,比較優(yōu)劣。
基本思路:
(1)對(duì)數(shù)據(jù)進(jìn)行分類再處理(共分六個(gè)dataset,參考之前對(duì)屬性的定性及定量分析;分析辦法:控制變量法)。
train_1: 本著Simplicity First原則,刪去屬性Name和Ticket。
train_2: Name分類原則①:按性別及年齡混合信息 [Mr.(包含Master., Jonkheer.等其他前綴), Miss.(Mlle.), Mrs. (Ms., Mme.)], (0, 1, 2); Age:取整體Mean對(duì)缺失值進(jìn)行填充;Ticket:按length個(gè)數(shù)進(jìn)行賦值;Fare: (0, 1-10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-90, 90-100, 100-200, 200-300, 300-), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) 對(duì)處理過(guò)的人均票價(jià)再次進(jìn)行分段。
train_3: Age:分段處理(0-1, 1-9, 10-19, 20-29, 30-39, 40-49, 50-59, 60-69, 70-79, 80-89), (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),其余屬性處理方式同train_2,刪去Ticket,試析該屬性對(duì)模型擬合度影響;→結(jié)果:非常小,Remove屬性Ticket。該結(jié)果與定性分析設(shè)想基本一致,Ticket為冗余變量,其特征工程析出屬性基本涵蓋在Pclass(數(shù)字首位),Parch、SibSp(重復(fù)數(shù)值),Embarked(字母)中。
train_4: Cabin:(A, B, C, D, E, F, G, T), (1, 2, 3, 4, 5, 6, 7, 8)(不允許缺失值,將Cabin缺失值默認(rèn)設(shè)為0),其余屬性處理方式同train_3。
train_5: Name分類原則②:按性別及社會(huì)地位混合信息 [Sir.(Capt., Don., Major., Col., Sir.), Lady. (Dona., Lady., the Countess.)], (3,4,5) ;Cabin按有無(wú)數(shù)據(jù)分類,(String,null), (1, 0) ;其余屬性處理方式同train_3。
train_6: Name分類原則②,Age分段,Cabin分段;其余屬性處理方式同train_3。
(2)用相關(guān)算法對(duì)進(jìn)行特征分析后的數(shù)據(jù)進(jìn)行擬合
Titanic數(shù)據(jù)中共有兩個(gè)數(shù)據(jù)集——訓(xùn)練集和測(cè)試集,其中訓(xùn)練集共有12個(gè)屬性,891條樣例,測(cè)試集有11個(gè)屬性,418條樣例。表1給出屬性變量的介紹。
表1 屬性總覽
由于數(shù)據(jù)本身具有其含義,避免由于數(shù)據(jù)可能偶然的高度相關(guān)造成訓(xùn)練集擬合度高、測(cè)試集準(zhǔn)確性低,即模型未抓取重要特征造成預(yù)測(cè)結(jié)果的不準(zhǔn)確,分別對(duì)具體屬性進(jìn)行定性分析和定量分析。
(1)Pclass。案例中已經(jīng)將乘客的社會(huì)地位分為Upper、Middle、Lower三類,分別賦值為1、2、3。試分析屬性變量社會(huì)地位。1912年Titanic建造、下水、最終分崩離析究竟是在什么時(shí)代呢?20世紀(jì)初期,第二次工業(yè)革命進(jìn)行得如火如荼,資本主義經(jīng)濟(jì)高度發(fā)展,世界分工早已形成,社會(huì)拜金思想盛行,發(fā)展高度不平衡,貧富差距巨大。社會(huì)階層這一屬性,從金錢(qián)角度看,他們擁有更好的艙位(一等艙),在危機(jī)到來(lái)時(shí)能夠第一時(shí)刻預(yù)警逃生;從社會(huì)心理角度,逃難時(shí),更易獲得尊重的地位或者更能給出的利益可能會(huì)使得他們有更大的概率獲得救生艇,得以存活。因而,Pclass應(yīng)該和Survived高度相關(guān)。但需要注意的是,如需使用Linear Regression及其相關(guān)混合算法,應(yīng)注意Pclass和Ticket、Fare、Cabin的相關(guān)性,避免因多重共線性造成的模型不準(zhǔn)確。
(2)Name。從語(yǔ)言本身或詞源學(xué)角度而言,姓名包含極多信息,主要可以分為兩類。其一為性別和年齡的混合信息,通過(guò)前綴Mr.(男)、Mrs. (已婚女)、Miss.(未婚女),可以簡(jiǎn)單判定性別和粗略的年齡信息。當(dāng)樣例使用其他前綴(比如Rev.、Don.等),可以通過(guò)姓名單詞本身進(jìn)行查詢,男女姓名在英文語(yǔ)境中有明顯差異,可通過(guò)單詞本身判定其性別;女性在婚后會(huì)冠以夫姓,其family name(姓)為男名還是女名可以得出婚姻狀況,從而簡(jiǎn)單推斷出女性年齡。其二,通過(guò)Name中的前綴(prefix),可以劃分社會(huì)地位,prefix共有18類,具體信息如表2所示。
Name看似繁雜無(wú)從下手,實(shí)際根據(jù)prefix發(fā)現(xiàn)Name可以通過(guò)分類類別的信息增益方法來(lái)選取特征進(jìn)行擬合,此步驟為初步預(yù)處理。為避免因?yàn)閚ominal變量過(guò)多導(dǎo)致使用算法產(chǎn)生分支過(guò)多,產(chǎn)生過(guò)擬合和過(guò)多剪枝步驟(unpruned)或者反復(fù)調(diào)節(jié)minNumObj(葉子節(jié)點(diǎn)個(gè)數(shù)),將類似屬性合并。經(jīng)分類篩選,發(fā)現(xiàn)Name派生屬性可按照兩種分類方式,其一通過(guò)性別和年齡的混合信息如[Mr.(包含Master., Jonkheer.等其他前綴), Miss.(Mlle.), Mrs.( Ms., Mme.)], (0, 1, 2);其二通過(guò)社會(huì)地位和性別的混合信息如[Sir.(Capt., Don., Major., Col. ,Sir.), Lady.( Dona., Lady., the Countess.)], (3,4,5)。
表2 Name屬性詳解
(3)Sex。在時(shí)代背景和西方一貫秉持的“女士?jī)?yōu)先”原則下,存活率定性來(lái)看顯然與性別高度相關(guān),女性存活率應(yīng)當(dāng)顯著高于男性。
(4)Age。定性來(lái)看,由于先讓婦女和小孩逃生的觀念根植于西方傳統(tǒng),年齡較小的孩子相較于其他存活率應(yīng)較高,年齡較大的老人可能因?yàn)樾袆?dòng)不便、反應(yīng)問(wèn)題、運(yùn)動(dòng)能力、身體機(jī)能等原因難以存活。
(5)SibSp。同船(堂)兄妹及配偶個(gè)數(shù),由于事發(fā)時(shí)正值深夜,當(dāng)同船有(堂)兄妹或配偶時(shí),可以及時(shí)通知,互幫互助,一起逃生。但當(dāng)親屬個(gè)數(shù)過(guò)多時(shí),可能由于船艙位置距離、通知時(shí)間等顧此失彼,導(dǎo)致一起喪生,因而SibSp數(shù)值跟生存率有較大相關(guān)性,且開(kāi)始為正相關(guān),超過(guò)一定量時(shí)為顯著負(fù)相關(guān)。
(6)Parch。同船父母及孩子個(gè)數(shù),由于孩子在逃生中優(yōu)先,父母因?yàn)樾枰疹櫤⒆訒?huì)得到更多的幫助和救援。而與SibSp屬性類似,如個(gè)數(shù)過(guò)多,常常適得其反。但需要注意的是,由于是將父母和孩子的個(gè)數(shù)一起統(tǒng)計(jì),當(dāng)成年人帶著父母時(shí),由于需要照顧老年人,成年人可能存活率更低。因而,該屬性從定性方面對(duì)預(yù)測(cè)變量Survived的影響和其影響程度難以斷定。
(7)Ticket。船票編碼,String型變量,有全數(shù)值,也有字母和數(shù)字的組合集合。進(jìn)一步對(duì)數(shù)據(jù)分析發(fā)現(xiàn)約25%的數(shù)據(jù)有前綴,前綴共45種,其中由于“,”和“/”兩種字符導(dǎo)致結(jié)果看似復(fù)雜。簡(jiǎn)要列舉:SOTON/OQ,C.A.,非常明顯,以字母開(kāi)頭的船票記錄的是地點(diǎn),SOTON為Southampton英格蘭南安普頓(泰坦尼克號(hào)起航地),C.A.為California美國(guó)加利福尼亞州,綜合Embarked屬性信息和泰坦尼克號(hào)航線(從英國(guó)南安普敦出發(fā),途經(jīng)法國(guó)瑟堡-奧克特維爾以及愛(ài)爾蘭昆士敦,駛向美國(guó)紐約),字母簡(jiǎn)稱代表的地點(diǎn)應(yīng)為船票出售地,定性來(lái)說(shuō),跟預(yù)測(cè)變量Survived相關(guān)性不大。數(shù)字部分經(jīng)過(guò)查詢現(xiàn)存文獻(xiàn)和歷史背景信息,經(jīng)分析可知以1、2、3開(kāi)頭的大多為一、二、三等艙,4~9開(kāi)頭的大都為三等艙。
另外,值得注意的是,Ticket數(shù)字編碼中的部分?jǐn)?shù)據(jù)完全相同,應(yīng)為套票(如家庭票),通過(guò)統(tǒng)計(jì)分析可以了解家庭成員個(gè)數(shù)。由于析出屬性和Parch、SibSp高度一致,目前設(shè)想應(yīng)為冗余變量。但在做定量分析之前,先將Ticket按照首位數(shù)字進(jìn)行分類(1,2,3~9)賦值為(1,2,3)。
(8)Fare。票價(jià),票價(jià)越高,艙位會(huì)更好(一等艙),擁有更好的時(shí)機(jī)及時(shí)收到訊息,同時(shí)擁有更多的資源如救生艇,因而應(yīng)與預(yù)測(cè)變量Survived相關(guān)性高。但是需要注意的是,簡(jiǎn)單處理發(fā)現(xiàn)Fare屬性標(biāo)準(zhǔn)差(StdDev)很大,接近56,均值和最大值值差也很大。結(jié)合對(duì)Ticket數(shù)據(jù)的分析,部分船票編碼數(shù)字?jǐn)?shù)據(jù)有重復(fù),結(jié)合Parch、SibSp屬性和和票價(jià)船艙等級(jí),已知購(gòu)買(mǎi)的票為套票(如家庭票),因而需將團(tuán)體票的票價(jià)進(jìn)行數(shù)據(jù)處理,得到人均票價(jià),使得數(shù)據(jù)科學(xué)、合理。
(9)Cabin。數(shù)據(jù)為字母和數(shù)字的組合,圖1為艙位詳解。
圖1 Titanic 艙位圖
從艙位可以分析出Pclass信息。除此之外,由于當(dāng)災(zāi)難發(fā)生時(shí),冰山造成右舷船艏至船中部破裂,五間水密艙進(jìn)水。因而Cabin數(shù)據(jù)能展現(xiàn)的相對(duì)甲板的位置對(duì)預(yù)測(cè)變量Survived也非常重要。如靠近冰山撞擊漏水處生還率更低,或旁邊是配電室的房間,由于漏水導(dǎo)致漏電使得住在配電室周圍的乘客身亡,難以幸存。但是,Cabin缺失值687個(gè),缺失率高達(dá)77%,在應(yīng)用某些不允許有缺失值的算法時(shí)應(yīng)當(dāng)注意處理。
(10)Embarked。上船口岸,分別為Cherbourg、Queenstown、Southampton (C,Q,S),泰坦尼克的航線為從英國(guó)南安普敦S出發(fā),途經(jīng)法國(guó)瑟堡奧克特維爾C以及愛(ài)爾蘭昆士敦Q,駛向美國(guó)紐約。圖2為主要航線圖。
由于泰坦尼克從S出發(fā),途經(jīng)C地、Q地,人們有選擇下船的機(jī)會(huì),或者本身就不需要到終點(diǎn)站紐約,因而有很大的概率不經(jīng)歷海難;在C地,人們只能選擇在Q地下船,或是到紐約;在Q地上船的乘客必定經(jīng)歷海難,因而按照存活率從高到低排序應(yīng)為:S>C>Q。
圖2 Titanic 航線圖
總的概括一下數(shù)據(jù)特征,有缺失值、數(shù)據(jù)離散、部分屬性經(jīng)過(guò)特征工程處理可析出信息,直觀的想法是利用決策樹(shù)模型,尤其是Random Forest,可自動(dòng)填補(bǔ)缺失值,避免由于手動(dòng)填補(bǔ)造成數(shù)據(jù)噪聲大。為了更好地運(yùn)用多種算法比較優(yōu)劣,進(jìn)行皮爾孫相關(guān)熱圖(Pearson Correlation Heatma)分析,編程方式如下:將String數(shù)據(jù)類型轉(zhuǎn)化為float,處理變量Sex (male, female) (0,1); Name按照性別和年齡的混合信息分類 [Mr.(包含Master., Jonkheer.等其他前綴), Miss.(Mlle.), Mrs.( Ms., Mme.)], (0, 1, 2); Embarked:(S,C,Q) (0, 1,2)。
圖3 皮爾孫相關(guān)熱圖
從圖3皮爾孫相關(guān)熱圖中可看出沒(méi)有太多的特征高度相關(guān)。因此,該數(shù)據(jù)集中沒(méi)有太多冗余數(shù)據(jù),每個(gè)屬性都相對(duì)較為獨(dú)立,用給出的屬性特征訓(xùn)練模型使得模型更具有實(shí)踐意義。同時(shí),可以看到不同屬性對(duì)預(yù)測(cè)變量Survived的相關(guān)系數(shù),為進(jìn)一步選擇算法、處理數(shù)據(jù),創(chuàng)造了條件。
使用Seaborn,生成配對(duì)圖觀察特征的數(shù)據(jù)分布,發(fā)現(xiàn)屬性特征清晰,有利于模型擬合。
從該案例給出的數(shù)據(jù)出發(fā),數(shù)據(jù)有缺失。其中:Embarked缺失量為2,缺失比例為0.22%;Age缺失量為177,缺失比例為19.87%;Cabin缺失量為687,缺失比例為77.10%;Embarked缺失量少,對(duì)模型擬合度影響不大;Age可以通過(guò)進(jìn)一步分段求均值填補(bǔ)的方式手動(dòng)填補(bǔ);但是Cabin缺失量過(guò)多,人工填補(bǔ)可能造成數(shù)據(jù)噪聲大。因此,優(yōu)先考慮適合離散型變量的Random Forest,可自動(dòng)填補(bǔ)缺失值。但是為了比較算法優(yōu)劣,在應(yīng)用其他需補(bǔ)齊缺失值的算法時(shí),將Cabin缺失值默認(rèn)為0。
測(cè)試基線精確度(baseline accuracy)即ZeroR最大可能性分類,準(zhǔn)確率(Correctly Classified Instances)為61.62%。從準(zhǔn)確率百分比來(lái)看,挑選的四種算法顯然表現(xiàn)不錯(cuò)(遠(yuǎn)高于基線精確度)。其中,綜合決策樹(shù)和Logistic的LMT表現(xiàn)相比其他算法好,準(zhǔn)確率在6次擬合中相比其他三種算法都處于較高的位置;Random Forest由于較為適合案例數(shù)據(jù),對(duì)缺失值處理較好,也有著不錯(cuò)的表現(xiàn)。簡(jiǎn)單來(lái)說(shuō),LMT六次擬合準(zhǔn)確率均值最高為81.78,且標(biāo)準(zhǔn)差較小,為0.94。
考慮到過(guò)擬合問(wèn)題,當(dāng)訓(xùn)練模型準(zhǔn)確率很高時(shí),可能由于過(guò)擬合使得模型未抓住特征屬性分析,導(dǎo)致測(cè)試集準(zhǔn)確率低。根據(jù)Learning Curve判定模型所在狀態(tài),選取train_3嘗試調(diào)節(jié)參數(shù)debug、minNumInstances,調(diào)節(jié)葉子節(jié)點(diǎn)樣例個(gè)數(shù),發(fā)現(xiàn)調(diào)節(jié)參數(shù)時(shí)準(zhǔn)確率普遍在82.72%左右,在默認(rèn)值為15時(shí),LMT模型達(dá)到準(zhǔn)確率最優(yōu)值83.28%。
圖4 LMT模型可視化展示
綜合Kappa值為0.6354,MCC=0.641,ROC Area=0.864,PRC Area=0.858,該模型擬合度較好,Supplied Test Set得到準(zhǔn)確率為85.65%。
通過(guò)Weka一級(jí)模型訓(xùn)練,選用dataset train_3.、LMT算法,如圖4所示,模型擬合度最優(yōu)?;跀?shù)據(jù)分析結(jié)果,分析得出:乘客在泰坦尼克海難中的幸存率與屬性Name、Sex、Pclass、Age、SibSp、Parch、Fare、Cabin、Embarked高度相關(guān)??偟膩?lái)說(shuō),身份為貴族,且船艙遠(yuǎn)離船體漏水位置,登船地點(diǎn)在Southampton的一等艙女性和小孩更容易成為幸存者,而這些因素實(shí)際上都是乘船者的客觀因素。
表3 算法的優(yōu)度比較
本文以泰坦尼克幸存者數(shù)據(jù)作為樣本,構(gòu)建了LMT模型,從定性和定量?jī)蓚€(gè)方面分析了乘客屬性對(duì)幸存可能性的影響。研究發(fā)現(xiàn)乘客在泰坦尼克海難中的幸存率與屬性Name、Sex、Pclass、Age、SibSp、Parch、Fare、Cabin、Embarked高度相關(guān)。模型擬合的準(zhǔn)確率達(dá)到85.65%。換言之,基于LMT模型,如果該模型擬合度越低,船舶安全管理的可靠性應(yīng)該越高,因?yàn)楣芾碜鳛榭勺円蛩貙?duì)幸存率造成了可觀的影響。本研究對(duì)于海難等類似案例和目前船舶安全管理有一定參考意義。在未來(lái)的研究中,可以加入客觀環(huán)境和管理情境,進(jìn)一步探究影響海難事件中影響幸存率的因素。