泰坦尼克号乘客获救预测-进阶(天池)

机器学习实战入门经典案例:泰坦尼克号乘客获救预测-进阶

天池项目链接: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. 超参数调试

你可能感兴趣的:(泰坦尼克号乘客获救预测-进阶(天池))