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

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

时间:2023-07-28 20:13:23浏览次数:32  
标签:fit 百度网 内附 transform train test 字典 orient 决策树

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

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

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

实现思路:
    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:该随笔是作者一边学习一边写的,里面有一些自己的拙见,如果有错误或者哪里可以改正的话,还请大家指出并批评改正!)

标签:fit,百度网,内附,transform,train,test,字典,orient,决策树
From: https://www.cnblogs.com/zrold/p/17588754.html

相关文章

  • 城镇职工可自行变更定点医院,内附操作指南~
    转载自:https://mp.weixin.qq.com/s/om_cphVQW826PWm9GdVO6Q    改 定 点     本市城镇职工参保人可自行变更医保定点医院 WORK 城镇职工参保人员首次参保后,在选择自己的定点医院时可以选择4家医院。 此外,本市所有定点中医医院、定点专科......
  • 决策树插件——TreePlan Excel plugin学习指导
    决策树是一种常用的风险型决策工具,它能够帮助人们在不确定性和风险环境下做出合理的决策。决策树通过模拟决策过程,以树状结构呈现不同决策路径和结果,并通过计算风险与收益之间的权衡来选择最优的决策方案。决策树的优势在于它能够清晰地展示各种决策选项以及每个选项下可能的结果......
  • PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素
    原文链接:http://tecdat.cn/?p=24346最近我们被客户要求撰写关于用户流失数据挖掘的研究报告,包括一些图形和统计输出。在今天产品高度同质化的品牌营销阶段,企业与企业之间的竞争集中地体现在对客户的争夺上“用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客户。但是企......
  • 基于mnist手写数字数据库识别算法matlab仿真,对比SVM,LDA以及决策树
    1.算法理论概述      基于MNIST手写数字数据库识别算法,对比SVM、LDA以及决策树。首先,我们将介绍MNIST数据库的基本信息和手写数字识别的背景,然后分别介绍SVM、LDA和决策树的基本原理和数学模型,并对比它们在手写数字识别任务中的性能。 1.1、MNIST手写数字数据库   ......
  • SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为
    全文链接:http://tecdat.cn/?p=32118最近我们被客户要求撰写关于电商购物网站的用户行为的研究报告,包括一些图形和统计输出。假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢? ( 点击文末“阅读原文”获取完整文档、数据 )这个功能在很多电商类网站都有,那么,通过SQLS......
  • R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
    原文链接:http://tecdat.cn/?p=23344最近我们被客户要求撰写关于信用卡违约分析的研究报告,包括一些图形和统计输出。本文中我们介绍了决策树和随机森林的概念,并在R语言中用逻辑回归、回归决策树、随机森林进行信用卡违约数据分析决策树是由节点和分支组成的简单树状结构。根据每......
  • IDM百度网盘加速下载方法
    步骤1:安装用户脚本管理器网址:如何安装用户脚本(greasyfork.org)步骤2:安装百度网盘千千下载助手网址:百度网盘千千下载助手(greasyfork.org)步骤3:下载IDMIDM下载地址:IDM_v6.38.7.2.rar-蓝奏云(lanzouw.com)配置IDM千千助手教程(qianqian.club)百度网盘提速下载......
  • windows 教你如何导出百度网盘详细目录结构-超详细的
    百度网盘大家都在用,有时候希望把自己的文件目录结构给导出来,能形成一个文件树的形式,无奈网上找了好多资料都无果,大多数说的是在浏览器里控制台下,那个方法已经不适用,而且只能导出一级目录,求人不如求己,无奈之下决定自己动手丰衣足食,下面小编手把手教你怎么把百度云网盘里的文件目录机......
  • 让百度网盘下载速度变快
    本次需要的两个东西如下:百度网盘7.24版本(重点)CheatEngine7.5版本及以下这种方法的原理就是把倍数下载文件,如同倍数播放视频一样,表面内容没变,进度条倍数播放;表面的下载速度没变,但文件已经倍速下载。提示:这方法重点是7.24版本的百度网盘(听说7.24以下的版本也行,本人没试过......
  • 【视频】决策树模型原理和R语言预测心脏病实例
    全文链接:https://tecdat.cn/?p=33128原文出处:拓端数据部落公众号分析师:YudongWan决策树模型简介决策树模型是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。与传统的线性回归模型不同,决......