Python泰坦尼克生还预测

Kaggle Titanic 数据分析案例

  • 背景介绍
    20世纪初,由英国白星航运公司制造的一艘巨大豪华客轮。是当时世界上最大的豪华客轮,被称为是“永不沉没的”或是“梦幻客轮”。
    泰坦尼克号是人类的美好梦想达到顶峰时的产物,反映了人类掌握世界的强大自信心。她的沉没,向人类展示了大自然的神秘力量,以及命运的不可预测。到泰坦尼克号沉没那天为止,西方世界的人们已经享受了100年的安稳和太平。科技稳定地进步,工业迅速地发展,人们对未来信心十足。泰坦尼克号的沉没惊醒了这一切。这艘“永不沉没的轮船”——埃菲尔铁塔之后最大的人工钢铁构造物,工业时代的伟大成就,因为对自然的威力掉以轻心,满不在乎,所以在第一次处女航中就沉没了。泰坦尼克号将永远让人们牢记人类的傲慢自信所付出的代价。人们永远也忘不了这幅画面:泰坦尼克号在海底昂着头,残破和污迹也掩盖不了她的高贵。这就是她的归宿。历史就这样演变成了传奇。
    好的,不要被开头这段迷惑,这真的是个不太正经的分析
  • 分析目标(别被博主骗了,他就分析了几个简单的)
    根据官方给出的数据分析各个属性间的关系
  • 数据来源(完全可以百度网盘见)
    https://www.kaggle.com/c/titanic
    或者在我的资源里下载
  • 数据说明
  • 数据预处理
>     import pandas as pd
>     import numpy as np
>     import matplotlib.pyplot as plt
>
>     train=pd.read_csv('/Users/a/Desktop/Titanic/train.csv')
>     test=pd.read_csv('/Users/a/Desktop/Titanic/test.csv')

#1.数据概览

> print(train.head())
> print('--------------------------------------------')
> print(test.head()) print('数据维度为:',train.shape,'  ',test.shape)
> print('--------------------------------------------')
> print('train.csv字段名为:',train.info())
> print('test.csv字段名为:',test.info())


#2.数据清洗

train_a=train.loc[:,[‘PassengerId’,‘Survived’,‘Pclass’,‘Sex’,‘Age’,‘SibSp’,‘Parch’,‘Fare’]]
test_a=test.loc[:,[‘PassengerId’,‘Pclass’,‘Sex’,‘Age’,‘SibSp’,‘Parch’,‘Fare’]]
print(’------------------------------------’) print(train_a.head())
print(test_a.head()) print("------------------------------------")
print(test_a.info()) print(train_a.info())

#填补空值,重点,敲黑板,由于实际统计时,部分信息无法采集,会出现"空值",在数据预处理时,我们会用填充空值,例如我们要建立与年龄字段’Age’相关的模型,就对"Age"中的空白字段进行填充

median_age=train_a[‘Age’].median()#这里取中位数,Q1:为什么不取平均值?:平均数反映的是一组数据的平均情况,容易受到个别极端值到影响;与之相比中位数反映了一组数据到一般情况,不受个别极端值影响
print(median_age)#这里计算出到值为28.0
train_a.loc[train_a[‘Age’].isnull(),‘Age’]=median_age#前面行中传入到参数表示空值,后面代表’Age’列,这一步我们将中位数填入空值
median_age2=test_a[‘Age’].median()
test_a.loc[test_a[‘Age’].isnull(),‘Age’]=median_age2

Fare=train_a[‘Fare’].mode()#取众数,填充Fare空值,为什么这里又取众数呢?票价缺失只占很小的一部分,个人理解,票价要精确到个人
Fare2=test_a[‘Fare’].mode()
train_a.loc[train_a[‘Fare’].isnull(),‘Fare’]=Fare
test_a.loc[test_a[‘Fare’].isnull(),‘Fare’]=Fare2 print(test_a.info)
print(train_a.info)

#修改数据类型,为了方便统计,我们先查看数据类型,发现Sex为object(字符串),这里我们将其转换成整型

