r语言对泰坦尼克号数据构建包含隐藏层的神经网络的代码
时间: 2023-11-28 07:03:58 浏览: 31
以下是使用R语言对泰坦尼克号数据构建包含隐藏层的神经网络的代码:
```R
# 导入数据
titanic <- read.csv("titanic.csv")
# 数据预处理
titanic$Survived <- as.factor(titanic$Survived)
titanic$Pclass <- as.factor(titanic$Pclass)
titanic$Sex <- as.factor(titanic$Sex)
titanic$Embarked <- as.factor(titanic$Embarked)
titanic$Age[is.na(titanic$Age)] <- mean(titanic$Age, na.rm = TRUE)
titanic$Embarked[is.na(titanic$Embarked)] <- "S"
# 划分数据集
library(caTools)
set.seed(123)
split <- sample.split(titanic$Survived, SplitRatio = 0.7)
train <- subset(titanic, split == TRUE)
test <- subset(titanic, split == FALSE)
# 构建神经网络模型
library(neuralnet)
nn <- neuralnet(Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked,
data = train, hidden = c(3,2), linear.output = FALSE)
# 预测测试集结果
pred <- compute(nn, test[,c("Pclass","Sex","Age","SibSp","Parch","Fare","Embarked")])
pred <- ifelse(pred$net.result > 0.5, 1, 0)
# 计算准确率
accuracy <- sum(pred == test$Survived) / nrow(test)
cat("Accuracy:", accuracy)
```
在这个例子中,使用了neuralnet包来构建神经网络模型。我们将Survived作为目标变量,将Pclass、Sex、Age、SibSp、Parch、Fare和Embarked作为自变量。hidden参数指定了隐藏层的神经元数量,linear.output参数设置为FALSE,表示输出层使用sigmoid函数进行非线性变换。最后,使用compute()函数对测试集进行预测,并计算准确率。