【从零开始学Kaggle竞赛】泰坦尼克之灾

这篇具有很好参考价值的文章主要介绍了【从零开始学Kaggle竞赛】泰坦尼克之灾。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.准备

注册kaggle账号后,进入titanic竞赛界面
https://www.kaggle.com/competitions/titanic
进入后界面如下
Overview部分为竞赛整体介绍,包括竞赛介绍以及结果评估。
Data部分为数据集介绍,介绍使用的数据集。
Code部分为提交的代码
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习

1.问题分析

挑战

泰坦尼克号的沉没是历史上最臭名昭著的沉船事故之一。

1912 年 4 月 15 日,被公认为 "永不沉没 "的皇家邮轮泰坦尼克号在首航时撞上冰山沉没。不幸的是,由于没有足够的救生艇供船上所有人使用,2224 名乘客和船员中有 1502 人丧生。

虽然生还有一定的运气成分,但似乎有些群体比其他群体更有可能生还。

在这项挑战中,我们要求您建立一个预测模型来回答这个问题:"使用乘客数据(即姓名、年龄、性别、社会经济阶层等)来回答 "什么样的人更有可能幸存?

流程

  • 参加竞赛
    阅读挑战说明,接受竞赛规则并访问竞赛数据集。
  • 开始工作
    下载数据,在本地或 Kaggle Notebooks(我们的免设置、可定制的 Jupyter Notebooks 环境,配备免费 GPU)上构建模型,并生成预测文件。
  • 提交
    在 Kaggle 上以提交的形式上传您的预测,并获得准确率分数。
  • 查看排行榜
    在我们的排行榜上查看您的模型在其他 Kaggler 中的排名。
  • 提高分数
    查看讨论区,查找大量教程和其他竞争对手的见解。

数据集介绍

在本次竞赛中,您将获得两个类似的数据集,其中包括乘客信息,如姓名、年龄、性别、社会经济阶层等。一个数据集名为 train.csv,另一个名为 test.csv。

Train.csv将包含一个乘客子集(确切地说是891人)的详细信息,重要的是,它将揭示乘客是否幸存,也就是所谓的 “基本事实”。

test.csv 数据集包含类似的信息,但不会披露每位乘客的 “基本事实”。您的任务就是预测这些结果。

利用您在 train.csv 数据中发现的模式,预测机上其他 418 名乘客(在 test.csv 中找到)是否幸存。

结果提交

  1. 目标
    您的任务是预测泰坦尼克号沉没时是否有乘客幸存。
    对于测试集中的每个变量,您必须预测其值为 0 或 1。

  2. 指标
    您的分数是您正确预测乘客的百分比。这就是所谓的准确率。

  3. 提交文件格式
    您应提交一个 csv 文件,其中包含 418 个条目和一行标题。如果您提交的文件中有额外的列(除乘客编号和存活人数外)或行,则会显示错误。

2.代码实现

首先选择Code,之后点击New Notebook
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习
新建Notebook后,会出现如下界面
单击运行Notebook中的代码
查看运行结果
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习
代码为

# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

# Input data files are available in the read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All" 
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session

结果应为

/kaggle/input/titanic/train.csv
/kaggle/input/titanic/test.csv
/kaggle/input/titanic/gender_submission.csv

2.1 加载数据

主要使用
pd.read_csv(filepath_or_buffer. sep=‘;’)

filepath_or_buffer 输入需要读取的csv文件路径
sep指定数据中列之间的分隔符,默认为逗号。
data.head():返回data的前几行数据,默认为前五行,需要前十行则data.head(10)

data.tail():返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)

2.1.1 加载训练数据

代码

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

输出结果
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习

2.1.2 加载测试数据

代码

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

结果
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习

2.2 数据分析

记住我们的目标:我们希望在train.csv中找到规律,帮助我们预测test.csv中的乘客是否幸存。
当有这么多数据需要排序时,最初寻找规律可能会让人感到不知所措。所以,我们从简单开始。
请记住,gender_submission.csv中的样本提交文件假设所有女性乘客幸存(所有男性乘客死亡)。
这是一个合理的初步猜测吗?我们将检查这个猜测在数据中是否成立(在train.csv中)。
将下面的代码复制到新的代码单元格中。然后,运行单元格。
代码
(计算女性幸存率)

women = train_data.loc[train_data.Sex == 'female']["Survived"]
rate_women = sum(women)/len(women)

