一 項目背景與問題提出
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ù)

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

3. 缺失值處理
"Age" 缺失值不多,用均值填充
"Cabin"過多, 刪除該列
"Embarked" ,刪除帶有缺失值的行

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



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)系不大

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

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

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



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

五 調(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ù)測


七? 改進
參考了別人的方法,獲得新思路 :?
從name中提取特征
