R语言分析TiTANIC
时间: 2025-01-08 10:10:56 浏览: 3
### R语言 Titanic 数据集分析示例
#### 一、环境设置与数据加载
为了进行有效的数据分析,首先需要安装并加载必要的包。这些包提供了丰富的功能来处理和可视化数据。
```r
install.packages("tidyverse") # 安装 tidyverse 包集合用于数据操作
install.packages("caret") # 安装 caret 包用于机器学习工具
install.packages("rpart") # 安装 rpart 包实现决策树算法
install.packages("VIM") # 安装 VIM 包解决缺失值问题
install.packages("car") # 安装 car 提供额外统计方法支持
install.packages("naniar") # 安装 naniar 处理缺失数据图形化展示
install.packages("mice") # 安装 mice 实现多重插补法填补缺失值
install.packages("ggthemes") # 安装 ggthemes 增加更多主题样式给图表
library(tidyverse)
library(caret)
library(rpart)
library(VIM)
library(car)
library(naniar)
library(mice)
library(ggthemes)
dat <- read.csv('titanic.csv', na.strings=c("")) # 加载 CSV 文件,并指定空白字符串视为 NA[^3]
```
#### 二、初步探索性数据分析 (EDA)
了解数据结构对于后续建模至关重要。通过查看前几行记录以及总结统计数据可以帮助快速掌握整体情况。
```r
head(dat) # 查看数据框头部信息
str(dat) # 显示对象内部结构详情
summary(dat) # 获取各列基本描述统计量
vis_miss(dat, sort=TRUE) # 可视化显示缺失值模式
```
#### 三、特征工程与预处理
针对特定业务场景调整原始变量或创建新变量有助于提高模型性能。这里会涉及到对类别型变量编码转换成数值形式;填充/删除含有大量缺失值得属性等操作。
```r
# 对 Age 和 Embarked 列中的 NAs 进行简单均值替换
imputed_data <- dat %>%
mutate(Age = replace_na(Age, mean(Age, na.rm=TRUE)),
Embarked = replace(Embarked, is.na(Embarked), "S"))
# 将 Survived 转换为因子类型以便分类任务使用
imputed_data$Survived <- as.factor(imputed_data$Survived)
# 创建新的衍生变量 FamilySize 表征家庭成员数量总和
imputed_data <- imputed_data %>%
rowwise() %>%
mutate(FamilySize = SibSp + Parch + 1L)
```
#### 四、构建预测模型
利用训练好的模型对未来未知样本做出推断是最终目标之一。此处采用逻辑回归(Logistic Regression),这是一种广泛应用于二元分类问题的方法。
```r
set.seed(1234567890) # 设置随机种子保证结果可重复再现
trainIndex <- createDataPartition(y=imputed_data$Survived,
p=.8,
list=F)[,1]
trainingSet <- imputed_data[trainIndex, ]
testingSet <- imputed_data[-trainIndex, ]
modelFit <- train(Survived ~ . , data=trainingSet, method="glm", family='binomial')
confusionMatrix(predict(modelFit, newdata=testingSet), testingSet$Survived)
```
阅读全文