泰坦尼克号乘客数据查验

import pandas as pd
#利用pandas的read_csv模块直接从互联网收集泰坦尼克号乘客数据
titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
#观察前几行数据,可以发现,数据种类各异,数值型,类别型,甚至还有缺失数据
titanic.head()

#使用pandas,数据都转入pandas独有的dataframe格式(二位数据表格),直接使用info(),查看数据的统计特性
titanic.info()

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 1313 entries, 0 to 1312
Data columns (total 11 columns):
row.names 1313 non-null int64
pclass 1313 non-null object
survived 1313 non-null int64
name 1313 non-null object
age 633 non-null float64
embarked 821 non-null object
home.dest 754 non-null object
room 77 non-null object
ticket 69 non-null object
boat 347 non-null object
sex 1313 non-null object
dtypes: float64(1), int64(2), object(8)
memory usage: 112.9+ KB

使用决策树模型预测泰坦尼克号乘客的生还情况

#特征的选择。根据对这场事故的了解,sex,age,pclass这些特征都有可能是决定幸免的关键因素
x = titanic[['pclass','age','sex']]
y = titanic['survived']
#对当前选择的特征进行探查
x.info()

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 1313 entries, 0 to 1312
Data columns (total 3 columns):
pclass 1313 non-null object
age 633 non-null float64
sex 1313 non-null object
dtypes: float64(1), object(2)
memory usage: 30.9+ KB

#补充age的数据,使用平均数或中位数都是对模型偏离造成最小影响的策略
x['age'].fillna(x['age'].mean(), inplace = True)
#对补完的数据重新探查
x.info()

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 1313 entries, 0 to 1312
Data columns (total 3 columns):
pclass 1313 non-null object
age 1313 non-null float64
sex 1313 non-null object
dtypes: float64(1), object(2)
memory usage: 30.9+ KB

#数据分割
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25,random_state=33)
#使用scikit-learn.feature_extraction中的特征转换器
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=False)
#转换特征后,发现凡是类别型的特征都单独剥离出来,独成一列特征,数值型的则保持不变
x_train = vec.fit_transform(x_train.to_dict(orient = 'record'))
print(vec.feature_names_)

[‘age’, ‘pclass=1st’, ‘pclass=2nd’, ‘pclass=3rd’, ‘sex=female’, ‘sex=male’]

#对测试数据的特征进行转换
x_test = vec.transform(x_test.to_dict(orient = 'record'))
#导入决策树分类器
from sklearn.tree import DecisionTreeClassifier
#使用默认配置初始化决策树分类器
dtc = DecisionTreeClassifier()
#使用分割到的训练数据进行模型学习
dtc.fit(x_train, y_train)

DecisionTreeClassifier(class_weight=None, criterion=‘gini’, max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False, random_state=None,
splitter=‘best’)

#用训练好的决策树模型对测试特征数据进行预测
y_predict = dtc.predict(x_test)
#决策树模型对泰坦尼克号乘客是否生还的预测性能
from sklearn.metrics import classification_report
#输出预测准确性
print(dtc.score(x_test,y_test))

0.7811550151975684

#输出更加详细的分类性能vived
print(classification_report(y_predict, y_test, target_names = ['died', 'survived']))

决策树模型之泰坦尼克号乘客是否生还预测相关推荐

  1. 泰坦尼克号乘客生存情况预测分析之第三部分建模及模型评价

    第三部分建模及模型评价 前面两部分我们已经对泰坦尼克号的数据进行了一些处理,感兴趣的小伙伴可以看看前面两篇文章,本篇主要介绍预测分析的第三部分,也就是建模和模型评价.数据处理完了,接下来就来看看在默认 ...

  2. Python 决策树 泰坦尼克号乘客是否生还决策模型

    与网上的其他内容均一样 import pandas as pd titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Mai ...

  3. 泰坦尼克号乘客生存情况分析第一部分

    第一部分 数据读取及探索性分析 哈喽,各位小伙伴.今晚是平安夜,就先祝大家平安夜快乐,永远平安健康.泰坦尼克号相信很多人都不陌生,今天呢,主要聊一聊之前做过的一个小项目,预测下泰坦尼克号乘客的生存情况 ...

  4. 逻辑回归预测泰坦尼克号乘客生存率

    逻辑回归预测泰坦尼克号乘客生存率 描述 RMS泰坦尼克号的沉没是历史上最臭名昭着的沉船之一.1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502 ...

  5. 机器学习中的特征选择——决策树模型预测泰坦尼克号乘客获救实例

    在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择.属性选择或变量子集选择.它是指:为了构建   模型而选择相关特征(即属性.指标)子集的过程.使用特征选择技术 ...

  6. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...

    一.决策树简介 1.1 什么是决策树? 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树. ...

  7. 泰坦尼克号上的乘客是否生还的预测分析

    1 本文是以<Python机器学习及实践 从零开始通往kaggle竞赛之路>为参考书籍进行的实践 通过随机分类模型以及XGBoost模型进行泰坦尼克号上的乘客是否生还的预测分析 2 实验代 ...

  8. ML之RFXGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 比赛结果 设计思路 核心代码 ...

  9. ML之RFXGBoost:分别基于RF随机森林、XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)

    ML之RF&XGBoost:分别基于RF随机森林.XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 ...

最新文章

  1. Java日志的心路历程
  2. KDTable的列绑定F7控件方法
  3. Maven project deploy to Nexus
  4. Golang 入门笔记(一)
  5. mysql查看已打开文件数_MySQL如何计算打开文件数_MySQL
  6. linux 解决依赖性错误,linux – 由于单模块依赖性,XSP配置失败
  7. PyCharm使用技巧(六):Regullar Expressions的使用
  8. 使用JCache缓存方法结果
  9. Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,
  10. 反射--笔记(第一篇)
  11. Java——File类,递归
  12. 深入浅出JavaScript (四)DHTML
  13. Atitit eclipse新特性总结3.1---4.4  4.5
  14. asp.net打开客户端bartender文件
  15. python 视频转图片
  16. EPLAN中的edz文件的用法
  17. 如何查看网络计算机ip,怎么查ip地址 如何查看(局域网/互联网)本机ip地址
  18. 关于消防设施的RFID资产管理,RFID消防设施资产管理-新导智能
  19. register_chrdev_region、alloc_chrdev_region、register_chrdev区别
  20. 混合云是什么,混合云是怎么工作的?

热门文章

  1. 深度学习——day39 综述——(2019 计算机学报)深度卷积神经网络的发展及其在计算机视觉领域的应用_张顺
  2. 熊猫烧香制造者出狱后开软件公司
  3. 强大好用的python绘图
  4. 嵌入式_常见延时方式的差异与选择(for循环延时、定时器延时、汇编延时....)
  5. 校园宿舍网的搭建及简单原理分析
  6. 大数据毕设系列项目说明 【源码+论文】
  7. leetcode605.种花问题(简单)
  8. Invalid use of argument matchers
  9. Android 迷之Version管理
  10. supervisor php-fpm,如何用supervisor守护php-fpm主进程来实现php-fpm的自动重启