1.泰坦尼克号生还预测 准备工作

泰坦尼克号生还预测是一个非常典型的联系项目。数据集是公开数据集。

1.1 环境准备

numpy=1.14.5

pandas=0.22.0

sklearn=0.19.2

seaborn=0.7.1

matplotlib=2.1.2

keras=2.1.6

1.2数据读取

(1)提前准备好titanic_dataset.csv文件,

准备好特征xtrain和标签ytrain数据

import numpy as np
import pandas as pd
feature=pd.read_csv('titanic_dataset.csv')
y_train=feature['Survived']
x_train=feature.drop('Survived',axis=1)print(x_train.shape)
print(feature.head())

(2)通过shape属性可以查看xtrain数据的维度

通过featurn.head()可以查看前五条数据

(3)通过describe()方法可以得到,包括均值,中值,方差,最大最小等统计描述

通过info()方法得到,

print(feature.describe())
print(feature.info())

通过info()方法得到,每列的统计特性,特别是可以看出前四个属性不同于其他都是1309个值,说明这四个属性是有nan缺失值的,下一步对不同类型的缺失值进行处理。

1.3缺失值处理

(1)使用x_train.isnull().sum统计缺失值,结果如下如,说明前面4列均有缺失,但是要具体问题具体分析

(1)Age字段,操作方法如下:

从sns可视化age数据可以看出来,age是服从正态分布,因此可以使用中值进行替换。

#使用seaborn进行可视化处理
import seaborn as sns#print(sns.distplot.__doc__)
#Age直接去掉缺失值
sns.distplot(x_train['Age'].dropna(),hist=True,kde=True)
#以中值替换
x_train['Age'].replace(np.nan,np.nanmedian(x_train['Age']),inplace=True)

(2)Cabin字段:缺失值比较多,直接去掉
x_train.drop("Cabin",axis=1,inplace=True)

(3)Embarked字段:由于Embarked表示乘船的港口,是字符型,缺失值比较少,填补
#可以填最多.
#由countplot函数 可以得到可以得到 最多的是‘s’因此 空缺项填s

#sns.countplot(x='Embarked',data=x_train)

x_train['Embarked'].replace(np.nan,'S',
       inplace=True)
(4)Fare字段 只有一个缺失值,查看分布可知,没有什么规律,
'''
1)查询是哪条数据的票价信息欠缺,查看数据
2)查询信息Pclass=3,Embarked=“s”的数据,并返回DataFrame对象
3)讲缺失信息填为查询到信息的中值
'''

(5)sex字段 进行替换  male--1   female--0

x_train.drop("Cabin",axis=1,inplace=True)#处理Embarked字段:由于Embarked表示乘船的港口,是字符型,缺失值比较少,填补
#可以填最多.
#由countplot函数 可以得到可以得到 最多的是‘s’因此 空缺项填s#sns.countplot(x='Embarked',data=x_train)x_train['Embarked'].replace(np.nan,'S',inplace=True)#处理Fare只有一个缺失值,查看分布可知,没有什么规律,
'''
(1)查询是哪条数据的票价信息欠缺,查看数据
(2)查询信息Pclass=3,Embarked=“s”的数据,并返回DataFrame对象
(3)讲缺失信息填为查询到信息的中值
'''
print(x_train.isnull().sum())#sns.countplot(x='Fare',data=x_train)print(x_train[np.isnan(x_train['Fare'])])
pclass3_fares=x_train.query('Pclass==3 & Embarked=="S"')pclass3_fares=pclass3_fares['Fare'].replace(np.nan,0)median_fare=np.median(pclass3_fares)
print(median_fare)x_train.loc[x_train['PassengerId']==1044,'Fare']=median_fare
#print(x_train.isnull().sum())
#结果可知没有缺失值#对于sex字段 进行替换  male--1   female--0
x_train['Sex'].replace(['male','female'],[1,0],inplace=True)
#print(x_train.head())

下图是对Embarked的统计,可以看出"s"港口上船的人最多,此时缺失值填写“S”。

1.4 训练数据和预测数据

#数据清洗与分割
print(x_train.shape)
x_train=pd.get_dummies(x_train)#类似于one hot编码
print(x_train.shape)#数据清洗  训练:测试=8:2 shuffle=True表示进行清洗数据
from sklearn.model_selection import train_test_split
#print(train_test_split.__doc__)train_x,test_x,train_y,test_y=train_test_split(x_train,y_train,train_size=0.8,random_state=42,shuffle=True)print("train_x,test_x,train_y,test_y,shape is:\n{}\n{}\n{}\n{}\n".format(train_x.shape,test_x.shape,train_y.shape,test_y.shape)

2. 决策树模型

2.1创建决策树模型

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import metrics#创建模型
model=DecisionTreeClassifier()
model.fit(train_x,train_y)

2.2 预测与计算精度

