问题

数据来源于Kaggle,通过一组列有泰坦尼克号灾难幸存者或幸存者的训练样本集,我们的模型能否基于不包含幸存者信息的给定测试数据集确定这些测试数据集中的乘客是否幸存。

代码与数据分析

导入必要的包和titanic数据

image

数据集基本信息

将数据分为不同类别,分别为类别型数据和数字型数据类别数据:Survived, Sex, and Embarked. Ordinal: Pclass

数字型数据:Age, Fare. Discrete: SibSp, Parch

image

数据分布来看:大多数乘客(75%)没有和父母或孩子一起旅行

近30%乘客有兄弟姐妹或配偶

票价差异很大,只有少数乘客(<1%)支付了512美金的票价

年龄较大的乘客数据较少(1%)

提出假设关联:各个特征与存货的相关性是如何

填充缺失值:对 Age 和 Embarked 进行缺失值填充

清洗、处理、剔除字段:Ticket由于高重复率,Cabin仓位空值过多,PassengerId与存活无关,Name数据不标准,都需要处理后进行剔除

添加字段:我们可以根据 Parch 和 SibSp 创造一个关于家庭成员数量的字段;可以从名字中提取特征形成新特征;可以从 Age 和 Fare 创造分层,使数据更具有机器学习意义

分类:猜测女性(Sex = female)、儿童(Age

通过pandas pivot进行简单分析

image

Pclass 等级越低,存活率越低

image

女性存活率远高于男性

image

SibSp与存活率很分散,可能需要进行重构新字段

通过可视化进行分析

数据发现婴儿(Age < 4)存活率很高

年龄最大的乘客存活了下来

大多数15-25岁之间的乘客没有存活下来

大多数乘客处于15-35岁之间

决策

通过对以上数据分析,可以得到以下决策我们应该对年龄进行缺失值填空、分层

image

数据相关性

结合多个特征来识别相关性

数据发现Pclass=3的乘客最多,但存活率最低

Pclass=2和Pclass=3的婴儿乘客幸存率很高

大多数Pclass=1的乘客存活率很高

不同阶层的年龄分布不同

image

分类特征关联

数据发现女性存活率比男性高很多

Pclass=3的男性存活率更高

Pclass=3和男性乘客的生存率各不相同

image

数值数据和分类数据的关系

数据发现票价越高的乘客存活率越高

登陆口岸与乘客存活率相关

image

数据处理

现在我们上文中的数据分析对数据进行处理

Name 列处理

名称列提取后发现分组较为集中和准确,进行简单处理就可以得到比较明确的类别

image

image

女性称谓的存活率也明显较高

image

将类别数据(Title、Sex)数字化

image

image

删掉不必要的列

image

填充空缺值

填充 Age

我们考虑用三种方法对Age进行空缺值填充随机生成一个均值±方差之间的数字

在以上的分析中我们可以看到每个阶层、性别之间的年龄分布有所不同,所以我们可以根据阶层和性别组合特征进行空缺的年龄值预测

结合1、2方法,通过阶层和性别组合特征随机生成一个均值±方差之间的数字

这里我们选择方法 2

生成年龄填充DataFrame

[图片上传中…(image-a6ff10-1576513947294-25)]

填充空缺 Age

根据每条空缺值的 Pclass 和 Sex 进行 Age 填充

image

对年龄进行分层

image

根据年龄分层将年龄类别数据数字化

image

移除多余列

image

结合 SibSp 和 Parch 创建新列

image

image

删除多余字段

image

结合阶层和年龄生成新列

image

对 Embarked 列进行填充

由于绝大多数 Embarked=S,故用 S 对空缺值进行填充

image

对 Embarked 列类别数据数字化

image

对 Fare 列进行空缺值填充与分层

image

根据数据分层对 Fare 进行分类并数据化

image

数据学习模型选择与评估

我们选择以下几种模型进行学习预测:Logistic Regression

KNN or k-Nearest Neighbors

Support Vector Machines

Naive Bayes classifier

Decision Tree

Random Forrest

Perceptron

Artificial neural network

RVM or Relevance Vector Machine

进行训练集、预测集分割处理

image

逻辑回归

逻辑回归主要原理是 Sigmoid 函数,是在工作流早期运行的一个有用模型。Logistic回归通过使用Logistic函数(累积Logistic分布)估计概率来度量分类因变量(特征)与一个或多个自变量(特征)之间的关系 Wikipedia。

image

我们可以看到各个特征的的系数:Sex 的系数为2.019,性别为1(female),存活率越大

Pclass系数为-1.046,值越大,存活率越低

image

SVM模型

image

KNN 模型

image

朴素贝叶斯模型

image

感知机模型

image

支持向量机模型

image

梯度下降模型

image

决策树模型

image

随机森林模型

image

对所有模型进行评价分析

随机森林和决策树的分类效果都比较好,防止过拟合选择随机森林,进行 Kaggle 数据预测

image

Kaggle 预测数据上传

Kaggle 预测集准确率只有0.74641,排名9256名。如果对模型进行适当调参,模型准确性应该会更高

image

END

https://www.jianshu.com/p/d5ee5d98db12

泰坦尼克号预测python_kaggle:泰坦尼克号获救预测_Titanic_EDA##相关推荐

  1. EL之DTRFGBT:基于三种算法(DT、RF、GBT)对泰坦尼克号乘客数据集进行二分类(是否获救)预测并对比各自性能

    EL之DT&RF&GBT:基于三种算法(DT.RF.GBT)对泰坦尼克号乘客数据集进行二分类(是否获救)预测并对比各自性能 目录 输出结果 ​设计思路 核心代码 输出结果 设计思路 核 ...

  2. ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测

    ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 X_train, X_test, y_train, y_te ...

  3. python泰坦尼克号数据预测_机器学习入门之Python机器学习:泰坦尼克号获救预测一...

    本文主要向大家介绍了机器学习入门之Python机器学习:泰坦尼克号获救预测一,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 一.项目概要 1.应用 模式识别.数据挖掘(核心).统计学 ...

  4. ML之RFXGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 比赛结果 设计思路 核心代码 ...

  5. ML之RFXGBoost:分别基于RF随机森林、XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:分别基于RF随机森林.XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 ...

  6. ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测

    ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 fs = fea ...

  7. ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测

    ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 初步处理后的 X_train: (984, ...

  8. 泰坦尼克号生存预测python_用Python预测泰坦尼克生存情况-附数据集

    介绍:通过逻辑回归算法,解决kaggle网站上的泰坦尼克生存情况预测问题,准确率在80%左右. 一.提出问题 什么样的人在泰坦尼克号中更容易存活? 二.理解数据 2.1 数据来源 数据来自kaggle ...

  9. 【机器学习】决策树案例三:利用决策树进行泰坦尼克号事故人员存活分类预测

    利用决策树进行泰坦尼克号事故人员存活分类预测 3 利用决策树进行泰坦尼克号事故人员存活分类预测 3.1 导入模块与加载数据 3.2 特征工程 3.3 划分数据 3.4 模型创建与应用 3.5 模型可视 ...

  10. 集成算法-随机森林与案例实战-泰坦尼克获救预测

    集成算法-随机森林 Ensemble learning 目的:让机器学习效果更好,单个不行,群殴走起 Bagging:训练多个分类器取平均 f ( x ) = 1 / M ∑ m = 1 M f m ...

最新文章

  1. 如何用Python批量提取PDF文本内容?
  2. [Asp.net MVC]Asp.net MVC5系列——第一个项目
  3. PHP下的Oauth2.0尝试 - 授权码授权(Authorization Code Grant)
  4. obj c和java_PKCS1-padding / RSA加密ios objc和java之间的区别
  5. 在linux上配置unixODBC和FreeTDS访问MS SQL Server.
  6. JAVA期末简答题参考
  7. JAVA基础知识之JDBC——JDBC事务处理及批量更新
  8. 使用Spring Boot和Project Reactor处理SQS消息-第2部分
  9. Web前端笔记(7)
  10. mysql jdbc 事务隔离级别_JDBC事务隔离级别,看完这篇文章就够了!
  11. 远程登录服务器时,提示未被授予终端服务器登录权限?
  12. Delphi中TEdgeBrowser控件初探
  13. 基于Matlab/simulink的转速电流双闭环直流调速系统的仿真
  14. 计算机考研408复习路线,不再让你头大啦
  15. 基于Tushare量化分析示例
  16. 软件工程课堂作业(三)——Right-BICEP软件单元测试
  17. 你未来的职业规划是什么?
  18. Git分布式版本控制遇到的问题如何把本地的项目上传到码市上
  19. 解Invalid character found in the request target.
  20. Maven配置nexus私服地址

热门文章

  1. Linux运维工程师笔试题系列6(30题)
  2. 洪水填充算法_洪水填充算法分析
  3. 把Ubuntu主机加入Window工作组
  4. Python 批量提取 Word 中表格内容,一键写入 Excel
  5. 网页上显示天气预报信息的代码(将代码拷贝到你的网页上即可,当然,天气预报只能在联网的情况下才能使用)
  6. Excel表格如何快速隔行填充指定颜色
  7. 20169220 网络攻防实践 第二周学习总结
  8. 今日知识资源干货分享
  9. 刀片服务器的机箱显示器,刀片服务器机箱如何配置网络交换器端口
  10. Beyond compare 全红问题解决