用决策树或随机森林解决泰坦尼克号乘客生存预测(内附数据集百度网盘)

这篇具有很好参考价值的文章主要介绍了用决策树或随机森林解决泰坦尼克号乘客生存预测(内附数据集百度网盘)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 实现该模型的训练要用到的主要算法和实现思路是

"""
项目:泰坦尼克号乘客生存预测

主要算法:决策树\随机森林

实现思路:
    1、导包
    2、读取数据
    3、对数据进行基本处理
    4、特征工程
    5、决策树预估器流程
    6、模型评估
"""

 

首先的首先当然是导包啦

# 1、导包

import pandas as pd # 读取文件用的 from sklearn.feature_extraction import DictVectorizer # 用来进行字典特征抽取 from sklearn.tree import DecisionTreeClassifier #决策树 from sklearn.model_selection import GridSearchCV # 网格搜索和CV(交叉验证) from sklearn.ensemble import RandomForestClassifier # 随机森林

 

然后就是读取文件里面的数据进来了

# 2、读取数据

train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') y_test = pd.read_csv('gender_submission.csv')

数据集下载:百度网盘

  链接:https://pan.baidu.com/s/1slaouE4Es37U8u0U-kDJnw
  提取码:ss5o

 

接着是进行对数据进行基本的处理了,以下是作者的处理方法:

第一步是把多余的特征去除,选取出有用的特征,作者认为,在数据集里面有用的有"Pclass","Age","Sex"三个,所以我对它进行提取出来

# 3、对数据进行基本处理


# 1)选取有用的数据 x_train = train[["Pclass","Age","Sex"]] y_train = train["Survived"] x_test = test[["Pclass","Age","Sex"]]

第二步是把缺失值给填充为平均值。对于缺失值有两种处理方式,一是如果该特征不重要,直接删除便是,二是填充平均值或众数

# 2)缺失值处理:用平均值填充
x_train["Age"].fillna(x_train["Age"].mean(),inplace=True)
x_test["Age"].fillna(x_train["Age"].mean(),inplace=True)

# .fillna()是用来把括号里的值填充进空值里,里面的inplace是决定是否要在自身进行修改
# .mean()是取到其平均值

第三步是把数据转化成字典类型

# 3)转换成字典
x_train = x_train.to_dict(orient="records")
x_test = x_test.to_dict(orient="records")

“““
orient 控制的是转换成的字典的形式 orient
=‘dict’,是函数默认的,转化后的字典形式:{column(列名) : {index(行名) : value(值) )}}; orient =‘list’ ,转化后的字典形式:{column(列名) :{[ values ](值)}}; orient =‘series’ ,转化后的字典形式:{column(列名) : Series (values) (值)}; orient =‘split’ ,转化后的字典形式:{‘index’ : [index],‘columns’ :[columns],’data‘ : [values]}; orient =‘records’ ,转化后是 list形式:[{column(列名) : value(值)}…{column:value}]; orient =‘index’ ,转化后的字典形式:{index(值) : {column(列名) : value(值)}}; ”””

 

下一步是进行特征工程,把数据处理成计算机能看懂的鸭子

# 4、特征工程

# 1)实例化两个转换器 transfer = DictVectorizer()
# 2)使用转换器
x_train = transfer.fit_transform(x_train) x_test = transfer.transform(x_test) “““ 注:以上x_test是用transform方法,是应为fit_transform方法实际上可以分为两个方法,   一个是fit,一个是transform,fit是用来计算数据的标准差和平均数,transform是用来   转化数据的,在第一次使用fit_transform时,transfer里面已经通过fit得到了x_train   的标准差和平均值了,为了数据标准化更加真实,所以x_test也要用一样的标准差和平均值,   这就是x_test使用transform的原因 ”””

 

最后就是使用决策树算法了

# 5、决策树预估器流程


# 实例化预估器
es = DecisionTreeClassifier(criterion="entropy")

# 添加网格搜索和CV
es = GridSearchCV(es,param_grid={"max_depth":[1,2,3,4,5,6,7,8,9]},cv=3)


# 6、模型评估



# 使用预估器
es.fit(x_train, y_train)


# 查看准确率
print(es.score(x_test, y_test["Survived"]))

# 查看最佳数据
print("最佳深度:",es.best_params_)
print("最佳成绩:",es.best_score)

 

 

另外一个就是也可以用随机森林的算法

# 5、随机森林预估器流程


# 使用随机森林进行解决
est = RandomForestClassifier()

# 添加网格搜索和CV
est = GridSearchCV(est,param_grid={"n_estimators":[10,20,40,80,160,320,640,1280]},cv=3)

# 使用
est.fit(x_train, y_train)


# 6、模型评估




# 查看准确率
print(est.score(x_test, y_test["Survived"]))

# 查看最好参数
print("最好的树数量:",est.best_params_)
print("最佳成绩:",est.best_score_)

 

如此下来,我们便完成了一个关于泰坦尼克号乘客生存预测的模型辣!