#预测结果
#预测训练集
train_pre=model.predict(train_x)
test_pre=model.predict(test_x)#计算预测精度
train_acc=accuracy_score(train_y,train_pre)
test_acc=accuracy_score(test_y,test_pre)
print('train_acc:%f\n,test_acc:%f'%(train_acc,test_acc))

最后得到:

2.3  ROC

#计算ROC
y_score_dt=model.predict_proba(test_x)fp,tp,thresholds=metrics.roc_curve(test_y,y_score_dt[:,1])
print(fp,tp)
auc_score=metrics.roc_auc_score(test_y,y_score_dt[:,1])
print(auc_score)

2泰坦尼克号生还预测 四种不同方法相关推荐

  1. python数据对比找不同_利用Python读取文件的四种不同方法比对

    利用Python读取文件的四种不同方法比对 大家都知道Python 读文件的方式多种多样,但是当需要读取一个大文件的时候,不同的读取方式会有不一样的效果.下面就来看看详细的介绍吧. 场景 逐行读取一个 ...

  2. Kaggle实战入门:泰坦尼克号生还预测(基础版)

    Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 泰坦尼克号(Titanic),又称铁达尼号,是当时世界上体积最庞大.内部设施最豪华的客运轮船, ...

  3. Kaggle实战入门:泰坦尼克号生还预测(进阶版)

    Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 Kaggle实战入门:泰坦尼克号生还预测(基础版)对机器学习的全流程进行了总体介绍.本文继续以 ...

  4. 头哥教学平台-泰坦尼克号生还预测

    第2关 填充缺失值 import pandas as pd import numpy as npdef process_nan_value(data):'''处理data中缺失值,有缺失值的特征为`A ...

  5. OC中字符串的提取与替换-四种不同方法实现

    /*1.将可变字符串 @"When I was young, I loved a girl in neighbor class."中,从 young提取到girl.替换 成@&qu ...

  6. 泰坦尼克号沉船生还预测

    在前面的几篇文章中,笔者陆续介绍了几种决策树的生成算法以及常见的集成模型.接下来在这篇文章中,笔者将以泰坦尼克号生还预测(分类)为例来进行实战演示:并且还会介绍相关的数据预处理方法,例如缺失值填充和类 ...

  7. DL之DNN:自定义MultiLayerNet(5*100+ReLU+SGD/Momentum/AdaGrad/Adam四种最优化)对MNIST数据集训练进而比较不同方法的性能

    DL之DNN:自定义MultiLayerNet(5*100+ReLU+SGD/Momentum/AdaGrad/Adam四种最优化)对MNIST数据集训练进而比较不同方法的性能 目录 输出结果 设计思 ...

  8. 【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测

    [阿旭机器学习实战]系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流. 本文用机器学习中的决策树分类模型对泰坦尼克号生存项目进行预测. 关于决策树的详细介绍及原理参见前一 ...

  9. 'python program'.count('p')的值是_如何用Python分析泰坦尼克号生还率?

    原标题:如何用Python分析泰坦尼克号生还率? 1912年当时世界上最大的豪华客轮泰坦尼克号在处女航中撞上冰山沉没,船上船员及乘客共有2224人,只有710人生还.当灾难突然降临时,所有人的生死瞬间 ...

最新文章

  1. 如何在Django中进行调试,好方法? [关闭]
  2. 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型
  3. boost::push_relabel_max_flow用法的测试程序
  4. idc服务器管理系统勇士水花,idc管理系统
  5. vmware 蓝屏_网络安全小百科--利用微软CVE 2019-0708漏洞让对方系统蓝屏死机
  6. struts2 页面取值_Struts2页面取值 大总结
  7. 字节大牛耗时八个月又一力作,原理+实战讲解
  8. 2.重新安装CM服务
  9. Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法
  10. ansys icem cfd网格划分技术实例详解_详解航空燃油滑油3D打印热交换器设计流程...
  11. Centos6.3下Ganglia3.6.0安装配置
  12. 使用mapReduce分析简单天气数据
  13. linux酷q运行不了,Linux上使用docker运行酷Q机器人
  14. php探针教程,php探针程序的推荐
  15. luac 格式分析与反编译
  16. TFS2010新建项目失败
  17. Codeforces407C Curious Array
  18. 字节跳动后端面经(18)
  19. 启发式搜索A*算法【引入及思想】
  20. Sublime Text 3中文包安装

热门文章

  1. CListCtrl控件使用指南(大全)
  2. 给C语言添加花指令,抵御反汇编
  3. Python3 通过字典的get()方法和setdefault()方法添加映射多个值的元素(用列表和集合实现)
  4. 怎么关闭win10虚拟机服务器,Win10系统hyper-v虚拟机如何关闭?这三种方法麻烦收好...
  5. 实验 15 交换机基本配置
  6. 【惊呆】《精灵宝可梦Go》游戏迷的疯狂行为
  7. 【软考高项笔记】第1章 信息化发展1.4 数字中国
  8. EntityFramwork6连接MySql错误
  9. Cytoscape网络可视化 | 以WGCNA结果的网络可视化为例
  10. Java选择题日常记录——Day1—Day15