使用R语言对泰坦尼克号乘客生存数据集完成以下数据分析任务: (1)填充Age一列的缺失值,并去掉PassengerId, Name, Ticket, Cabin列; (2)将数据集按7:3划分为训练集和测试集; (3)建立Survived列与其他列之间的逻辑回归模型,并计算预测结果和混淆矩阵
时间: 2024-01-24 14:17:30 浏览: 159
泰坦尼克号生存预测数据集
5星 · 资源好评率100%
好的,首先我们需要读入数据集并进行数据预处理,包括填充缺失值和删除无用列。以下是完整代码及注释:
```R
# 读入数据集
data <- read.csv("train.csv", stringsAsFactors = FALSE)
# 填充Age列的缺失值
data$Age[is.na(data$Age)] <- median(data$Age, na.rm = TRUE)
# 删除PassengerId, Name, Ticket, Cabin列
data <- data[, -c(1, 4:6, 9)]
# 将数据集按7:3划分为训练集和测试集
set.seed(123) # 设置随机数种子,保证每次结果一致
trainIndex <- sample(1:nrow(data), round(0.7*nrow(data)), replace = FALSE) # 随机选取70%的样本作为训练集
train <- data[trainIndex, ]
test <- data[-trainIndex, ]
# 建立逻辑回归模型
model <- glm(Survived ~ ., data = train, family = binomial)
# 预测测试集结果
predict <- predict(model, newdata = test, type = "response")
prediction <- ifelse(predict >= 0.5, 1, 0)
# 计算混淆矩阵
library(caret) # 导入caret包,用于计算混淆矩阵
cm <- confusionMatrix(prediction, test$Survived)
print(cm)
```
其中,`read.csv`函数用于读入数据集;`is.na`函数判断Age列是否缺失;`median`函数计算Age列的中位数;`[, -c(1, 4:6, 9)]`表示删除PassengerId, Name, Ticket, Cabin列;`sample`函数随机选取训练集;`glm`函数建立逻辑回归模型;`predict`函数预测测试集结果;`ifelse`函数将预测结果转换为0或1;`confusionMatrix`函数计算混淆矩阵。
以上代码执行后,将输出混淆矩阵,其中包括预测结果的准确率、召回率、F1值等指标。
阅读全文