陳宇皓
摘要:近日,馬航MH370搜救小組正式解散的新聞引起了軒然大波,很多人感嘆現(xiàn)在交通救援的發(fā)展遠(yuǎn)遠(yuǎn)不及交通運(yùn)輸?shù)臓顩r是非常不合理的。在互聯(lián)網(wǎng)時(shí)代下大數(shù)據(jù)興起人工智能急速發(fā)展的浪潮里,通過(guò)對(duì)大數(shù)據(jù)的分析更好的預(yù)測(cè)不同類(lèi)型乘客的生還率以協(xié)助實(shí)施救援,成為非常有效的方法。在對(duì)數(shù)據(jù)處理的各種算法進(jìn)行學(xué)習(xí)的時(shí)候運(yùn)用創(chuàng)新思維,以泰坦尼克號(hào)的有效數(shù)據(jù)為例,選擇KNN(k-NearestNeighbor)模型和邏輯回歸(Logistic Regression)模型,結(jié)合數(shù)據(jù)預(yù)處理、可視化分析等方法,對(duì)船只失事時(shí)乘客的生還率進(jìn)行預(yù)測(cè),同時(shí)對(duì)比兩種模型的優(yōu)劣,希望對(duì)上述方面有實(shí)質(zhì)性的意義。
關(guān)鍵詞:KNN;邏輯回歸;海上災(zāi)難
中圖分類(lèi)號(hào):F24文獻(xiàn)標(biāo)識(shí)碼:Adoi:10.19311/j.cnki.1672-3198.2019.16.038
1引言
1.1選題背景
海上搜救是指政府、專(zhuān)業(yè)部門(mén)及志愿者針對(duì)海上事故等做出的搜尋、救援等工作,海上搜救僅靠個(gè)人的力量是遠(yuǎn)遠(yuǎn)不夠的,需要全方位的技術(shù)支持。提前求援一分鐘可能就能夠少一分危險(xiǎn),挽救更多人的、奄奄一息的生命。海上搜救不可知因素較多和經(jīng)驗(yàn)也比較少,因此其難度非常大,政府也一直致力于探索海上搜救如何能及時(shí)判斷不同類(lèi)型乘客的存活率,從而第一時(shí)間找到最適合救援方案。漫無(wú)目的的搜救效率較低,準(zhǔn)確的根據(jù)乘客特征預(yù)測(cè)其生還的概率可以提高搜救的效率。
本文以泰坦尼克號(hào)乘員的數(shù)據(jù)為例,結(jié)合KNN與邏輯回歸兩種模型進(jìn)行探索,希望可以給海上搜救中對(duì)遇難者生還概率的判定一定的輔助作用。
1.2研究綜述
海上搜救的不可知因素非常多,其難度非常大,并需要較強(qiáng)的技術(shù)系統(tǒng)等支持,因此,對(duì)海難搜救效率的提升、快速準(zhǔn)確的判斷乘客生還率非常重要。海難時(shí)的天氣、地理位置等影響因素都會(huì)導(dǎo)致簡(jiǎn)單的模型無(wú)法準(zhǔn)確預(yù)測(cè),因此需要構(gòu)建更復(fù)雜更嚴(yán)格的模型來(lái)進(jìn)行相關(guān)的預(yù)測(cè)。研究界目前對(duì)海上遇難情況中不同類(lèi)型的乘客的生還率預(yù)測(cè)有多種方法,如SVM支持向量機(jī)模型、邏輯回歸模型、卷積神經(jīng)網(wǎng)絡(luò)、前饋神經(jīng)網(wǎng)絡(luò)等等模型,接下來(lái)對(duì)本文所用的模型等進(jìn)行簡(jiǎn)單的介紹。
1.3本文簡(jiǎn)介
本文所獲取的泰坦尼克號(hào)船只相關(guān)數(shù)據(jù)集來(lái)自AI領(lǐng)域非常知名的比賽網(wǎng)站Kaggle,通過(guò)對(duì)數(shù)據(jù)的可視化分析等找出影響乘客生還的主要因素,對(duì)比KNN與邏輯回歸兩個(gè)模型的優(yōu)勢(shì)與劣勢(shì),結(jié)合集成學(xué)習(xí)的方法進(jìn)行實(shí)驗(yàn)。試驗(yàn)的過(guò)程中通過(guò)多次觀(guān)察發(fā)現(xiàn)不同的數(shù)據(jù)預(yù)處理對(duì)實(shí)驗(yàn)結(jié)果的影響較大,因此,本文首先針對(duì)數(shù)據(jù)預(yù)處理進(jìn)行了比較詳細(xì)的介紹。實(shí)驗(yàn)過(guò)程中,使用交叉驗(yàn)證的方法避免過(guò)擬合現(xiàn)象的發(fā)生,并通過(guò)集成學(xué)習(xí)的方法進(jìn)一步提高精度。
2數(shù)據(jù)預(yù)處理
2.1介紹數(shù)據(jù)與數(shù)據(jù)預(yù)處理
數(shù)據(jù)(data)是對(duì)客觀(guān)事物的性質(zhì)、狀態(tài)及相互關(guān)系等進(jìn)行觀(guān)察并邏輯歸納的一種物理符號(hào),是一個(gè)抽象的概念。數(shù)據(jù)“屬性”是指數(shù)據(jù)所具有的各種維度的性質(zhì),維度過(guò)大的數(shù)據(jù)中常包含一些與預(yù)測(cè)結(jié)果無(wú)關(guān)的屬性,此時(shí)便需要通過(guò)各種各樣的數(shù)據(jù)降維處理方法進(jìn)行降維篩選。數(shù)據(jù)屬性也和其他屬性一樣有其對(duì)應(yīng)的描述單位,我們平時(shí)所說(shuō)的電腦容量,手機(jī)內(nèi)存等等都是如此。
實(shí)驗(yàn)中的數(shù)據(jù)通常來(lái)自現(xiàn)實(shí)生活,所以得到的數(shù)據(jù)往往比較雜亂,雜亂的數(shù)據(jù)并不是信息,只有加工后且有一定意義的數(shù)據(jù)才可以成為信息。大量的原始數(shù)據(jù)中有缺失、冗余、錯(cuò)亂等瑕疵數(shù)據(jù),數(shù)據(jù)缺失是指某些重要的數(shù)據(jù)不完整造成對(duì)整體結(jié)果的影響,數(shù)據(jù)冗余是指數(shù)據(jù)中存在不相關(guān)的干擾因素,需要?jiǎng)h除。因此,在實(shí)驗(yàn)代入算法之前,需要對(duì)數(shù)據(jù)進(jìn)行一些預(yù)處理。
2.2數(shù)據(jù)預(yù)處理的方式
數(shù)據(jù)預(yù)處理形式包括多項(xiàng),常見(jiàn)的例如:數(shù)據(jù)清理,數(shù)據(jù)集成與變換,數(shù)據(jù)歸約,數(shù)據(jù)離散化及概念分層等,除了這些常規(guī)的處理,還有其他可能數(shù)據(jù)預(yù)處理的形式,如數(shù)據(jù)的壓縮存儲(chǔ),包括有損壓縮與無(wú)損壓縮,基于項(xiàng)目的實(shí)際意義對(duì)數(shù)據(jù)內(nèi)容篩選等。本文僅詳細(xì)介紹數(shù)據(jù)清理,數(shù)據(jù)集成與數(shù)據(jù)變換。
2.2.1數(shù)據(jù)清理
實(shí)驗(yàn)中的數(shù)據(jù)通常來(lái)自現(xiàn)實(shí)生活的積累,所以得到的數(shù)據(jù)往往比較雜亂,無(wú)法直接帶入算法計(jì)算,數(shù)據(jù)清理便是為了解決這個(gè)問(wèn)題。數(shù)據(jù)的清理包括識(shí)別并消除“噪音”,填充遺漏的值,將數(shù)據(jù)中的不一致更改為一致等過(guò)程,在實(shí)驗(yàn)中可根據(jù)情況選擇其中幾個(gè)過(guò)程。
計(jì)算機(jī)無(wú)法處理為NULL的遺漏值,因此處理遺漏值常采用的措施有兩類(lèi),忽略和補(bǔ)全。忽略即當(dāng)此元組缺失屬性較多時(shí)忽略整個(gè)元組,或此屬性樣本缺失過(guò)多時(shí)可忽略此屬性;補(bǔ)全即通過(guò)某種方法將此遺漏補(bǔ)全,常見(jiàn)的方法是根據(jù)現(xiàn)有數(shù)據(jù)的情況用均值等填充某個(gè)遺漏值。
“噪音”的本意是指音量過(guò)強(qiáng)而危害人體健康,或引起人煩躁的聲音,對(duì)于數(shù)據(jù)而言,“噪音”是指獲取數(shù)據(jù)時(shí)出現(xiàn)的隨機(jī)錯(cuò)誤或偏差,例如測(cè)量偏差等。去除“噪音”有以下方法:數(shù)據(jù)分箱是指將數(shù)據(jù)按照一定規(guī)則分布到一些“箱”中,用周?chē)噜彽闹祦?lái)平滑箱中的值。數(shù)值聚類(lèi)是根據(jù)規(guī)則將近似的值聚集成某種有中心的形狀的“類(lèi)”,落在這個(gè)“類(lèi)”集合之外的值通??杀灰暈椤霸胍簟??;貧w分析是現(xiàn)在常用的一種方法,回歸分析的原理是擬合出一個(gè)可以表達(dá)數(shù)據(jù)之間關(guān)系的函數(shù),然后找出離群點(diǎn)。例如最簡(jiǎn)單的線(xiàn)性回歸,即擬合出能表達(dá)兩個(gè)變量之間關(guān)系的直線(xiàn),通過(guò)一個(gè)變量預(yù)測(cè)另一個(gè)變量(y=kx+b),如圖1所示,離直線(xiàn)過(guò)遠(yuǎn)的點(diǎn)即為離群點(diǎn)。
2.2.2數(shù)據(jù)集成
數(shù)據(jù)集成是指根據(jù)數(shù)據(jù)相關(guān)性將不同數(shù)據(jù)統(tǒng)一起來(lái)。
顯然,數(shù)據(jù)集成中最核心的概念是數(shù)據(jù)的相關(guān)性。數(shù)據(jù)相關(guān)性分為強(qiáng)正(負(fù))相關(guān)、弱正(負(fù))相關(guān)、非線(xiàn)性相關(guān)和不相關(guān)。其中,強(qiáng)正相關(guān)是指同進(jìn)退,共同增加或共同減少,強(qiáng)負(fù)相關(guān)是指你進(jìn)我退,強(qiáng)正(負(fù))相關(guān)均互相變化影響明顯,說(shuō)明A是B的主要影響因素;弱正(負(fù))相關(guān)與強(qiáng)正(負(fù))相關(guān)類(lèi)似,但是指變化不明顯,即A是B的影響因素,但不是唯一因素;非線(xiàn)性相關(guān)是指A是B只有一定的關(guān)系,并不是重要的影響因素;不相關(guān)顧名思義即兩者無(wú)關(guān)。
2.2.3數(shù)據(jù)變換
顧名思義數(shù)據(jù)變換即在不失真的情況下對(duì)數(shù)據(jù)的格式、粒度等進(jìn)行一定的調(diào)整。常見(jiàn)的數(shù)據(jù)變換有數(shù)據(jù)規(guī)范化,數(shù)據(jù)泛化,屬性構(gòu)造等。
數(shù)據(jù)規(guī)范化是指為了計(jì)算方便、保持不同類(lèi)型屬性權(quán)重一致等目的將數(shù)據(jù)映射到更合理的大小范圍內(nèi),需保持大小關(guān)系不變。常見(jiàn)的規(guī)范化有最小-最大規(guī)范化等。
數(shù)據(jù)泛化是將數(shù)據(jù)集從較低的概念層抽象到較高的概念層的過(guò)程。例如,在本項(xiàng)目中,我們需要乘客的年齡,卻不需要非常詳細(xì)的出生年月日,這時(shí)可將原有的“出生年月日”屬性抽象為“年齡”屬性,甚至“年齡層”屬性。泛化需要遵循一定的規(guī)則,即當(dāng)屬性存在大量不同值,且屬性值無(wú)法概念分層時(shí),此屬性刪除,例如“姓名”;當(dāng)屬性存在大量不同值,且屬性值可以概念分層,則將屬性值概念分層,例如“出生日期”;當(dāng)屬性存在少量不同值時(shí),可保留原屬性,例如“船艙登記”屬性;當(dāng)屬性不存在不同值時(shí),此屬性對(duì)預(yù)測(cè)結(jié)果無(wú)意義,可刪除。
3模型引入
3.1K近鄰(KNN)模型
鄰近算法,或者說(shuō)K值最近鄰分類(lèi)算法(KNN,k-Nearest Neighbor)是數(shù)據(jù)挖掘分類(lèi)技術(shù)中最常見(jiàn)的算法之一。其實(shí)質(zhì)是每個(gè)樣本都可用它最接近的K鄰居來(lái)代表,這倒也應(yīng)了那句古話(huà),“物以類(lèi)聚、人以群分”,其實(shí)在數(shù)學(xué)上的許多方法就是運(yùn)用了類(lèi)似思想。由于KNN方法的核心思想主要依靠需預(yù)測(cè)值周?chē)邢薜泥徑臉颖?,而不是靠判別需預(yù)測(cè)值類(lèi)域的方法來(lái)確定所屬類(lèi)別,因此,對(duì)于類(lèi)域的重疊較多的樣本集來(lái)說(shuō),KNN方法更為適合。
K值最近鄰分類(lèi)算法(KNN,k-Nearest Neighbor)的核心思想是在特征空間中,如果一個(gè)樣本在的K個(gè)距離最近的樣本中的大部分樣本屬于某個(gè)類(lèi)別,則該樣本也屬于此類(lèi)別。根據(jù)此思想我們可以知道,“距離”是KNN中最重要的概念。常見(jiàn)的距離計(jì)算方式有歐氏距離、曼哈頓距離等,歐氏距離在二維空間中即為高中所學(xué)的兩點(diǎn)間距離公式,三維空間中加上z軸距離差進(jìn)行計(jì)算。
二維空間公式為:
三維空間公式為:
其中ρ為點(diǎn)x2,y2 與x1,y1 之間的歐氏距離,X 為點(diǎn)x2,y2到原點(diǎn)的歐式距離。
我們要解決的問(wèn)題中,訓(xùn)練樣本包括600個(gè)乘客的特征數(shù)據(jù)。對(duì)于測(cè)試集的300個(gè)數(shù)據(jù),計(jì)算每一個(gè)乘客與訓(xùn)練集中600個(gè)乘客的距離遠(yuǎn)近,從中選出距離最近的K個(gè)樣本,K個(gè)樣本中所屬類(lèi)別最多的類(lèi)別即測(cè)試樣本的類(lèi)別。
在實(shí)驗(yàn)中,采用sklearn機(jī)器學(xué)習(xí)庫(kù)中KNN模型算法,嘗試了不同的k取值,觀(guān)察其在該問(wèn)題上的正確率。測(cè)試的結(jié)果顯示,當(dāng)k=16時(shí),測(cè)試集的正確率最高,在87.8%左右,還存在優(yōu)化的空間。本實(shí)驗(yàn)的訓(xùn)練集僅為600個(gè)樣本,當(dāng)上百萬(wàn)訓(xùn)練樣本時(shí),KNN算法的局限性就較明顯,每預(yù)測(cè)一個(gè)新的樣本,都需要計(jì)算該樣本與上百萬(wàn)樣本的距離,運(yùn)行速度緩慢且效率低下,這時(shí)需要選用其他更合適的分類(lèi)模型。
3.2邏輯回歸(Logistic Regression)模型
3.2.1邏輯回歸的思想來(lái)源
在高中數(shù)學(xué)中,我們都學(xué)過(guò)給定兩個(gè)點(diǎn)的坐標(biāo),求得兩點(diǎn)之間直線(xiàn)的坐標(biāo),“回歸分析”則是用直線(xiàn)來(lái)擬合多個(gè)點(diǎn)的大概走勢(shì)。在一個(gè)坐標(biāo)系中,分布著許許多多的點(diǎn),我們用一條直線(xiàn)去盡可能的串聯(lián)起所有點(diǎn),再運(yùn)用此函數(shù)圖像對(duì)需要預(yù)測(cè)的數(shù)據(jù)進(jìn)行預(yù)測(cè)。
在了解邏輯回歸之前,我們先談?wù)勈裁词歉怕省8怕?,又稱(chēng)或然率、機(jī)率或可能性,是對(duì)隨機(jī)事件發(fā)生可能性的一種度量,通常用一個(gè)在0到1之間的實(shí)數(shù)表示事件發(fā)生可能性的大小。概率,簡(jiǎn)而言之,就是描述一件事情發(fā)生的可能性。比如隨機(jī)擲骰子,那么得到任意一個(gè)點(diǎn)數(shù)的概率是1/6。一件事情的概率,可能性的取值在[0,1]之間。邏輯回歸(Logistic Regression)是機(jī)器學(xué)習(xí)中一個(gè)經(jīng)典的分類(lèi)模型,為什么之前提到概率知識(shí)呢?因?yàn)檫壿嫽貧w模型就是預(yù)測(cè)一件事情發(fā)生的概率可能性。比如預(yù)測(cè)乘客存活的概率是08,0.7等等。
舉個(gè)例子,對(duì)于一個(gè)分類(lèi)問(wèn)題,如果想實(shí)現(xiàn)我們的分類(lèi)要求,只需要在特征空間里找到一個(gè)“超平面”,即可將兩種類(lèi)別給區(qū)分開(kāi)來(lái)。這個(gè)超平面也稱(chēng)之為決策邊界。比如考試成績(jī),60分就是一個(gè)臨界值,可以看作為一個(gè)決策邊界,所有大于60分的判為及格,所有小于60分的判為不及格。邏輯回歸,就是幫助我們找到這樣一條“超平面”,能夠?qū)⒉煌念?lèi)型正確的劃分開(kāi)來(lái)。如把存活的乘客和未存活的乘客劃分開(kāi)。
邏輯回歸基本原理是采用sigmoid函數(shù)作為預(yù)測(cè)函數(shù),來(lái)預(yù)測(cè)條件概率。在本實(shí)驗(yàn)中,sigmoid函數(shù)的輸出就是乘客存活下來(lái)的概率,在訓(xùn)練模型的過(guò)程中,通過(guò)最小化極大似然代價(jià)函數(shù),來(lái)不斷的提高準(zhǔn)確率。
3.2.2邏輯回歸的假設(shè)函數(shù)
假設(shè)函數(shù)(Hypothesis Representation)的構(gòu)造方法以多變量線(xiàn)性回歸問(wèn)題為基礎(chǔ),其計(jì)算方法為綜合考慮多個(gè)變量得到其線(xiàn)性組合。而對(duì)于二分類(lèi)問(wèn)題,假設(shè)函數(shù)的取值應(yīng)該滿(mǎn)足 0 ≤ h(θ)≤ 1,因此采用非線(xiàn)性函數(shù) Sigmoid 函數(shù)(SigmoidFunction)來(lái)將任意范圍內(nèi)的值規(guī)范化到 [0,1]區(qū)間內(nèi)。邏輯回歸方法的假設(shè)函如下式:
g(z) = 1/(1+e-z)
我們的模型在訓(xùn)練集上的準(zhǔn)確率達(dá)到了79.8%,在測(cè)試集上達(dá)到了81.7%的正確率,取得了良好的性能。邏輯回歸的優(yōu)點(diǎn)是在于簡(jiǎn)單,訓(xùn)練速度相對(duì)于KNN模型快很多。但是其適合用于線(xiàn)性可分的問(wèn)題當(dāng)中,而對(duì)于一些線(xiàn)性不可分的問(wèn)題中,采用更復(fù)雜的SVM模型可能會(huì)取得更好的效果。
3.3集成學(xué)習(xí)簡(jiǎn)介
集成學(xué)習(xí)被認(rèn)為是各種各樣的單一學(xué)習(xí)的有機(jī)統(tǒng)一學(xué)習(xí)模型,從而獲得更準(zhǔn)確、穩(wěn)定和強(qiáng)壯的結(jié)果。近年來(lái),各種各樣的集成學(xué)習(xí)模型相繼被提出并運(yùn)用于各種類(lèi)型的大數(shù)據(jù)運(yùn)算中。為了進(jìn)行更加全面更加有效的預(yù)測(cè),我們需要把不同方面的單一學(xué)習(xí)結(jié)合起來(lái),全局進(jìn)行分析問(wèn)題。在上文我們已經(jīng)通過(guò)KNN算法與回歸模型已經(jīng)建立起了簡(jiǎn)單的單一學(xué)習(xí)。但為進(jìn)行更加全面更加有效的預(yù)測(cè),我們就需要把從不同方面的來(lái)的單一學(xué)習(xí)結(jié)合起來(lái),全局進(jìn)地分析問(wèn)題。本項(xiàng)目選擇Bagging策略來(lái)進(jìn)行準(zhǔn)確率的提升。
4結(jié)語(yǔ)
本文以泰坦尼克號(hào)乘員的數(shù)據(jù)為例,結(jié)合KNN與邏輯回歸兩種模型進(jìn)行探索,對(duì)比兩種模型在該問(wèn)題上的優(yōu)缺點(diǎn)。
KNN算法的優(yōu)點(diǎn)是精度高,對(duì)異常值不敏感。但是缺點(diǎn)是對(duì)k的取值相對(duì)比較敏感,不同的k取值對(duì)模型產(chǎn)生的結(jié)果可能差異性非常的明顯。邏輯回歸的優(yōu)點(diǎn)是在于簡(jiǎn)單,訓(xùn)練速度相對(duì)于KNN模型快很多。但是其一般更適合用于線(xiàn)性可分的問(wèn)題當(dāng)中,而對(duì)于一些線(xiàn)性不可分的問(wèn)題中,采用更復(fù)雜的非線(xiàn)性模型可能會(huì)取得更好的效果。
參考文獻(xiàn)
[1]楊麗華,戴齊,郭艷軍.KNN文本分類(lèi)算法研究[J].微計(jì)算機(jī)信息,2006,22(21):269-270.
[2]李卓冉.邏輯回歸方法原理與應(yīng)用[J].中國(guó)戰(zhàn)略新興產(chǎn)業(yè),2017,(28):114-115.
[3]范玉妹,郭春靜.支持向量機(jī)算法的研究及其實(shí)現(xiàn)[J].河北工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,27(04):106-112.