kaggle入门之泰坦尼克幸存预测

#

数据集什么的就不介绍了,官网上都有

主要的工作步骤

1.提出和定义问题
2.获取训练和测试数据
3.获取,准备和清洗数据
4.分析,识别,探究数据
5.建模,预测并解决wenti
6.可视化,报告和解决
7.应用和提交结果

数据分析和整理

#数据分析整理
# 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

导入数据

python的pandas包帮助我们处理数据,我们将训练集合测试集导入成pandas的数据形式,联结在一块。

train_df = pd.read_csv('../input/train.csv')
test_df = pd.read_csv('../input/test.csv')
combine = [train_df, test_df]

通过描述数据进行分析

下面的操作都是利用pandas处理的

数据集中有哪些特征是我们可以利用的

首先打印第一列的名称,也就是各个特征的名称

print(train_df.columns.values)

输出

['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch''Ticket' 'Fare' 'Cabin' 'Embarked']

这些特征的具体定义和数据类型范围参考这个网页
https://www.kaggle.com/c/titanic/data

哪些特征可以帮助分类

这些特征可以将样本分为很多类。是基于特征的比例还是具体值还是什么分类呢?我们将一些东西可视化用来研究

可以分类的特征有::Survived, Sex, and Embarked 序号特征: SibSp, Parch

首先我们看看训练数据是什么样子

# preview the data
train_df.head()

输出
img1

哪个特征是混合数据类型?

Ticket是字母和数字的组合,Cabin是数字字母

哪些特征包含错误或者错别字?
我们很难一一查看所有的数据集,但是看一部分数据集会帮助我们确定哪些数据可能有问题。

Name feature很有可能是由问题的

train_df.tail()

img2

哪些特征有空值?
这些空值需要被修正
Cabin > Age > Embarked features 在训练集中包含空值,按空值多少排序
Cabin > Age a包含空值,在测试集中

特征都是什么数据类型?
这帮助我们实现目标
7个特征是浮点数或者整数,测试集里面有65个
5个特征是string类型

查看训练集合测试集信息train_df.info()
print('_'*40)
test_df.info()

输出

<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: 83.6+ 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)
memory usage: 36.0+ KB

样本中特征值的分布是什么样子?
这些帮组我们了解更多信息
1.训练集有891个样本,是总乘客数的40%
2.是否存活是一个可分类特征,0死亡,1存活
3.38%的样本存活
4.大多数乘客没有和父母或者孩子一起旅行
5.乘客的花费差别很大,小于1%的乘客花费512美金以上
6.很少有在65-80之间的乘客很少(1%)

train_df.describe()
# Review survived rate using `percentiles=[.61, .62]` knowing our problem description mentions 38% survival rate.
# Review Parch distribution using `percentiles=[.75, .8]`
# SibSp distribution `[.68, .69]`
# Age and Fare `[.1, .2, .3, .4, .5, .6, .7, .8, .9, .99]`

img3

可分类的数据类型的分布?
1.名称在数据集中是唯一的()
2.性别65%的男性
3.船舱有的乘客有重复值,可能有乘客共用一个船舱
4.Embarked 有三个可能的值,s port是最多的
5.Ticket feature

train_df.describe(include=['O'])

输出结果
img4

基于数据分析的假设?
我们基于数据分析得出了一下假设,我们需要进一步验证在采取下一步行动之前。

补全:
1.我们想要补全年龄因为这和是否存活是最相关的
2.补全Embarked

纠错:
1.票价在我们的分析中被舍弃,有太多重复项,并且看起来和是否存活没什么关系
2.Cabin feature 会被舍弃,有太多空值
3.乘客ID和是否存活没关系,我们舍弃
4.乘客名字也舍弃

分类:
根据之前信息完善假设
1.女人更容易存活
2.孩子更容易存活
3.高等仓更容易存活

通过特征分析

为了验证我们的猜想,我们可以快速分析通过分析他们的关系。我们为没有任何空值的特征进行这个操作,所以我们分析sex,Pclass,sibsp这几个特征
Pclass:我们观察到Pclsaa =1和是否存活相关性大于1,所以我们在模型中加入这个特征
Sex:女性有高达74%的生存率
SibSp and Parch:

train_df[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False)

img5

train_df[["Sex", "Survived"]].groupby(['Sex'], as_index=False).mean().sort_values(by='Survived', ascending=False)

img6

