泰坦尼克号数据处理与预测
♚
作者:罗罗攀,林学的研究僧。Python中文社区专栏作者,《从零开始学Python网络爬虫》作者。《从零开始学Python数据分析:视频教学版》作者。
之前我们用过传统的机器学习算法预测过泰坦尼克号数据的生还情况,这次我们使用神经网络算法来进行建模。
数据处理
数据情况
这里的数据来源与kaggle上的数据,读者可以自行进行下载,我们通过pandas读取,首先看看数据的基本情况。
import numpy as np
import pandas as pd
data = pd.read_csv('titanic.csv')
data.head()
我们使用的字段有下面几个:
Survived:是否生还
Pclass:船舱等级
Sex:性别
Age:年龄
SibSp:手足和配偶在船上的数量
Parch:双亲和手足在船上的数量
Fare:费用
Embarked:登船港口
我们把这些字段筛选出来。
缺失值处理
首先,我们看看数据的缺失情况。
data.isnull().sum()
这里有两个字段有缺失值,age我们用平均值,embarked我们用最多的值进行填充。
age_mean = data['Age'].mean()
data['Age'] = data['Age'].fillna(age_mean)
data['Embarked'] = data['Embarked'].fillna('S')
性别和embarked
性别需要换成0和1
embarked进行哑变量
data['Sex']= data['Sex'].map({'female':0, 'male': 1}).astype(int)
data = pd.get_dummies(data=data,columns=['Embarked'])
划分数据集
接着我们按0.8划分数据集。
X = data.iloc[:,1:]
Y = data.iloc[:,0]
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=33)
标准化
最后我们把数据进行标准化,这样数据我们就处理完了。
from sklearn import preprocessing
scale = preprocessing.MinMaxScaler()
X_train = scale.fit_transform(X_train)
X_test = scale.transform(X_test)
MLP建模
模型结构
模型结构为:
输入层,也就是9个神经元(对应9个字段)
隐藏层1,40个神经元
隐藏层2,30个神经元
输出层,1个神经元
建立模型
from keras.models import Sequential
from keras.layers import Dense,Dropout
model = Sequential()
model.add(Dense(units=40, input_dim=9,
kernel_initializer='uniform',
activation='relu'))
model.add(Dense(units=30,
kernel_initializer='uniform',
activation='relu'))
model.add(Dense(units=1,
kernel_initializer='uniform',
activation='sigmoid'))
训练模型
model.compile(loss='binary_crossentropy',
optimizer='adam', metrics=['accuracy'])
train_history =model.fit(x=X_train,
y=y_train,
validation_split=0.1,
epochs=30,
batch_size=30,verbose=2)
可以看出模型的精度还是比较高的。
测试
scores = model.evaluate(x=X_test,
y=y_test)
scores[1]
# result 0.804
这样,我们的泰坦尼克号数据预测工作就完成了。
Python中文社区作为一个去中心化的全球技术社区,以成为全球20万Python中文开发者的精神部落为愿景,目前覆盖各大主流媒体和协作平台,与阿里、腾讯、百度、微软、亚马逊、开源中国、CSDN等业界知名公司和技术社区建立了广泛的联系,拥有来自十多个国家和地区数万名登记会员,会员来自以公安部、工信部、清华大学、北京大学、北京邮电大学、中国人民银行、中科院、中金、华为、BAT、谷歌、微软等为代表的政府机关、科研单位、金融机构以及海内外知名公司,全平台近20万开发者关注。
▼ 点击下方阅读原文,免费成为社区注册会员
泰坦尼克号数据处理与预测相关推荐
- Keras神经网络实现泰坦尼克号旅客生存预测
Keras神经网络实现泰坦尼克号旅客生存预测 介绍 数据集介绍 算法 学习器 分类器 实现 数据下载与导入 预处理 建立模型 训练 可视化 评估,预测 结果 代码 介绍 参考资料: 网易云课堂的深度学 ...
- sklearn的随机森林实现泰坦尼克号旅客生存预测
sklearn的随机森林实现泰坦尼克号旅客生存预测 介绍 数据集介绍 算法 学习器 分类器 实现 数据下载与导入 预处理 建立模型 评估,预测 结果 代码 介绍 参考资料: https://wenku ...
- gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...
一.决策树简介 1.1 什么是决策树? 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树. ...
- 1.决策树 实例:泰坦尼克号幸存者的预测
决策树 文章目录 决策树 1.概述 1.1决策树是如何工作的 2 DecisionTreeClassififier与红酒数据集 2.1重要参数 2.1.1 criterion 2.1.2 random ...
- python机器学习之决策树案例——泰坦尼克号幸存者的预测
决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题.决策树算法容易理解,适用各种数 ...
- 泰坦尼克号乘客生存预测
泰坦尼克号乘客获救预测 1. 案例背景 泰坦尼克号沉船事故是世界上最著名的沉船事故之一.1912年4月15日,在她的处女航期间,泰坦尼克号撞上冰山后沉没,造成2224名乘客和机组人员中超过1502人的 ...
- 【决策树算法】泰坦尼克号乘客生存预测
泰坦尼克号乘客生存预测 1. 案例背景 2. 步骤分析 3. 代码实现 4. 决策树可视化 4.1 保存树的结构到dot文件 4.2 网站显示结构 5. 决策树总结 6. 小结 1. 案例背景 泰坦尼 ...
- 泰坦尼克号乘客生存预测(XGBoost)
泰坦尼克号乘客生存预测(XGBoost) 1. 案例背景 2. 步骤分析 3. 代码实现 1. 案例背景 泰坦尼克号沉没是历史上最臭名昭着的沉船之一.1912年4月15日,在她的处女航中,泰坦尼克号在 ...
- 初勘数据处理之预测算法(随机森林random forest)附matlab源码
初勘数据处理之预测算法(随机森林random forest)附matlab源码 集成学习方法 集成学习方法,是整合多个分类方法的预测结果,以提高分类准确率.集成学习方法先用训练数据构建一组基分类器,再 ...
最新文章
- mysql索引优化规则_Mysql优化选择最佳索引规则
- FAT32文件系统结构分析
- YJango的循环神经网络——实现LSTM YJango的循环神经网络——实现LSTM YJango YJango 7 个月前 介绍 描述最常用的RNN实现方式:Long-Short Term Me
- 2018 年 ACM-ICPC 焦作站现场赛感受
- opencv计算两数组的乘积_opencv矩阵运算(2)
- python2.7_1.13_编写一个SNTP客户端
- C++ 虚函数与纯虚函数
- 【渝粤题库】陕西师范大学209010 现代教育战略 作业 (专升本)
- 1.Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server(tomcat突然用不了)...
- excel vba 使用mschart_VBA专题108:使用VBA操控Excel界面之在功能区中添加内置控件...
- python中get函数怎么用_详解python中get函数的用法(附代码)_后端开发
- 手机万能摄像头ip搜索工具_一款 APP,130 多种功能,让你的手机秒变万能工具箱...
- 小米集团招股说明书披露小米专利概况
- 正版饥荒服务器怎么弄,饥荒联机版本地服务器如何创建
- 华为电脑和手机一碰传_华为手机怎么一碰传文件到电脑教程
- opengl 五角星画法 源代码
- sql date_format用法
- WebService使用axis2框架发布服务与获取服务
- 2017最新申请苹果开发者账号,申请appstore开发者账号,申请app开发者账号,申请苹果企业公司开发者账号
- STM32F407ZET6的RTC闹钟二次设置笔记