R语言二分类问题案例分析:以泰坦尼克号沉船为例

本文通过R语言分析泰坦尼克号数据,探讨二分类问题。作者进行了人工变量筛选,处理缺失值,建立零模型作为基准,并尝试多种模型如随机森林、KNN等。最终发现随机森林表现最佳,但集成学习未提升模型性能。验证阶段揭示了集成学习的过拟合问题。
摘要由CSDN通过智能技术生成

作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

微信:hope9057



Kaggle上最经典的泰坦尼克号入门级教程,我们这里尝试玩转它(https://www.kaggle.com/c/titanic)。先讲数据背景,我们有各种各样的乘客数据,想要利用这些数据,预测在泰坦尼克号沉船的时候,这个乘客是否能够存活。具体的数据字典可以参照:

https://www.kaggle.com/c/titanic/data

先导入数据

 
 

#数据导入 set.seed(201891) library(pacman) p_load(tidyverse) p_load(caret,caretEnsemble) setwd("E:\\_data_hope\\Titanic\\data") read_csv("train.csv") -> train_raw1 read_csv("test.csv") -> test_raw1 read_csv("gender_submission.csv") -> gs


人工变量筛选

人工筛选变量是第一步,这是机器学习无法逾越的高度,因为我们知道哪些变量是真正有关的,哪些即使是真的提高了预测精度也只是假象而已。我们应该知道,乘客的ID号码,乘客叫什么名字,乘客在哪里上船,还有买票的号码,是与存活率完全没有直接关系的,直接删除掉。

 
 

train_raw1 %>% select(-PassengerId,-Name,-Ticket,-Embarked) -> train_raw2 test_raw1 %>% select(-PassengerId,-Name,-Ticket,-Embarked) -> test_raw2


缺失值可视化和处理

如果数据中有一些属性含有大量缺失值,那么它对预测的贡献几乎为零,甚至具有不良的干扰。当然有的时候缺和不缺本来就是一种信息,但是这里我们无法深入判断。首先我们先看看是否有缺失值,有的话缺多少?

 
 

p_load(VIM,Amelia) missmap(train_raw2)

640?wx_fmt=png

 
 

missmap(test_raw2)

640?wx_fmt=png

 
 

train_raw2 %>% aggr()


640?wx_fmt=png

 
 

test_raw2 %>% aggr()


640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值