泰坦尼克号幸存者预测

本文所有的代码及数据均存放与https://github.com/MADMAX110/Titanic
泰坦尼克号幸存者预测挑战赛是一个非常受欢迎的机器学习实践项目。这是 Kaggle.com 上最受欢迎的比赛之一。请添加图片描述
数据中有3个文件:train.csv,test.csv,和gender_submit .csv。
train.csv包含一部分乘客的详细信息。
test.csv没有显示是否幸存——这些信息是隐藏的,你需要预测是否幸存。
gender_submit .csv文件是一个示例,你的输出文件格式应该和它一样。
首先遍历一下titianic的所有文件并输出

import numpy as np 
import pandas as pd 
import os
for dirname, _, filenames in os.walk('titanic'):for filename in filenames:print(os.path.join(dirname, filename))

可以看到数据集有三个文件
在这里插入图片描述
再来看一下train.csv的文件结构

train_data = pd.read_csv("titanic/train.csv")
train_data.head()

在这里插入图片描述
再看一下test.csv的文件结构

test_data = pd.read_csv("titanic/test.csv")
test_data.head()

在这里插入图片描述
可以计算一下男人和女人各自的生存率

women = train_data.loc[train_data.Sex == 'female']["Survived"]
rate_women = sum(women) / len(women)
print("% of women who survived:", rate_women)men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men) / len(men)
print("% of men who survived:", rate_men)

使用随机森林算法构建泰坦尼克生存预测模型,并在测试集上得到预测结果。

from sklearn.ensemble import RandomForestClassifier#训练集标签
y = train_data["Survived"]
#特征名
features = ["Pclass", "Sex", "SibSp", "Parch"]
#训练集特征
X = pd.get_dummies(train_data[features])
#测试集特征
X_test = pd.get_dummies(test_data[features])model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
#模型训练
model.fit(X, y)
#在测试集上预测
predictions = model.predict(X_test)#模型训练
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived':predictions})
#在训练集上预测
output.to_csv('result.csv', index=False)

该代码使用随机森林算法构建分类模型,主要步骤为:

  1. 指定训练标签y和特征名features
  2. 使用get_dummies进行onehot编码,获得训练特征X和测试特征X_test
  3. 初始化随机森林模型,设置100棵树,最大深度为5
  4. 调用fit方法在训练数据上训练模型
  5. 调用predict在测试集上预测,得到预测结果predictions

所以,这段代码实现了使用随机森林算法训练分类模型并在新数据上进行预测的流程。随机森林是一个非常实用的机器学习算法,可以处理分类与回归问题,获得较高的预测准确度。
在这个泰坦尼克生存预测的例子中,我们使用随机森林构建了一个初步的分类模型,并在测试集上得到了生存预测结果,这为我们进一步优化模型和特征工程提供了基础。我们还可以评估在测试集上的准确度、AUC等指标,判断模型的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/1276.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小研究 - Java 指针分析综述(三)

近年来静态程序分析已成为保障软件可靠性、安全性和高效性的关键技术之一. 指针分析作为基 础程序分析技术为静态程序分析提供关于程序的一系列基础信息,例如程序任意变量的指向关系、变量 间的别名关系、程序调用图、堆对象的可达性等. 介绍了 Java 指针分析的重要…

【Docker】LXC所实现的隔离性、Linux Namespace等讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

volume 、namespace

顺带说一下 volume 和 namespace ,咱们就开始分享一下 service 是什么 volume 是什么 还记得 docker 的 volume 吗,是一个数据卷 在 K8S 中,volume 是 pod 中能够被多个容器访问的共享目录 ,实际上和 docker 是一样的 volume 是…

JMeter分布式压测,启动执行机器报错: Port already in use: 1099

Problem creating registry: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use (Bind failed) 当压测量大的时候我们有时候会失败,然后再接着压测,这样就容易造成端口…

Tauri:跨平台探索之旅

一、简介 Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。都是属于跨平台技术的解决方案 优缺点快速分析 我们一般会把tauri作为 Electron 的替代方案,electron优点咱们不看,这里就提两个electron比较明显的问题: 安装…

监督学习和无监督学习

文章目录 监督学习和无监督学习监督学习算法包括无监督学习算法包括OpenCV十个子类举例: 监督学习和无监督学习 监督学习和无监督学习是机器学习领域中两种不同的学习范式,它们之间的区别在于数据的标签或标记的可用性以及学习任务的性质。 监督学习&am…

【探索 Kubernetes|作业管理篇 系列 10】Pod 健康检查和恢复机制

前言 大家好,我是秋意零。 上一篇中介绍了,Pod 的服务对象,从而对 Pod 有了更深的理解; 今天的主题是 Pod 健康检查和恢复机制,我们将结束 Pod 的内容。 最近搞了一个扣扣群,旨在技术交流、博客互助&am…

电商数据分析方案和BI强强联合,一站式做分析

搭建一个电商大数据分析平台需要哪些条件?总的来说需要一套满足电商数据分析需求的方案,一个能够提供强大数据计算分析功能和数据可视化图表的平台,比如电商数据分析方案和奥威BI软件这样的组合。 电商数据分析方案BI软件,一站式…

CT-ICP: 带有闭环的实时且灵活鲁棒的LiDAR里程计

文章:CT-ICP: Real-time Elastic LiDAR Odometry with Loop Closure 作者:Pierre Dellenbach, Jean-Emmanuel Deschaud, Bastien Jacquet, and Francois Goulette 编辑:点云PCL 代码: https://github.com/jedeschaud/ct_icp https…

Apache RocketMQ EventBridge:构建下一代事件驱动引擎

作者:沈林 前言 事件驱动,这个词在部分人印象中,它是一个过时的技术——没什么新意。从时间上看,确实也是这样,上世纪 60 年代,事件驱动就已经被正式提出,经常会被在 GUI 编程中。但是在有些人…

印刷企业WMS仓储管理系统解决方案

在数字化转型的浪潮中,印刷企业也积极寻求适合自身发展的解决方案。作为印刷业的重要环节,仓储管理对于提高效率、降低成本至关重要。而印刷企业WMS仓储管理系统的应用,为印刷企业带来了全新的解决方案。 印刷WMS仓储管理系统是一种基于信息技…

区块链生态发展

文章目录 前言以太坊的到来什么是图灵完备?什么是智能合约? 以太坊的应用去中心化应用 DApp代币发行 公有链&联盟链区块链应用总结 前言 前面的区块链文章有介绍区块链的诞生以及底层运行原理, 本文主要介绍一下区块链应用的发展&#x…