泰坦尼克號乘客獲救預測-進階(天池)

機器學習實戰入門經典案例:泰坦尼克號乘客獲救預測-進階

天池項目鏈接:https://tianchi.aliyun.com/notebook-ai/detail?postId=6772

(作者: 大樹先生

博客:?http://blog.csdn.net/koala_tree

知乎:https://www.zhihu.com/people/dashuxiansheng

GitHub:https://github.com/KoalaTree

數據集下載地址:https://tianchi.aliyun.com/datalab/dataSet.html?spm=5176.100073.0.0.4b9f6fc1syvnEp&dataId=1386

github:https://github.com/oliveeeeee/Machine-Learning-Project


1、數據總覽

樣本大小、變量名和類型、缺失值情況、正負比


2、缺失值處理

一些機器學習算法能夠處理缺失值,比如神經網絡,一些則不能。

一般處理方法:刪行、刪列、補(均值、眾數等)、賦值、預測(隨機森林、線性回歸)


3、分析數據關系

3.1 性別與是否生存的關系 (柱狀圖——不同性別的生存率是否差別顯著)

3.2 船艙等級和是否生存的關系 (柱狀圖——不同等級船艙的生存率是否差別顯著,不同等級船艙的男女生存率是否差別顯著)

3.3 年齡與是否生存的關系(小提琴圖——不同等級船艙下的年齡分布和生存的關系、不同性別下的年齡分布和生存的關系,直方圖、箱型圖——總體的年齡分布,核密度估計圖——不同年齡下的生存和非生存的分布情況,柱狀圖——不同年齡下的生存率、將乘客劃分為四個年齡群體下的生存率)

3.4 稱呼與存活與否的關系(從名字中提取出稱呼,柱狀圖——不同稱呼與生存率的關系,柱狀圖——名字長度和生存率的關系)

3.5 有無兄弟姐妹和存活與否的關系(餅圖——有兄弟姐妹的乘客的生存與否分布、無兄弟姐妹的乘客的生存與否的分布)

3.6 有無父母子女和存活與否的關系(餅圖——有父母子女的乘客的生存與否分布、無父母子女的乘客的生存與否的分布)

3.7 親友的人數和存活與否的關系(柱狀圖——不同父母子女人數的存活率、不同兄弟姐妹人數的存活率、不同父母子女和兄弟姐妹總和數的存活率)

3.8 票價分布和存活與否的關系(直方圖——票價的分布,多類型箱型圖——不同船艙等級下的票價分布,柱狀圖——生存與否與票價均值和方差的關系)

3.9 船艙類型和存活與否的關系(柱狀圖——Cabin缺失與否和生存率的關系、不同船艙類型下的生存率)

3.10 港口和存活與否的關系(柱狀圖——不同港口下生存和遇難的個數,折線圖factorplot——不同港口下的生存率)

3.11 其他可能和存活與否有關系的特征(將這些因素交由模型來決定其重要性)


4、變量轉換

Scikit-learn要求數據都是數字型numeric,所以我們要將一些非數字型的原始數據轉換為數字型numeric。

定性(Qualitative)的轉換:dummy variables(one-hot), factoring

定量(Quantitative)的轉換:Scaling,Binning


5、特征工程

特征的處理、構造、丟棄、正則化,特征間相關性分析,特征之間的數據分布圖,分訓練集和測試集


6、模型融合及測試

6.1 利用不同的模型來對特征進行篩選,選出較為重要的特征(randomforest,AdaBoost,ExtraTree,GradientBoosting,DecisionTree)

6.2 依據我們篩選出的特征構建訓練集和測試集

6.3 模型融合(Model Ensemble)

常見的模型融合方法有:Bagging、Boosting、Stacking、Blending。

采用Stacking框架融合:這里我們使用了兩層的模型融合:

Level 1使用了:Random Forest、AdaBoost、ExtraTrees、GBDT、Decision Tree、KNN、SVM,一共7個模型?

Level 2使用了XGBoost,使用第一層預測的結果作為特征對最終的結果進行預測。?

6.4 預測并生成提交文件


7. 驗證:學習曲線

通過觀察學習曲線判斷是否欠擬合或過擬合。


8. 超參數調試

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。