撒宇航
摘 要:在機器學習中,有兩大類常見的問題,一類為回歸問題,另外一類為分類問題。對于回歸問題的解決,常見的方法有線性回歸,隨機森林等。而針對分類問題,有kNN,logsitic,SVM,神經網絡等算法。不同的算法在不同的問題中具有不同的效果。因此,本研究通過具體的實例“泰坦尼克號乘客遇難預測”,通過運用機器學習中的不同分類模型來分析乘客的存活是運氣原因,還是存在一定的規律性。通過該對問題的研究,比較了不同機器學習分類模型的差異性以及優缺點。
關鍵詞:遇難乘客預測;kNN;SVM;邏輯回歸;神經網絡
泰坦尼克號的沉沒是歷史上具有廣泛影響的沉船事件之一,1912年4月15日,在首次航行期間,泰坦尼克號撞上冰山后沉沒,2224名乘客和機組人員中有1502人遇難。這場轟動的悲劇震撼了國際社會。雖然幸存下來的人存在一些運氣方面的因素,但有一些人比其他人更有可能生存,比如婦女,兒童和上層階級。我們的目標便是根據每位乘客的性別,年齡,艙位等相關特征,來預測該乘客是否會在該次乘船事故中存活下來。訓練集以及測試集,我們總共有900名左右的乘客數據,每位乘客包括10個特征,包括Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarke。我們將拿出600名乘客數據作為我們的訓練集,剩余的300名乘客的數據,用來作為我們的測試集,用于檢驗訓練出的模型的性能。
一、分類模型構建
(一) kNN模型
(1) kNN模型原理。kNN(k Nearest Neighbor)算法,又叫作k領近算法,是機器學習中一種常見的分類算法之一。其中的k表示待測樣本最近的k個鄰居。在1968年,Cover和Hart提出了kNN算法,這是一個在理論上比較成熟的方法[1]。
kNN算法的訓練過程是將所有的訓練集映射在特征空間中,測試過程將待測試樣本,計算每個樣本與訓練集樣本的歐氏距離,然后對所有距離進行排序,從中挑選出最近的k個樣本,在k個樣本中,采用基本投票原則,票數最多的類別作為待測樣本的類別。
在我們的泰坦尼克號問題中,訓練集一共含有600名乘客的特征數據,將它們映射到特征空間當中。測試階段,我們將測試集的300個乘客數據,分別計算與600名乘客的歐幾里得距離,從中挑選出最近的k個距離后,采用投票原則,將票數最多的類別作為待測樣本的類別。
(2) 結果分析。我們調用了sklearn中集成的kNN模型,在訓練集上進行了訓練,并且嘗試了不同的k取值,在該問題上的正確率。我們分別測試了當k 取5,10,15,20時模型的結果。測試的結果顯示,在上述4種k的取值下,在測試集上的正確率分別為79.3%,81.7%,83.1%,82.4%。由此可見,在泰坦尼克號這個問題上,當k取值在15左右時,模型的結果較好。
關于kNN模型中k值的不同選擇:當k值較小時,預測結果對近鄰的實例點非常敏感,容易發生過擬合;如果k值過大模型會傾向大類,容易欠擬合;通常k是不大于20的整數。kNN算法的優點是精度高,對異常值不敏感。但是缺點是對k的取值相對比較敏感,不同的k取值對模型產生的結果可能差異性非常的明顯。
另一方面,由于我們的訓練集的大小僅僅為600個樣本,而對于其他的一些機器學習應用,我們的數據集可能十分巨大,特征維數也會十分巨大,會造成kNN算法的運行速度緩慢,因為每預測一個樣本,就要計算該樣本與訓練集中的所有的樣本距離,還要對所有距離進行排序,這會大大提高算法運行的時間,降低kNN算法的效率,所以一般kNN算法只適用于數據集比較小的情況。
(二)邏輯回歸模型
(1) 邏輯回歸模型原理。邏輯回歸是現今的工業界中一種常見的分類模型,對于大多數的問題都夠取得相當不錯的結果。邏輯回歸的基本原理是使用邏輯回歸函數來作為我們的預測函數,去預測在給定特征下,樣本屬于每個類別的概率。在訓練階段,通過梯度下降算法,不斷的降低交叉熵代價函數,提高在訓練集上的準確率。同時,我們加入了L1正則化,可以避免模型陷入過擬合。
(2)結果分析。通過在訓練的過程中加入的L1正則化項,我們的模型基本沒有發生過擬合,在訓練集上的準確率達到了79.8%,在測試集上達到了81.7%的正確率,取得了良好的性能。邏輯回歸的優點是在于簡單,訓練速度相對于KNN模型快很多。但是其一般更適合用于線性可分的問題當中,而對于一些線性不可分的問題中,采用更復雜的非線性模型可能會取得更好的效果。
(三)SVM模型
(1) SVM模型原理。支持向量機(support vector machine,SVM),是機器學習分類算法中一種綜合性能十分優秀的模型。其不僅能處理線性可分的問題,引入的核函數,還能夠處理線性不可分的問題。大大提高了模型的泛化能力。近年來,由于其性能優異,被廣泛的運用在各種分類問題中。SVM可以理解為是邏輯回歸的改進,對于邏輯回歸模型來講,由于存在無數個可能的解,解不唯一。即存在無數個超平面將數據分割開來,因此算法得到的解可能不一定是最優的。而SVM算法能從這無數個超平面中,選取一個最大間隔的超平面,使模型的泛化能力更強。SVM主要適用于兩種情況。第一類是線性可分數據,第二類是線性不可分數據。對于線性可分數據,采用了核技巧,將數據從低維空間映射到高維空間,再通過松弛變量等技術使數據變的線性可分。
(2) SVM模型的核函數。對于線性可分的數據,普通的SVM可以取得很好的效果。但在現實世界里,存在著很多非線性可分的數據。這個時候,普通的SVM就不太適用。但是可以通過一定的核技巧,將數據從低維空間映射到高維度空間。此時,線性不可分數據就可能變成線性可分數據,核函數用來計算兩個低維空間的向量在高維空間的內積,只要滿足Mercer 條件的函數,都可以作為核函數。常見的核函數有線性核函數,高斯核函數,多項式核函數等。
(3) 結果分析。當訓練集數目比較小時,SVM算法一般能夠取得很好的效果。但是當訓練集數目比較多時,SVM比較容易陷入過擬合,所以需要采用一定的正則化措施來緩解過擬合。因此我們使用了sklearn中帶有核函數的SVM,在包含有600個樣本的訓練集上經過一段時間的訓練后,最終得到的支持向量個數為298個。可以看到大概有50%的訓練樣本為支持向量。我們采用了不同的核函數來檢驗模型的效果,實驗結果表明,不同的核函數在該問題上的差異性不顯著。最終我們采用了帶有高斯核函數的SVM,在訓練集上的正確率為81.8%,在測試集中進行測試時,得到了83.5%的正確率。從訓練集和測試集上的正確率來看,模型基本上沒有發生過擬合。SVM也是在包含上述一系列的分類模型中,所達到的正確率比較高的模型,因此可見,SVM模型是效果非常好的一個分類模型。
(四)神經網絡模型
(1)神經網絡模型原理。神經網絡是基于生物學中神經網絡的基本原理,對人類大腦工作過程的一個簡單的模擬。它能夠通過一定的學習算法,學到一個非常復雜的非線性模型。當數據量比較大時,具有十分強大的泛化能力。神經網絡通過將多個神經元通過一定的聯結方式連接在一起,構成一個運算模型。每個神經元節點的輸入是上一層神經元輸入的線性組合,然后加上激活函數后,作為該個神經元的輸出。常用的激活函數有sigmoid,tanh,Relu等。每兩個神經元之間,具有一個權重值w。神經網絡就是通過激活函數,權重,聯結方式來模擬人類大腦的學習記憶功能。神經網絡在工作時,首先通過前向傳播計算代價函數值,然后通過反向傳播算法計算代價函數的梯度值,最后通過一定的優化算法,更新神經網絡的每一層的權重矩陣W。
在我們的泰坦尼克號乘客遇難問題中,每個乘客在經過預處理后,有14個特征,所以我們的神經網絡的輸入層一共含有14個神經元,第二層網絡具有32個神經元,第三層網絡具有64個神經元,輸出層含有一個神經元。在這個問題上,我們建立了一個具有多層感知機的神經網絡來進行預測,并且添加了相應的正則化項來防止模型的過擬合。
(2) 結果分析。我們通過構建了一個三層的感知機神經網絡,對600個訓練集數據進行訓練,最終在訓練集上取得了85.8%的正確率,在測試集上取得了83.5%的正確率,基本和SVM得到的結果不相上下。實質上,神經網絡更適合處理特征數目很多,訓練集數目很大的情況,而在泰坦尼克號這個問題上,由于我們只有幾百個訓練樣本,每個樣本只有十幾個特征。因此,雖然結果表現不錯,但是沒有真正體現出神經網絡強大的泛化能力,沒有體現出多層神經網絡的主要優勢。
三、結語
本項目通過具體的實例“泰坦尼克號乘客遇難預測分析”,對該問題分別采用了kNN模型,邏輯回歸模型,SVM模型以及神經網絡模型。在該問題的同一測試集上,最優模型分別取得了79%,81.7%,83.5%,83.5的正確率。比較了機器學習中不同的分類模型在該問題上的優缺點。通過對該問題的研究,掌握了不同分類模型的差異性。
參考文獻
[1] 楊麗華,戴齊,郭艷軍.KNN文本分類算法研究[J].微計算機信息,2006,22(21):269-270.
[2] 范玉妹,郭春靜.支持向量機算法的研究及其實現[J].河北工程大學學報(自然科學版),2010,27(04):106-112.