r语言对泰坦尼克号数据集做朴素贝叶斯分类模型
时间: 2023-08-16 10:08:15 浏览: 171
好的,下面是一个简单的例子,使用朴素贝叶斯分类模型对泰坦尼克号数据集进行分类。
首先,下载并加载数据集:
``` r
library(readr)
titanic <- read_csv("https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv")
```
接下来,我们需要将数据集拆分为训练集和测试集:
``` r
library(caret)
set.seed(123)
trainIndex <- createDataPartition(titanic$Survived, p = 0.7, list = FALSE)
train <- titanic[trainIndex, ]
test <- titanic[-trainIndex, ]
```
然后,我们需要将数据集转换为适合朴素贝叶斯分类模型的格式。在本例中,我们将使用“Survived”列作为响应变量,其他列作为预测变量。
``` r
library(dplyr)
library(tidyr)
library(reshape2)
train_nb <- train %>%
select(-PassengerId, -Name, -Ticket, -Cabin) %>%
mutate_if(is.character, as.factor) %>%
gather(key = "variable", value = "value", -Survived) %>%
dcast(Survived ~ variable + value, fun.aggregate = length) %>%
replace(is.na(.), 0)
test_nb <- test %>%
select(-PassengerId, -Name, -Ticket, -Cabin) %>%
mutate_if(is.character, as.factor) %>%
gather(key = "variable", value = "value", -Survived) %>%
dcast(Survived ~ variable + value, fun.aggregate = length) %>%
replace(is.na(.), 0)
```
现在,我们可以使用朴素贝叶斯分类模型对测试集进行分类:
``` r
library(e1071)
nb_model <- naiveBayes(Survived ~ ., data = train_nb)
nb_pred <- predict(nb_model, newdata = test_nb[,-1])
```
最后,我们可以使用混淆矩阵来评估模型的性能:
``` r
library(caret)
confusionMatrix(nb_pred, test_nb$Survived)
```
这就是一个简单的朴素贝叶斯分类模型的例子,用于对泰坦尼克号数据集进行分类。当然,这只是一个入门级别的实例,你可以根据自己的需要进行更深入的调整和改进。
阅读全文