最近一直断断续续的做这个泰坦尼克生存预测模型的练习,这个kaggle的竞赛题,网上有很多人都分享过,而且都很成熟,也有些写的非常详细,我主要是在牛人们的基础上,按照数据挖掘流程梳理思路,然后通过练习每一步来熟悉应用python进行数据挖掘的方式。

数据挖掘的一般过程是:数据预览——>数据预处理(缺失值、离散值等)——>变量转换(构造新的衍生变量)——>数据探索(提取特征)——>训练——>调优——>验证

1数据预览

1.1 head()

预览数据集的前面几条数据可以大致看看每个字段的值究竟长什么样。

a0881303a67da149ed2c9945d94d8697.png

1.2 info()

3fc9db5c8109f4cd768c89bb08501151.png

可以看每个字段有多少非空值,字段的类型是什么样的

1.3 describe()

可以大致描述每个整数或者浮点型的数值分布,看最小值,最大值和四分位数,可以大致了解数据的偏移情况。

49cb7317fef996600c547a8963cc2293.png

2.数据预处理

从前面数据预览中发现年龄(age)、船舱号(Cabin)、登岸口(Embarked)有数据的缺失。

登岸口通过后面的数据探索可以发现只有3个值,而且缺失的数量也不大,因此这里填充为众数。

船舱号只有204个有值,一般来说,缺失比例较大的特征可以考虑舍弃,而这里联想到缺失是否表示乘客的票本身就没有船舱号,就像我们买的无座票一样,本身就没有座位号,因此这里先填充为0

ef4300d7be26c1f64a6edf5c1be666fd.png

年龄字段也存在缺失,一般来说,老弱病残幼是要受到特殊照顾的,因此年龄应该会是一个比较重要的特征,并且因为它是连续值,这里采用算法预测的方式来进行填充。

119aae3e0a5c48e288486511a6c2316d.png

最后我们来看一下填充后的数据情况

a0c97b8bb723c1b780605ee193b23263.png

3.数据探索

3.1各个字段值的分布情况

先看代码:

e9595cdaae72b52f6c9d2fdecca69508.png

以上是画布相关设置

subplots_adjust()是用来调整画布内子图的间隔大小的。

aecba990047868787ab5abd778078480.png

89385584afe628da00463d9796b88792.png

以上是在画布相应位置画各个子图的代码。图形如下:

beddd4537d54f71de693e6447491ee4e.png

6665c8098b71f0126996f633e87605e4.png

3.2探索各字段与是否生存的关系,寻找对模型有用的特征

3.2.1 不同乘客等级与是否生存的关系

e9395c2bd673879cf77b0bf65b5b828f.png

075c0ec1ae522d1293b40383099f1fcb.png

舱位越高级的,生存的比例越大。3等舱里面未获救的比例明显增大。说明舱位与是否生存有关系。

3.2.2 性别与是否生存的关系

257db6cc9674566d06ac24eaabf5ebbc.png

226123b4e0d873a12b3209862de06e8b.png

从数据上看,获救的女性比例很高,电影里面也说了女士优先,因此性别与是否生存也有较大关系。

3.2.3 年龄与是否生存的关系

首先看一下年龄的分布情况和值的离散情况

67d2b82817f5dfa5eda266f8c5b83e4c.png

0e159cd56d00c19842a50ea3700392cf.png

从图中可以发现大部分都是集中在20-50岁之间的,从箱线图看平均年龄接近30岁。

因为年龄是连续值,因此我们考虑把年龄分段后,进行分段统计展示看年龄与是否生存的关系。

d202a9aa534518be40995b161a898ef7.png

288c2eafa7f98c2415f09782aa84ad0f.png

ee4e8dac32cc73b851241435e6d240d5.png

从数据上年纪小的生存的几率要大些。不同年龄段的生存率明显有差别,说明年龄与是否生存是有关系的。

3.2.4 有无兄弟姐妹与是否生存的关系

37afd137884b8d716001159c6cceb681.png

df1bbde39cad822db7d290dd5e760bb8.png

32ed8a509eb5212086445e0c85b17879.png

从数据上看兄弟姐妹在1-2个的生存率最高

3.2.5是否有父母子女与是否生存的关系

d7a5566a5665a7071c698adad7eb39d1.png

44489fb4ce3ba69942cd556f46f545ba.png

dadc75c13ed98144101a740b427ba58a.png

数据显示父母子女个数在1-3个的生存率最高,个数越多反倒生存率下降。

3.2.6 港口与是否生存的关系

ada5dd857e196302c79c277f2b7852fd.png

数据显示有港口的生存率明显高很多。可能是船中间有停靠到一些港口,有部分乘客下船了。

本文参考:大树先生的博客

原文:https://www.cnblogs.com/gangandimami/p/9086022.html

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