print(train_a.dtypes) print(’--------------------’)
print(test_a.dtypes)
test_a[‘Sex’]=test_a[‘Sex’].map({‘male’:1,‘female’:0}).astype(int)
train_a[‘Sex’]=train_a[‘Sex’].map({‘male’:1,‘female’:0}).astype(int)
print(test_a.head()) print(train_a.head())

#处理完数据后,我们发现,数据中部分列可以合并,这里就需要我们进行数据重构

test_a[‘f_size’]=test_a.loc[:,‘SibSp’]+test_a.loc[:,‘Parch’]+1

train_a[‘f_size’]=train_a.loc[:,‘SibSp’]+train_a.loc[:,‘Parch’]+1
train_a[‘Single’]=0 test_a[‘Single’]=0
train_a.loc[train_a[‘f_size’]==1,‘Single’]=1
test_a.loc[test_a[‘f_size’]==1,‘Single’]=1
train_f=train_a.loc[:,[‘PassengerId’,‘Survived’,‘Pclass’,‘Sex’,‘Age’,‘Parch’,‘Fare’,‘f_size’,‘Single’]]
test_f=test_a.loc[:,[‘PassengerId’,‘Pclass’,‘Sex’,‘Age’,‘SibSp’,‘Parch’,‘Fare’,‘f_size’,‘Single’]]
print(test_f.head) print(train_f.head)


#作为单身狗,我还是比较关心,单身与存活率到关系,所以,先从这里开始分析

d=train_f[[‘Single’,‘Survived’]].groupby([‘Single’]).mean() print(d)
plt.bar([0,1],
[1-d.loc[0,‘Survived’],1-d.loc[1,‘Survived’]],
0.5,
color=‘green’,
alpha=0.5,
) plt.xticks([0,1],[‘not_alone’,‘Single’]) plt.show()


结果一目了然,单身存活率高,原因我想看过泰坦尼克号的人都知道,全在船头看Jack和Rose秀恩爱了,忘记要跑了,结论秀恩爱死得快!!!

#性别和生存率

m=train_f[[‘Sex’,‘Survived’]].groupby([‘Sex’]).mean() plt.bar([0,1],
[1-m.loc[0,‘Survived’],1-m.loc[1,‘Survived’]],
0.5,
color=‘blue’,
alpha=0.9,
) plt.xticks([0,1],[‘female’,‘male’]) plt.show()

#下面我们看看船舱等级和生还率的关系

c = train_f[[‘Pclass’, ‘Survived’]].groupby([‘Pclass’]).mean()
plt.bar(
[0,1,2],
[1-c.loc[1,‘Survived’],1-c.loc[2,‘Survived’],1-c.loc[3,‘Survived’]],
0.5,
color=‘r’,
alpha=0.7 )

plt.xticks([0,1,2],[1,2,3]) plt.show()


三等舱存活率最高,所以啊不要被万恶的资本主义腐蚀,人家三等舱还真就生存率高,生命力顽强。

emmmm依然是那个希望被赞然后肯定没人赞的菜?博主,不会唱跳rap篮球,只会没事写篇文章记录自学过程