kaggle入门之泰坦尼克幸存预测相关推荐

  1. kaggle竞赛:泰坦尼克幸存者预测

    kaggle竞赛:泰坦尼克幸存者预测--(一) import pandas as pd import numpy as np import matplotlib.pyplot as plt impor ...

  2. Kaggle实战:泰坦尼克幸存者预测 - 上

    (文章同步更新于个人博客@dai98.github.io) 源代码: Github Kaggle 泰坦尼克幸存者预测是Kaggle上数据竞赛的入门级别的比赛,我曾经在一年前作为作业参加过这个比赛,我想 ...

  3. Kaggle实战:泰坦尼克幸存者预测 -下

    (文章同步更新于个人博客@dai98.github.io) 源代码:Github 上一篇文章介绍了如何使用深度学习来预测泰坦尼克号幸存者,这一部分使用多分类器投票来做.由于数据预处理部分比较相似,重复 ...

  4. MOOC网深度学习应用开发1——Tensorflow基础、多元线性回归:波士顿房价预测问题Tensorflow实战、MNIST手写数字识别:分类应用入门、泰坦尼克生存预测

    Tensorflow基础 tensor基础 当数据类型不同时,程序做相加等运算会报错,可以通过隐式转换的方式避免此类报错. 单变量线性回归 监督式机器学习的基本术语 线性回归的Tensorflow实战 ...

  5. Kaggle案例之泰坦尼克船员幸存预测(sklearn机器学习库)

    无意间在网易云课堂上找了一个Kaggle案例,泰坦尼克获救船员预测,在此之前我是从没接触过kaggle,毕竟是刚入门的小白,看着视频,算是真正实战了一次,主要是在这个过程中学到了很多东西. 下面视频地 ...

  6. Kaggle案例之泰坦尼克船员幸存预测

    无意间在网易云课堂上找了一个Kaggle案例,泰坦尼克获救船员预测,在此之前我是从没接触过kaggle,毕竟是刚入门的小白,看着视频,算是真正实战了一次,主要是在这个过程中学到了很多东西.  下面视频 ...

  7. kaggle 泰坦尼克 高分 预测

    kaggle 泰坦尼克 高分 预测 目录 kaggle 泰坦尼克 高分 预测 1.前言 2.包及数据导入 3.数据的初步认识 4.数据关系的可视化 5.数据清洗与缺失值处理 6.数据的统计分析 7.超 ...

  8. 从零开始,手把手,一文kaggle竞赛速度入门! 泰坦尼克

    从零开始,手把手,一文kaggle竞赛速度入门! 泰坦尼克 1. 前言 2. 如何开始kaggle竞赛 2.1进入网站注册账号 2.2进入到比赛界面 2.3了解项目 3. 数据导入与预处理 4. 训练 ...

  9. kaggle房价预测特征意思_机器学习-kaggle泰坦尼克生存预测(一)-数据清洗与特征构建...

    1.背景: 1.1 关于kaggle: 谷歌旗下的 Kaggle 是一个数据建模和数据分析竞赛平台.该平台是当下最流行的数据科研赛事平台,其组织的赛事受到全球数据科学爱好者追捧. 如果学生能够在该平台 ...

最新文章

  1. NM-CIDS测试经历
  2. the fair-sounding
  3. 14.基于Hadoop的数据仓库Hive第1部分
  4. 凭证 90000000 保存(帐户确定出错)
  5. echart多个柱状图 设置y轴显示_Origin神教程:柱状图还是2D的吗?也没有误差棒?...
  6. Python3基础 if __name__ == '__main__'
  7. leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)
  8. 各种编程语言的按钮输入框
  9. 为什么只读文件系统_xfs 只读共享盘的数据不一致问题
  10. EF Core 实现读写分离的最佳方案
  11. 1592E - Скучающий Бакри
  12. oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
  13. github private链接访问_如何将Jenkins链接到私有Github存储库?
  14. ubuntu升级python_Ubuntu 系统下可以做什么?——拥抱自由和安静
  15. linux服务媒体,安装和使用Jellyfin配置Linux媒体服务器
  16. 数据结构与算法:实验一线性表(字符串分类统计)
  17. hibernate版本_Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)
  18. wireshark(2)- ethernet工具 xcap wireshark tcpdump
  19. 【娜家花园养花小记】
  20. 基于cooja的RPL OF的修改与仿真

热门文章

  1. CentOS7出现 Detected CPU family 6 model 165 stepping 3
  2. android如何实现微信功能吗,android 借助AccessibilityService实现模拟点击功能-微信助手(一)...
  3. 厉害了word哥!这款国产主板品牌强势登陆韩国
  4. ORACLE中行转列
  5. 洛谷 P2168 荷马史诗(抄)
  6. 京东项目案例操作日志
  7. 手游为什么老被攻击?手游DDOS防护方法
  8. 白酒企业数字化转型怎么做?酒类招商加盟营销系统功能有哪些?
  9. JavaScript(关于变量及数据类型的使用)
  10. 微信或许已经不再克制了