Titanic(泰坦尼克号生存预测)---(1)
我是初学者哈,有问题欢迎大家指出。一起加油,共同进步!
关于数据以及代码:
# data analysis and wrangling
import pandas as pd
import numpy as np
import random as rnd# visualization
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline# machine learning
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
读取数据
train_df = pd.read_csv('data/泰坦尼克号生存率/train.csv')
test_df = pd.read_csv('data/泰坦尼克号生存率/test.csv')
combine = [train_df, test_df]
#特征属性值以及前五个数据样本
print(train_df.columns.values)
train_df.head()
# 查看数据集的缺失情况
train_df.info()
print('_'*50)
test_df.info()
out:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 66.2+ KB
__________________________________________________
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 418 entries, 0 to 417
Data columns (total 11 columns):
PassengerId 418 non-null int64
Pclass 418 non-null int64
Name 418 non-null object
Sex 418 non-null object
Age 332 non-null float64
SibSp 418 non-null int64
Parch 418 non-null int64
Ticket 418 non-null object
Fare 417 non-null float64
Cabin 91 non-null object
Embarked 418 non-null object
dtypes: float64(2), int64(4), object(5)
得到结论:
数据缺失情况:
对于训练数据:cabin信息缺失很多,age部分缺失,再是embarked少量缺失
对于测试数据:cabin>age
数据类型:
7+5
6+5
对缺失数据进行处理
缺失数据处理方法
先看缺失值最少的embarked:
# 因为只缺少两个值,因而大部分方法都可以使用,从简,直接插入出现频率最高的值
freq_port = train_df.Embarked.dropna().mode()[0]# 得到出现频率最高的特征值
freq_port
for dataset in combine:dataset['Embarked'] = dataset['Embarked'].fillna(freq_port)#当该特征值为空值时,插入出现频率最高的值train_df.info()
train_df[['Embarked', 'Survived']].groupby(['Embarked'], as_index=False).mean().sort_values(by='Survived', ascending=False)
#根据Embarked进行分类,并计算出其与是否生存的关系,或者说是每个港口的存活率。
根据输出值,可以得出Embarked已经完全填补,而且c港口的生存概率最高
out:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 891 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 66.2+ KBEmbarked Survived
0 C 0.553571
1 Q 0.389610
2 S 0.339009
年龄采用均值插补法
age_mean=dataset['Age'].mean()
age_meanfor dataset in combine:dataset['Age'] = dataset['Age'].fillna(age_mean)train_df.info()
train_df[['Age', 'Survived']].groupby(['Age'], as_index=False).mean().sort_values(by='Survived', ascending=False)
cabin可以直接丢弃
- 缺失数据过大
- 该特征值与存活率相关不大
train_df = train_df.drop(['Name', 'PassengerId'], axis=1)
test_df = test_df.drop(['Name'], axis=1)combine = [train_df, test_df]
train_df.shape, test_df.shapetest_df = test_df.drop(['Ticket','Cabin'], axis=1)
train_df = train_df.drop(['Ticket','Cabin'], axis=1)
combine = [train_df, test_df]
train_df.shape, test_df.shape
#train_df.head()
将数据规格化
对于
Titanic(泰坦尼克号生存预测)---(1)相关推荐
- Kaggle经典数据分析项目:泰坦尼克号生存预测!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈锴,中山大学,Datawhale成员 最近有很多读者留言,希望能 ...
- 【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
[阿旭机器学习实战]系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流. 本文用机器学习中的决策树分类模型对泰坦尼克号生存项目进行预测. 关于决策树的详细介绍及原理参见前一 ...
- Kaggle泰坦尼克号生存预测挑战——模型建立、模型调参、融合
Kaggle泰坦尼克号生存预测挑战 这是kaggle上Getting Started 的Prediction Competition,也是比较入门和简单的新人赛,我的最好成绩好像有进入top8%,重新 ...
- 泰坦尼克号生存预测(多种模型实现)python
泰坦尼克号生存预测 这是kaggle上面比较入门的一个比赛.今天让我们来看看怎么做吧.kaggle传送门.首先报名,下载数据集. 数据载入及概述 首先导入从Kaggle上面下载的数据集,在导入的过程中 ...
- Kaggle泰坦尼克号生存预测挑战——数据分析
Kaggle泰坦尼克号生存预测挑战 这是kaggle上Getting Started 的Prediction Competition,也是比较入门和简单的新人赛,我的最好成绩好像有进入top8%,重新 ...
- 机器学习实战一:泰坦尼克号生存预测 Titantic
泰坦尼克号生存预测 Titantic 这是我在kaggle上找到的一个泰坦尼克号的生存的预测案例 希望能用它来进行我的学习与实践,从这里开始入门Machine Learning 也希望在这里,开始我的 ...
- 机器学习实战-泰坦尼克号生存预测案例
泰坦尼克号生存预测案例 操作平台:Jupyter Notebook 实验数据:从官方下载的泰坦尼克号测试集与训练集 使用语言:python 实验步骤: 安装我们所需要的第三方库,本次实验需要额外下载安 ...
- Kaggle经典数据分析项目:泰坦尼克号生存预测!1. 数据概述与可视化2. 数据预处理3. 模型训练4. 模型优化(调参)
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习 ,不错过 Datawhale干货 作者:陈锴,中山大学,Datawhale成员 最近有很多读者留言,希望 ...
- 33题实战“泰坦尼克号生存预测”全流程
33题实战"泰坦尼克号生存预测"全流程 点击以上链接
- 【机器学习kaggle赛事】泰坦尼克号生存预测
目录 写在前面 数据集情况查看 数据清洗 Embarked: Fare Age Cabin 特征工程 1,探究Sex与Survived的相关性 2,探究Pcalss与Survived的关联性 3,Em ...
最新文章
- XXL-RPC v1.3.2,分布式服务框架
- COMMAND 模式
- java导出highcharts_java实现highcharts导出图片至excel
- 页面缩放android浏览器,适用于所有移动浏览器的完整网页和禁用的缩放视口元标记...
- “HTTP 500 - 内部服务器错误”解决办法
- 异地备份同步校验脚本
- C语言求最大公约数与最小公倍数
- struts2.2.1.1 类型转换问题 (传递Date类型参数)
- 干货-iOS、mac开源项目及库,以后我也会持续更新。
- MFC小笔记:滑动条与编辑框
- 网络丢包诊断与分析的现实与理想
- 深化创客教育,用人工智能创造艺术
- golang 安装 guru vscode 安装失败
- api 微信小程序组件库colorui_微信小程序入门ColorUI组件库使用方法
- Luogu3834 【模板】可持久化线段树 1(主席树)
- MVC3.0 开发过程中遇到错误及解决方案(不断更新中。。。)
- 定额中计算机主机工作内容,计算机核定定额的业务操作指引.doc
- CS5463代码模块解析(包含下载链接)
- 淘宝Fourinone介绍及与Hadoop的性能PK
- python国际象棋小游戏代码_用Python编写一个国际象棋AI程序
热门文章
- 作者:赵文明(1977-),男,中国科学院北京基因组研究所生命与健康大数据中心高级工程师...
- 《大数据》2015年第3期“研究”——社交网络影响力传播研究(下)
- 【软件测试】软件可测试性
- 【Git】从GitHub到本地clone项目慢的解决方法
- 【Java】IntelliJ IDEA 导入JAR包的两种解决方案
- 深入了解jquery中的ajax方法参数
- 阿里云MVP第六期发布——覆盖全球20多个国家和地区,成为数字化转型的中坚力量...
- 初识 JAVA IO
- [转载]带你玩转Visual Studio——带你高效开发
- linux 下使用genymotion