(ps:该随笔是作者一边学习一边写的,里面有一些自己的拙见,如果有错误或者哪里可以改正的话,还请大家指出并批评改正!)文章来源地址https://www.toymoban.com/news/detail-610024.html

到了这里,关于用决策树或随机森林解决泰坦尼克号乘客生存预测(内附数据集百度网盘)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 泰坦尼克号乘客生存情况预测分析2

    泰坦尼克号乘客生存情况预测分析1 泰坦尼克号乘客生存情况预测分析2 泰坦尼克号乘客生存情况预测分析3 泰坦尼克号乘客生存情况预测分析总 Titanic数据集在数据分析领域是十分经典的数据集,非常适合刚入门的小伙伴进行学习! 泰坦尼克号轮船的沉没是历史上最为人熟知

    2024年04月27日
    浏览(22)
  • 泰坦尼克号可视化数据分析报告

    上一节已经用用逻辑回归算法预测泰坦尼克号人员存活情况,但是不了解什么样的人容易存活;因此,用数据分析方法继续探究数据背后隐藏的秘密,并用数据可视化方法展示出来。 目录 提出问题 理解数据 采集数据 导入数据 查看数据 数据清洗 数据处理 幸存率与家庭类别

    2024年02月11日
    浏览(43)
  • 【机器学习kaggle赛事】泰坦尼克号生存预测

    目录 写在前面  数据集情况查看 数据清洗 Embarked: Fare Age Cabin  特征工程 1,探究Sex与Survived的相关性  2,探究Pcalss与Survived的关联性  3,Embarked:不同的上船地点对生存率是否有影响  ​4,Name与Survived的相关性  5,Cabin与Survived之间的相关性 6,探究孤身一人和有家人陪伴的

    2023年04月23日
    浏览(36)
  • Kaggle实战入门:泰坦尼克号生还预测(进阶版)

    Kaggle实战入门:泰坦尼克号生还预测(基础版)对机器学习的全流程进行了总体介绍。本文继续以泰坦尼克号生还预测为例,对机器学习中的特征工程、模型构建进行深入解读。 数据集及代码下载 由于针对训练数据集、测试数据集均要做空值填充、编码转换、离散化、归一

    2024年02月02日
    浏览(29)
  • 深度学习项目:泰坦尼克号生存预测【附完整源码】

    数据处理 建立模型 训练模型 评估模型 模型预测 保存模型 数据文件: 2.1 泰塔尼克号数据 数据描述: RMS 泰坦尼克号的沉没是历史上最为人熟知的海难事件之一。 1912 年 4 月 15 日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在船上的 2224 名乘客和机组人员中,共造

    2024年02月09日
    浏览(40)
  • 基于用Hive泰坦尼克号乘客信息存储与分析

    实现以下任务: 创建数据库taitan 创建乘客信息表 导入数据到表中 统计获救与死亡情况 统计舱位分布情况 统计港口登船人数分布情况 统计性别与生存率的关系 统计客舱等级与生存率的关系 统计登船港口与生存率的关系 1.创建一个内/外部表,指定数据的存放路径。 (1)创建

    2024年02月06日
    浏览(35)
  • 深度学习之构建MPL神经网络——泰坦尼克号乘客的生存分析

          大家好,我是带我去滑雪!       本期使用泰坦尼克号数据集,该数据集的响应变量为乘客是生存还是死亡(survived,其中1表示生存,0表示死亡),特征变量有乘客舱位等级(pclass)、乘客姓名(name)、乘客性别(sex,其中male为男性,female为女性)、乘客年龄(ag

    2024年02月05日
    浏览(32)
  • 泰坦尼克号沉船数据分析与可视化、数据建模与分类预测【Python | 机器学习-Sklearn】

    前言:泰坦尼克号,不只是卡梅隆导演的经典电影,它是一个真实存在的悲剧,也是电影的故事背景与题材。作为一个IT人,分析事实还得看数据,了解到泰坦尼克号沉船幸存者多为老人、小孩和妇女,而牺牲者多为年轻的男士,这样的历史数据,让我感受到了人性之美与善

    2024年02月02日
    浏览(37)
  • 决策树与随机森林

    决策树是一种用于分类和回归的模型,是一种有监督的机器学习算法,可用于分类和回归问题。树回答连续的问题,这些问题使我们在给出答案的情况下沿着树的某个路线前进。 当构建决策树时,我们知道变量使用哪个变量和哪个值来拆分数据,从而快速预测结果。 易于解

    2024年02月06日
    浏览(44)
  • 三、决策树 四、随机森林

    1)什么是决策树 2)决策树模型原理 3.构建决策树的目的 4)决策树的优缺点 1)常用的特征选择有信息增益、信息增益率、基尼系数 2)基于信息增益的ID3算法 3)基于信息增益率的C4.5算法 4)基于Gini系数的CART算法 5)CART树连续变量与离散变量的处理 6)不同决策树算法的比

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包