kaggle項目:泰坦尼克號生存率分析_隨機森林

一 項目背景與問題提出

1. 項目背景

1912年4月15日,號稱“永不沉沒”的泰坦尼克號巨輪,在首航期間,撞上冰山之后沉沒。船上的2224名乘客和機組人員,只有772人存活了下來,生存率只有32%,讓人唏噓不已。

導(dǎo)致大量的沒法存活的重要原因之一,就是沒有足夠的救生艇,在上船前,露絲就曾向船長提出救生艇不夠的問題。雖然幸存下來有一些運氣因素,但是,有一些人可能比其他人更有可能生存,比如婦女,兒童以及上層階級。

2. 問題提出

根據(jù)船上人員的姓名,性別,年齡等特征預(yù)測他們是否能幸存

二 數(shù)據(jù)來源與數(shù)據(jù)說明

1. 數(shù)據(jù)來源

數(shù)據(jù)來源于kaggle平臺項目:點擊下載Kaggle泰坦尼克號數(shù)據(jù)

2. 數(shù)據(jù)說明

三 數(shù)據(jù)探索與特征工程

1. 導(dǎo)入模塊和數(shù)據(jù)


2. 查看數(shù)據(jù)


data.head()

共891行, "Age"有714個非空值,"Cabin"只有204個非空值,存在大量缺失值,"Embarked"有兩個缺失值

data.info()

3. 缺失值處理

"Age" 缺失值不多,用均值填充

"Cabin"過多, 刪除該列

"Embarked" ,刪除帶有缺失值的行

?4. 連續(xù)型變量處理

將連續(xù)變量進行分組.,并進行啞變量處理

age 分組


fare分組


embarked和sex


5.相關(guān)關(guān)系與特征處理

"name" "ticket" 無法獲得更多信息,刪除特征

與最后能否幸存相關(guān)度較高的特征是:"Fare" "Age" "Embarked" "Pclass" "Sex" 可以放入模型

" Parch" "PassengerId" "Sibsp" 相關(guān)度較低.? 直接刪除"PassengerId",??" Parch"和"Sibsp" 考慮生成衍生特征


用Parch和sibsp 生成familysize特征, 但與生存率關(guān)系不大

familysize

用Parch和sibsp 生成 isalone 特征, 相關(guān)性較大,放入模型

四 建模

1.? 訓(xùn)練集和測試集

2. 交叉驗證選擇最佳模型

創(chuàng)建空字典? 為畫圖做準(zhǔn)備
遍歷五個模型交叉驗證
畫圖

從圖中看出,隨機森林表現(xiàn)最好,選擇隨機森林作為最終模型,進行調(diào)參

結(jié)果

五 調(diào)參

1. 調(diào)參思想

運用泛化誤差-復(fù)雜度曲線,當(dāng)模型復(fù)雜度過高(過擬合),或過低(擬合不足)時,模型的泛化誤差較高.

達到最適當(dāng)?shù)膹?fù)雜度時,泛化誤差最小

2.學(xué)習(xí)曲線

調(diào)參數(shù)n_estimators, 該參數(shù)不影響模型的復(fù)雜度. 一般來說n_estimators越大,模型的準(zhǔn)確率慢慢提升至平穩(wěn),運行時間越長

運用學(xué)習(xí)曲線找到能衡運行時間和準(zhǔn)確率的最佳?n_estimators

結(jié)果: ?n_estimators=101, 模型準(zhǔn)確率0.830145556691

3. 網(wǎng)格搜索

3.1?參數(shù)?max_depth

目的: 找出?d當(dāng)n_estimators =101 時?,參數(shù) max_depth等于多少能提高模型準(zhǔn)確率

結(jié)果: 當(dāng)?max_depth=13時,模型準(zhǔn)確率略有提高.?

說明模型可能處于泛化誤差-復(fù)雜度曲線的左邊 ,增加復(fù)雜度還有可能提高模型準(zhǔn)確率,因此用網(wǎng)格搜索下一個參數(shù)

代碼

3.2 參數(shù)min_samples_split

結(jié)果: 加入該參數(shù),模型準(zhǔn)確率反而下降了,說明此時可能已經(jīng)處于泛化誤差最低點

增加模型復(fù)雜度已經(jīng)不能提高準(zhǔn)確率,因此 其他增加模型復(fù)雜度的參數(shù)不用再嘗試

3.3 參數(shù) criterion?

該參數(shù)既可能提升模型復(fù)雜度也可能降低復(fù)雜度,可以嘗試一下

結(jié)果: 用現(xiàn)有參數(shù) criterion=gini,準(zhǔn)確率最高

3.4 最終模型

交叉驗證
擬合

六 預(yù)測

導(dǎo)入測試集數(shù)據(jù),清洗整理后用建好的模型預(yù)測

結(jié)果
導(dǎo)出為csv文件

七? 改進

參考了別人的方法,獲得新思路 :?

從name中提取特征

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容