Naive Bayes Classifier
naivebayes(
formula,
data,
weights = NULL,
kernel = FALSE,
laplace.smooth = 0,
prior = NULL,
...
)
Formula with syntax: response ~ predictors | weights
data.frame
optional frequency weights
If TRUE a kernel estimator is used for numeric predictors (otherwise a gaussian model is used)
Laplace smoothing
optional prior probabilities (default estimated from data)
additional arguments to lower level functions
An object of class 'naivebayes
' is returned. See
naivebayes-class
for more details about this class and
its generic functions.
library(data.table)
data(iris)
m <- naivebayes(Species ~ Sepal.Width + Petal.Length, data = iris)
pr <- predict(m, newdata = iris)
# using weights to reduce the size of the dataset
n <- 5e2
x <- rnorm(n, sd = 2) > 0
y <- rbinom(n, 1, lava::expit(x))
# full data set
d1 <- data.frame(y, x = as.factor(x > 0))
m1 <- naivebayes(y ~ x, data = d1)
# reduced data set
d2 <- data.table(d1)[, .(.N), by = .(y, x)]
m2 <- naivebayes(y ~ x, data = d2, weights = d2$N)
all(predict(m1, d1) == predict(m2, d1))
#> [1] TRUE