gaussian_naive_bayes | R Documentation |

`gaussian_naive_bayes`

is used to fit the Gaussian Naive Bayes model in which all class conditional distributions are assumed to be Gaussian and be independent.

```
gaussian_naive_bayes(x, y, prior = NULL, ...)
```

`x` |
numeric matrix with metric predictors (matrix or dgCMatrix from Matrix package). |

`y` |
class vector (character/factor/logical). |

`prior` |
vector with prior probabilities of the classes. If unspecified, the class proportions for the training set are used. If present, the probabilities should be specified in the order of the factor levels. |

`...` |
not used. |

This is a specialized version of the Naive Bayes classifier, in which all features take on real values (numeric/integer) and class conditional probabilities are modelled with the Gaussian distribution.

The Gaussian Naive Bayes is available in both, `naive_bayes`

and `gaussian_naive_bayes`

.The latter provides more efficient performance though. Faster calculation times come from restricting the data to a matrix with numeric columns and taking advantage of linear algebra operations. Sparse matrices of class "dgCMatrix" (Matrix package) are supported in order to furthermore speed up calculation times.

The `gaussian_naive_bayes`

and `naive_bayes()`

are equivalent when the latter is used with `usepoisson = FALSE`

and `usekernel = FALSE`

; and a matrix/data.frame contains numeric columns.

The missing values (NAs) are omited during the estimation process. Also, the corresponding predict function excludes all NAs from the calculation of posterior probabilities (an informative warning is always given).

`gaussian_naive_bayes`

returns an object of class `"gaussian_naive_bayes"`

which is a list with following components:

`data` |
list with two components: |

`levels` |
character vector with values of the class variable. |

`params` |
list with two matrices, first containing the class conditional means and the second containing the class conditional standard deviations. |

`prior` |
numeric vector with prior probabilities. |

`call` |
the call that produced this object. |

Michal Majka, michalmajka@hotmail.com

`naive_bayes`

, `predict.gaussian_naive_bayes`

, `plot.gaussian_naive_bayes`

, `tables`

, `get_cond_dist`

, `%class%`

```
# library(naivebayes)
set.seed(1)
cols <- 10 ; rows <- 100
M <- matrix(rnorm(rows * cols, 100, 15), nrow = rows, ncol = cols)
y <- factor(sample(paste0("class", LETTERS[1:2]), rows, TRUE, prob = c(0.3,0.7)))
colnames(M) <- paste0("V", seq_len(ncol(M)))
### Train the Gaussian Naive Bayes
gnb <- gaussian_naive_bayes(x = M, y = y)
summary(gnb)
# Classification
head(predict(gnb, newdata = M, type = "class")) # head(gnb %class% M)
# Posterior probabilities
head(predict(gnb, newdata = M, type = "prob")) # head(gnb %prob% M)
# Parameter estimates
coef(gnb)
### Sparse data: train the Gaussian Naive Bayes
library(Matrix)
M_sparse <- Matrix(M, sparse = TRUE)
class(M_sparse) # dgCMatrix
# Fit the model with sparse data
gnb_sparse <- gaussian_naive_bayes(M_sparse, y)
# Classification
head(predict(gnb_sparse, newdata = M_sparse, type = "class"))
# Posterior probabilities
head(predict(gnb_sparse, newdata = M_sparse, type = "prob"))
# Parameter estimates
coef(gnb_sparse)
### Equivalent calculation with general naive_bayes function.
### (no sparse data support by naive_bayes)
nb <- naive_bayes(M, y)
summary(nb)
head(predict(nb, type = "prob"))
# Obtain probability tables
tables(nb, which = "V1")
tables(gnb, which = "V1")
# Visualise class conditional Gaussian distributions
plot(nb, "V1", prob = "conditional")
plot(gnb, which = "V1", prob = "conditional")
# Check the equivalence of the class conditional distributions
all(get_cond_dist(nb) == get_cond_dist(gnb))
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.