print("% of women who survived:", rate_women)

结果

% of women who survived: 0.7420382165605095

(计算男性幸存率)

men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men)/len(men)

print("% of men who survived:", rate_men)

结果

% of men who survived: 0.18890814558058924

上面的代码计算了幸存的男性乘客(在火车.csv中)的百分比。
从中可以看出,船上几乎75%的女性幸存下来,而只有19%的男性活了下来。由于性别似乎是生存的有力指标,gender_submission.csv中的提交文件并不是一个糟糕的第一猜测!
但归根结底,这份基于性别的报告的预测只基于一个专栏。正如你所能想象的,通过考虑多列,我们可以发现更复杂的模式,这些模式可能会产生更明智的预测。由于同时考虑几个列是非常困难的(或者,同时考虑许多不同列中的所有可能模式需要很长时间),我们将使用机器学习来实现自动化。

2.3 模型建立与预测

我们将建立一个所谓的随机森林模型。该模型由几棵“树”组成(下图中有三棵树,但我们将构建100棵!),它们将单独考虑每位乘客的数据,并投票决定乘客是否幸存。然后,随机森林模型做出一个民主的决定:得票最多的结果获胜!
下面的代码单元在数据的四个不同列(“Pclass”、“Sex”、“SibSp”和“Parch”)中查找模式。它根据train.csv文件中的模式在随机森林模型中构建树,然后在test.csv中为乘客生成预测。该代码还将这些新预测保存在csv文件submission.csv中。
将此代码复制到您的笔记本中,并在新的代码格中运行。

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('submission.csv', index=False)
print("Your submission was successfully saved!")

运行结果

Your submission was successfully saved!

可以看到,在Outpu文件夹下生成了submission.csv
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习

3.结果提交

【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习

提交后在右边可看到最新提交的结果
【从零开始学Kaggle竞赛】泰坦尼克之灾,机器学习文章来源地址https://www.toymoban.com/news/detail-645437.html

到了这里,关于【从零开始学Kaggle竞赛】泰坦尼克之灾的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年04月27日
    浏览(36)
  • 泰坦尼克沉船存活率(机器学习,Python)

    目录 1,实验要求: 2,报告内容 引言 数据处理 导入数据 查看数据集信息 数据清洗  特征工程 特征提取 特征选择 生还率预测说明 模型构建 建立训练数据集和测试数据集  选择不同的机器学习算法 训练模型,评估模型  方案实施 生存预测 参数调优 结论 改进方法 详细描

    2024年02月03日
    浏览(32)
  • 泰坦尼克号可视化数据分析报告

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

    2024年02月11日
    浏览(53)
  • 速通——决策树(泰坦尼克号乘客生存预测案例)

    一、决策树 1、概述         树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果 2、建立过程         1. 特征选择:选取有较强分类能力的特征。         2. 决策树生成:根据选择的特征生成决策树。  

    2024年01月21日
    浏览(47)
  • Titanic 泰坦尼克数据集 特征工程 机器学习建模

    以下内容为讲课时使用到的泰坦尼克数据集分析、建模过程,整体比较完整,分享出来,希望能帮助大家。部分内容由于版本问题,可能无法顺利运行。 1   经典又有趣的 Titanic问题 1.1   目标 1.2   解决方法 1.3   项目目的 2   导入模块 3   加载数据 4   探索性数据分析

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

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

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

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

    2024年02月06日
    浏览(50)
  • 极简sklearn-使用决策树预测泰坦尼克号幸存者

    泰坦尼克号幸存者数据集是kaggle竞赛中入门级的数据集,今天我们就来用决策树来预测下哪些人会成为幸存者。 数据集下载地址: https://download.csdn.net/download/ting4937/87630361  数据集中包含两个csv文件,data为训练用数据,test为测试集。 首先我们通过pandas来读取并查看数据 数据如

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

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

    2024年02月05日
    浏览(42)
  • 用决策树或随机森林解决泰坦尼克号乘客生存预测(内附数据集百度网盘)

     实现该模型的训练要用到的主要算法和实现思路是   首先的首先当然是导包啦   然后就是读取文件里面的数据进来了 数据集下载:百度网盘 链接:https://pan.baidu.com/s/1slaouE4Es37U8u0U-kDJnw 提取码:ss5o   接着是进行对数据进行基本的处理了,以下是作者的处理方法: 第一步是

    2024年02月15日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包