# Naive Bayes

A fast and simple probabilistic classifier based on Bayes' theorem with the assumption of feature independence.

**Inputs**

- Data: input dataset
- Preprocessor: preprocessing method(s)

**Outputs**

- Learner: naive bayes learning algorithm
- Model: trained model

**Naive Bayes** learns a Naive Bayesian model from the data. It only works for classification tasks.

This widget has two options: the name under which it will appear in other widgets and producing a report. The default name is *Naive Bayes*. When you change it, you need to press *Apply*.

## Preprocessing

Naive Bayes uses default preprocessing when no other preprocessors are given. It executes them in the following order:

- removes empty columns
- discretizes numeric values to 4 bins with equal frequency

To remove default preprocessing, connect an empty Preprocess widget to the learner.

## Examples

Here, we present two uses of this widget. First, we compare the results of the
**Naive Bayes** with another model, the Random Forest. We connect *iris* data from File to Test & Score. We also connect **Naive Bayes** and Random Forest to **Test & Score** and observe their prediction scores.

The second schema shows the quality of predictions made with **Naive Bayes**. We feed the Test & Score widget a Naive Bayes learner and then send the data to the Confusion Matrix. We also connect Scatter Plot with **File**. Then we select the misclassified instances in the **Confusion Matrix** and show feed them to Scatter Plot. The bold dots in the scatterplot are the misclassified instances from **Naive Bayes**.