泰坦尼克 数据集_Kaggle数据竞赛--基于R语言的泰坦尼克生存预测

本文通过R语言对Kaggle泰坦尼克生存预测项目进行深入分析,涉及数据预处理、探索性数据分析及模型构建。利用随机森林模型,经过参数调优,最终在Kaggle上取得0.81818的评分,进入前4%。
摘要由CSDN通过智能技术生成

3669525a19bb7dd1c05c6f86895f7276.png

摘要

本文以R语言为基础,利用数据预览,探索式数据分析,缺失值的填补,增加新特征以及去除相关特征等方法,并通过构建随机森林模型,参数调优的方式对kaggle上的泰坦尼克项目进行了生存预测,结果是得分为0.81818,前4%。

一、项目介绍

泰坦尼克生存预测是Kaggle上参赛人数较多的竞赛之一,对于数据爱好者来说是初入机器学习领域相对比较容易的比赛,属于入门级比赛项目。

比赛的目的其实很简单,就是要求参赛选手通过训练数据集分析出什么类型的人更可能幸存,并创建模型预测出测试数据集中的所有乘客是否生还。很明显,该项目属于二分类问题。

数据来源于官方网站,包括训练数据和测试数据两部分数据。

二、加载并预览数据

在加载数据之前,先载入后续分析需要用到的R包。

library("dplyr")
library("ggplot2")
library("caret")
library("randomForest")

导入数据集,将训练集和测试集分别命名为train和test。

getwd()
setwd("../Desktop")
train <- read.csv("train.csv",stringsAsFactors = F,na.strings = "")
test <- read.csv("test.csv",stringsAsFactors = F,na.strings = "")

为了对训练集和测试集进行相同的处理和转换,避免重复操作和数据类型出现不一致的情况,这里将它们合并一起处理,并命名为data数据集。

data <- bind_rows(train,test)

预览数据。

str(data)

结果如下:

'data.frame':	1309 obs. of  12 variables:
 $ PassengerId: int  1 2 3 4 5 6 7 8 9 10 ...
 $ Survived   : int  0 1 1 1 0 0 0 0 1 1 ...
 $ Pclass     : int  3 1 3 1 3 3 1 3 3 2 ...
 $ Name       : chr  "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
 $ Sex        : chr  "male" "female" "female" "female" ...
 $ Age        : num  22 38 26 35 35 NA 54 2 27 14 ...
 $ SibSp      : int  1 1 0 1 0 0 0 3 0 1 ...
 $ Parch      : int  0 0 0 0 0 0 0 1 2 0 ...
 $ Ticket     : chr  "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
 $ Fare       : num  7.25 71.28 7.92 53.1 8.05 ...
 $ Cabin      : chr  NA "C85" NA "C123" ...
 $ Embarked   : chr  "S" "C" "S" "S" ...

可以看出,整个数据集包含12个变量,1309条数据,其中891条为训练数据,418条为测试数据

  • PassengerId:整数型变量,表示乘客的ID。
  • Survived:整数型变量,表示该乘客是否幸存。0表示遇难,1表示幸存。
  • Pclass: 整数型变量,表示乘客的舱位等级,1代表1等舱,2代表2等舱,3代表3等舱。
  • Name: 字符型变量,表示乘客姓名。
  • Sex:字符型变量,表示乘客性别。
  • Age:数值型变量,表示乘客年龄。
  • SibSp:整数型变量,兄弟姐妹或配偶的人数。
  • Parch: 整数型变量,代表父母或子女的人数。
  • Ticket: 字符型变量,代表乘客的船票号。
  • Fare: 数值型变量,代表乘客的船票价。
  • Cabin: 字符型变量,代表乘客所在的舱位。
  • Embarked: 字符型变量,表示乘客的登船地点,C 表示 Cherbourg(瑟堡港), Q 表示Queenstown(皇后镇), S 表示Southampton(南安普敦)。

为了方便后续的分析,这里先统计各列的缺失值的分布情况。

apply(data,2,function(x){sum(is.na(x))}) #汇总缺失值

结果如下:

PassengerId    Survived      Pclass        Name         Sex         Age       SibSp       Parch      Ticket        Fare       Cabin    Embarked 
          0         418           0           0           0         263           0           0           0           1        1014           2 

可以看出,Age,Fare,Cabin,Embarked,以及Survived均包含缺失值,值得注意的是,虽然Survived包含418个缺失值,但它是由测试数据引入的,是需要预测的部分。

三、探索性数据分析

接下来,会逐个探索不同的特征变量与预测变量之间的关系。

(1)Pclass

ggplot(data[
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值