泰坦尼克号预测python_kaggle:泰坦尼克号获救预测_Titanic_EDA##
问题
数据来源于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##相关推荐
- EL之DTRFGBT:基于三种算法(DT、RF、GBT)对泰坦尼克号乘客数据集进行二分类(是否获救)预测并对比各自性能
EL之DT&RF&GBT:基于三种算法(DT.RF.GBT)对泰坦尼克号乘客数据集进行二分类(是否获救)预测并对比各自性能 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核 ...
- ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测
ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 X_train, X_test, y_train, y_te ...
- python泰坦尼克号数据预测_机器学习入门之Python机器学习:泰坦尼克号获救预测一...
本文主要向大家介绍了机器学习入门之Python机器学习:泰坦尼克号获救预测一,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 一.项目概要 1.应用 模式识别.数据挖掘(核心).统计学 ...
- ML之RFXGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)
ML之RF&XGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 比赛结果 设计思路 核心代码 ...
- ML之RFXGBoost:分别基于RF随机森林、XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)
ML之RF&XGBoost:分别基于RF随机森林.XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 ...
- ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测
ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 fs = fea ...
- ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测
ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 初步处理后的 X_train: (984, ...
- 泰坦尼克号生存预测python_用Python预测泰坦尼克生存情况-附数据集
介绍:通过逻辑回归算法,解决kaggle网站上的泰坦尼克生存情况预测问题,准确率在80%左右. 一.提出问题 什么样的人在泰坦尼克号中更容易存活? 二.理解数据 2.1 数据来源 数据来自kaggle ...
- 【机器学习】决策树案例三:利用决策树进行泰坦尼克号事故人员存活分类预测
利用决策树进行泰坦尼克号事故人员存活分类预测 3 利用决策树进行泰坦尼克号事故人员存活分类预测 3.1 导入模块与加载数据 3.2 特征工程 3.3 划分数据 3.4 模型创建与应用 3.5 模型可视 ...
- 集成算法-随机森林与案例实战-泰坦尼克获救预测
集成算法-随机森林 Ensemble learning 目的:让机器学习效果更好,单个不行,群殴走起 Bagging:训练多个分类器取平均 f ( x ) = 1 / M ∑ m = 1 M f m ...
最新文章
- 如何用Python批量提取PDF文本内容?
- [Asp.net MVC]Asp.net MVC5系列——第一个项目
- PHP下的Oauth2.0尝试 - 授权码授权(Authorization Code Grant)
- obj c和java_PKCS1-padding / RSA加密ios objc和java之间的区别
- 在linux上配置unixODBC和FreeTDS访问MS SQL Server.
- JAVA期末简答题参考
- JAVA基础知识之JDBC——JDBC事务处理及批量更新
- 使用Spring Boot和Project Reactor处理SQS消息-第2部分
- Web前端笔记(7)
- mysql jdbc 事务隔离级别_JDBC事务隔离级别,看完这篇文章就够了!
- 远程登录服务器时,提示未被授予终端服务器登录权限?
- Delphi中TEdgeBrowser控件初探
- 基于Matlab/simulink的转速电流双闭环直流调速系统的仿真
- 计算机考研408复习路线,不再让你头大啦
- 基于Tushare量化分析示例
- 软件工程课堂作业(三)——Right-BICEP软件单元测试
- 你未来的职业规划是什么?
- Git分布式版本控制遇到的问题如何把本地的项目上传到码市上
- 解Invalid character found in the request target.
- Maven配置nexus私服地址