Python数据分析案例篇(一)泰坦尼克号数据分析相关推荐

  1. Python数据分析案例08——预测泰坦尼克号乘员的生存(机器学习全流程)

    上一篇数据分析案例是回归问题,本次案例带来分类问题的 机器学习案例.这个数据集比上个案例更小.更简单,代码也不复杂,新手都可以学一学. 1.背景分析 预测乘客是否存活下来 泰坦尼克号是数据科学机器学习 ...

  2. python数据分析案例分析题_Python数据分析-案例分析

    星火:Python数据分析基础​zhuanlan.zhihu.com 两个学习道具: 1)这个网页可以调用全球最大的搜索引擎(长按此处可以复制): 事先准备: 在notebook中想要导入Excel文 ...

  3. 数据分析案例 - 电商行业数据分析

  4. 数据分析案例--电商指标的实际应用

    数据分析案例--天猫订单分析 数据分析的一般过程 数据来源及内容 天猫订单分析过程 数据分析的一般过程 明确项目背景,待解决的问题 : 分析逻辑,画出逻辑树,明确分析过程中的指标 : 提数分析,同时进 ...

  5. python商业数据分析_Python数据分析案例—商圈客流量特征分析

    这是 python 数据分析案例系列的第二篇,主要是聚类分析,实现起来较为简单.后续还会继续更新,欢迎关注交流! 在处理实际的数据分析案例时,我们面临的往往是比较复杂的研究对象,如果能把相似的样品(或 ...

  6. Python实战案例:旅游方面博文的数据分析

    Python实战案例:旅游方面博文的数据分析 一.旅游方面博文数据展示 数据分析的出现便利了每个人,企业,竞争者.在以前的时候,如果想要了解市场的动向,就设计了调查问卷或者现场采访的方式,以至于被很多 ...

  7. Python技术栈与Spark交叉数据分析双向整合技术实战--大数据ML样本集案例实战

    版权声明:本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.QQ邮箱地址:1120746 ...

  8. python数据分析实战案例-Python数据分析案例实战

    原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...

  9. python数据录入_Re:从零开始的Python数据分析(实战篇)

    "数据分析",这是一个大家都不陌生的词.相信大家一定都知道Excel表格(至少学校里信息课肯定教过),它就是一个数据可视化分析工具.但我们今天所要使用的是大名鼎鼎的: Python ...

  10. 利用python进行数据分析数据集_《利用Python进行数据分析》终章·数据分析案例·学习笔记(二)...

    一.第14章 数据分析案例 本书正文的最后一章,我们来看一些真实世界的数据集.对于每个数据集,我们会用之前介绍的方法,从原始数据中提取有意义的内容.展示的方法适用于其它数据集,也包括你的.本章包含了一 ...

最新文章

  1. VDI序曲二十三 制作OFFICE 2003应用程序虚拟化序列
  2. rest-framework 视图
  3. Deformable ConvNets--Part4: Deformable Convolutional Networks
  4. java多线程优先级的方法_Java多线程以及线程优先级
  5. 《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels
  6. 域渗透基础之环境搭建(单域到组件域林)
  7. p20pro 鸿蒙,后置镜头变液态双摄?华为P50Pro再曝光,搭载鸿蒙OS传感器变1寸
  8. AcWing - 175 电路维修(思维建边+最短路)
  9. 论文二作对硕博研究生有用吗?
  10. 【原创】编译cupcake笔记
  11. SP_attach_db 添加数据库文件
  12. Android 11正式发布:小米、OPPO等手机将陆续更新
  13. ffmpeg调用directshow camera 并sdl渲染
  14. [转]正则表达式中re.match、re.search、re.findall的用法和区别
  15. vue项目的安装与启动
  16. OpenStack是吞噬金钱和人力的怪兽吗?
  17. 世界杯来了,移动办公的“世界杯”怎么踢?
  18. Linux入门及进阶学习推荐书籍
  19. 勒索病毒来袭!及时备份数据吧!
  20. MIT JOS lab2内存管理实验记录

热门文章

  1. Linux7安装oracle11g报错 Error in invoking target ‘agent nmhs‘ of makefile “ins_emagent.mk”
  2. 使用racoon setkey搭建IPsec环境
  3. 做一名有幸福感的计算机教师,做一名有职业幸福感的教师为题目的作文
  4. 由于达到了总登录时间限制,远程回话被结束。这个限制是服务器管理员或网络策略设置的。
  5. 叶俊:没有人会把钱存在有漏洞的账户
  6. The JSP specification requires that an attribute name is preceded by whitespace出现错误
  7. 高等数学笔记-苏德矿-第十章-曲线积分和曲面积分-第七节-高斯公式与斯托克斯公式
  8. 015-lissajous server
  9. 我的世界服务器无限传送怎么办,我的世界:没有耐久,无限次使用“传送门”,比指令更实用...
  10. netstat查看网络状态(windows)