利用python进行泰坦尼克生存预测——数据探索分析
最近一直断断续续的做这个泰坦尼克生存预测模型的练习,这个kaggle的竞赛题,网上有很多人都分享过,而且都很成熟,也有些写的非常详细,我主要是在牛人们的基础上,按照数据挖掘流程梳理思路,然后通过练习每一步来熟悉应用python进行数据挖掘的方式。
数据挖掘的一般过程是:数据预览——>数据预处理(缺失值、离散值等)——>变量转换(构造新的衍生变量)——>数据探索(提取特征)——>训练——>调优——>验证
1 数据预览
1.1 head()
预览数据集的前面几条数据可以大致看看每个字段的值究竟长什么样。

1.2 info()

可以看每个字段有多少非空值,字段的类型是什么样的
1.3 describe()
可以大致描述每个整数或者浮点型的数值分布,看最小值,最大值和四分位数,可以大致了解数据的偏移情况。

2.数据预处理
从前面数据预览中发现年龄(age)、船舱号(Cabin)、登岸口(Embarked)有数据的缺失。
登岸口通过后面的数据探索可以发现只有3个值,而且缺失的数量也不大,因此这里填充为众数。
船舱号只有204个有值,一般来说,缺失比例较大的特征可以考虑舍弃,而这里联想到缺失是否表示乘客的票本身就没有船舱号,就像我们买的无座票一样,本身就没有座位号,因此这里先填充为0

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

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

3.数据探索
3.1 各个字段值的分布情况
先看代码:

以上是画布相关设置
subplots_adjust()是用来调整画布内子图的间隔大小的。


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


3.2 探索各字段与是否生存的关系,寻找对模型有用的特征
3.2.1 不同乘客等级与是否生存的关系


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


从数据上看,获救的女性比例很高,电影里面也说了女士优先,因此性别与是否生存也有较大关系。
3.2.3 年龄与是否生存的关系
首先看一下年龄的分布情况和值的离散情况


从图中可以发现大部分都是集中在20-50岁之间的,从箱线图看平均年龄接近30岁。
因为年龄是连续值,因此我们考虑把年龄分段后,进行分段统计展示看年龄与是否生存的关系。



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



从数据上看兄弟姐妹在1-2个的生存率最高
3.2.5是否有父母子女与是否生存的关系



数据显示父母子女个数在1-3个的生存率最高,个数越多反倒生存率下降。
3.2.6 港口与是否生存的关系

数据显示有港口的生存率明显高很多。可能是船中间有停靠到一些港口,有部分乘客下船了。
本文参考:大树先生的博客
利用python进行泰坦尼克生存预测——数据探索分析的更多相关文章
- pytorch kaggle 泰坦尼克生存预测
也不知道对不对,就凭着自己的思路写了一个 数据集:https://www.kaggle.com/c/titanic/data import torch import torch.nn as nn im ...
- Kaggle初体验之泰坦尼特生存预测
Kaggle初体验之泰坦尼特生存预测 学习完了决策树的ID3.C4.5.CART算法,找一个试手的地方,Kaggle的练习赛泰坦尼特很不错,记录下 流程 首先注册一个账号,然后在顶部菜单栏Co ...
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...
- 利用python爬取58同城简历数据
利用python爬取58同城简历数据 利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用pyth ...
- 利用Python进行数据分析_Pandas_处理缺失数据
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 1 读取excel数据 import pandas as pd import ...
- python数据处理(七)之数据探索和分析
1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...
- 利用Python进行数据分析 第8章 数据规整:聚合、合并和重塑.md
学习时间:2019/11/03 周日晚上23点半开始,计划1110学完 学习目标:Page218-249,共32页:目标6天学完(按每页20min.每天1小时/每天3页,需10天) 实际反馈:实际XX ...
- 利用Python进行数据分析 第6章 数据加载、存储与文件格式(2)
6.2 二进制数据格式 实现数据的高效二进制格式存储最简单的办法之一,是使用Python内置的pickle序列化. pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle ...
- Spark学习笔记——泰坦尼克生还预测
package kaggle import org.apache.spark.SparkContext import org.apache.spark.SparkConf import org.apa ...
随机推荐
- python的高阶函数
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数. 高阶函数 定义:一个函数就可以接收另一函数作为参数,这种函数就称之为高阶函数. map/reduce Python ...
- JIRA Service Desk 3.9.2 没有许可证
https://my.atlassian.com/license/evaluation Server ID BFHT-0XFL-3NM8-3KRF SEN SEN-L10880225 License ...
- easyui 消息提示框
1.浏览器消息提示框 浏览器弹出框,可以在浏览器设置中被屏蔽掉,导致效果失效 alert() 2.easyui 框架提供的消息框 easyui 框架自带的消息框,不可以被屏蔽. $.messager. ...
- EasyUI datagrid 双击行事件
1.EasyUI 实现点击行的任何位置,触发事件 onLoadSuccess:function(data){ } , pagination : false, //双击事件 onDblClickRow: ...
- rsync运行时出现skipping non-regular file
如果执行 rsync 时提示 skipping non-regular file……,检查下原文件夹中是否包含软链接 修改下脚本文件: rsync -va ... -a == -rlptgoD (no ...
- Mac系统使用VS Code编译Bootstrap 4
环境: macOS 10.13.6 node.js 8.11.3 sass 1.10.3 bootstrap 4.1.3 vs code 1.25.1 Bootstrap3为我们提供了在线编译工具,可 ...
- ylbtech-LanguageSamples-Porperties(属性)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性) 1.A,示例(Sample) 返回顶部 “属性”示例 本示 ...
- Wishbone B3总线Generic RAM写法
以下Verilog HDL代码符合wishbone总线B3标准协议,在Altera和Xilinx的开发工具上可以实现综合,自动推断并采用片上RAM资源,可以完成内存内容的初始化. /* ******* ...
- 3D游戏图形技术解析(7)——视差映射贴图(Parallax Mapping)【转】
http://www.cnblogs.com/taotaobujue/articles/2781371.html 视差映射贴图(Parallax Mapping) ● 传统纹理贴图的弊端 纹理贴图大家 ...
- 关于判断语句中如:while not xx: 或者:if not xx: 的含义及用法解析
关于判断语句中如:while not xx: 或者:if not xx: 的含义及用法解析 name='' while not name: name=raw_input(u'请输入姓名:') prin ...