14.6 Implementation

To implement naive Bayes classification in R, we’ll use the naiveBayes() function in the e1071 package (Meyer et al. 2021)

14.6.1 Models

# two models
naive_model_1 <- naiveBayes(species ~ bill_length_mm, data = penguins)
naive_model_2 <- naiveBayes(species ~ bill_length_mm + flipper_length_mm, 
                            data = penguins)

# our penguin to classify
our_penguin <- data.frame(bill_length_mm = 50, flipper_length_mm = 195)

14.6.2 Predictions

predict(naive_model_1, newdata = our_penguin, type = "raw") |>
round(6)
##        Adelie Chinstrap Gentoo
## [1,] 0.000169  0.397831  0.602
predict(naive_model_1, newdata = our_penguin)
## [1] Gentoo
## Levels: Adelie Chinstrap Gentoo
predict(naive_model_2, newdata = our_penguin, type = "raw") |>
round(6)
##        Adelie Chinstrap   Gentoo
## [1,] 0.000345  0.994868 0.004787
predict(naive_model_2, newdata = our_penguin)
## [1] Chinstrap
## Levels: Adelie Chinstrap Gentoo