Constructs a learner class object for fitting a naive bayes
classifier with naivebayes. As shown in the examples, the constructed
learner returns predicted class probabilities of class 2 in case of binary
classification. A n times p
matrix, with n
being the number of
observations and p
the number of classes, is returned for multi-class
classification.
learner_naivebayes(
formula,
info = "Naive Bayes",
laplace.smooth = 0,
kernel = FALSE,
learner.args = NULL,
...
)
(formula) Formula specifying response and design matrix.
(character) Optional information to describe the instantiated learner object.
Laplace smoothing
If TRUE a kernel estimator is used for numeric predictors (otherwise a gaussian model is used)
(list) Additional arguments to learner$new().
Additional arguments to naivebayes.
learner object.
n <- 5e2
x1 <- rnorm(n, sd = 2)
x2 <- rnorm(n)
y <- rbinom(n, 1, lava::expit(x2*x1 + cos(x1)))
d <- data.frame(y, x1, x2)
# binary classification
lr <- learner_naivebayes(y ~ x1 + x2)
lr$estimate(d)
lr$predict(head(d))
#> [1] 0.6242151 0.5922942 0.5569092 0.6236269 0.6123913 0.6171171
# multi-class classification
lr <- learner_naivebayes(Species ~ .)
lr$estimate(iris)
lr$predict(head(iris))
#> setosa versicolor virginica
#> [1,] 1 1.357840e-18 7.112825e-26
#> [2,] 1 1.514805e-17 2.348197e-25
#> [3,] 1 1.073040e-18 2.340265e-26
#> [4,] 1 1.466193e-17 2.954923e-25
#> [5,] 1 4.532911e-19 2.883896e-26
#> [6,] 1 1.490941e-14 1.757519e-21