**Superclasses: **`CompactClassificationNaiveBayes`

Naive Bayes classification

`ClassificationNaiveBayes`

is a naive Bayes
classifier for multiclass learning. Use `fitcnb`

and the training data to train a
`ClassificationNaiveBayes`

classifier.

Trained `ClassificationNaiveBayes`

classifiers store the training data,
parameter values, data distribution, and prior probabilities. You can use these classifiers to:

Estimate resubstitution predictions. For details, see

`resubPredict`

.Predict labels or posterior probabilities for new data. For details, see

`predict`

.

Create a `ClassificationNaiveBayes`

object by using `fitcnb`

.

compact | Compact naive Bayes classifier |

crossval | Cross-validated naive Bayes classifier |

resubEdge | Classification edge for naive Bayes classifiers by resubstitution |

resubLoss | Classification loss for naive Bayes classifiers by resubstitution |

resubMargin | Classification margins for naive Bayes classifiers by resubstitution |

resubPredict | Predict resubstitution labels of naive Bayes classifier |

edge | Classification edge for naive Bayes classifiers |

logP | Log unconditional probability density for naive Bayes classifier |

loss | Classification error for naive Bayes classifier |

margin | Classification margins for naive Bayes classifiers |

predict | Predict labels using naive Bayes classification model |

Value. To learn how value classes affect copy operations, see Copying Objects (MATLAB).

If you specify

`'DistributionNames','mn'`

when training`Mdl`

using`fitcnb`

, then the software fits a multinomial distribution using the bag-of-tokens model. The software stores the probability that tokenappears in class`j`

in the property`k`

`DistributionParameters{`

. Using additive smoothing [2], the estimated probability is,`k`

}`j`

$$P(\text{token}j|\text{class}k)=\frac{1+{c}_{j|k}}{P+{c}_{k}},$$

where:

$${c}_{j|k}={n}_{k}\frac{{\displaystyle \sum _{i:{y}_{i}\in \text{class}k}^{}{x}_{ij}}{w}_{i}^{}}{{\displaystyle \sum _{i:{y}_{i}\in \text{class}k}^{}{w}_{i}}};$$ which is the weighted number of occurrences of token

*j*in class*k*.*n*is the number of observations in class_{k}*k*.$${w}_{i}^{}$$ is the weight for observation

*i*. The software normalizes weights within a class such that they sum to the prior probability for that class.$${c}_{k}={\displaystyle \sum _{j=1}^{P}{c}_{j|k}};$$ which is the total weighted number of occurrences of all tokens in class

*k*.

If you specify

`'DistributionNames','mvmn'`

when training`Mdl`

using`fitcnb`

, then:For each predictor, the software collects a list of the unique levels, stores the sorted list in

`CategoricalLevels`

, and considers each level a bin. Each predictor/class combination is a separate, independent multinomial random variable.For predictor

in class`j`

*k*, the software counts instances of each categorical level using the list stored in`CategoricalLevels{`

.}`j`

The software stores the probability that predictor

, in class`j`

, has level`k`

*L*in the property`DistributionParameters{`

, for all levels in,`k`

}`j`

`CategoricalLevels{`

. Using additive smoothing [2], the estimated probability is}`j`

$$P\left(\text{predictor}j=L|\text{class}k\right)=\frac{1+{m}_{j|k}(L)}{{m}_{j}+{m}_{k}},$$

where:

$${m}_{j|k}(L)={n}_{k}\frac{{\displaystyle \sum _{i:{y}_{i}\in \text{class}k}^{}I\{{x}_{ij}=L\}{w}_{i}^{}}}{{\displaystyle \sum _{i:{y}_{i}\in \text{class}k}^{}{w}_{i}^{}}};$$ which is the weighted number of observations for which predictor

*j*equals*L*in class*k*.*n*is the number of observations in class_{k}*k*.$$I\left\{{x}_{ij}=L\right\}=1$$ if

*x*=_{ij}*L*, 0 otherwise.$${w}_{i}^{}$$ is the weight for observation

*i*. The software normalizes weights within a class such that they sum to the prior probability for that class.*m*is the number of distinct levels in predictor_{j}*j*.*m*is the weighted number of observations in class_{k}*k*.

[1] Hastie, T., R. Tibshirani, and J. Friedman. *The
Elements of Statistical Learning*, Second Edition. NY: Springer,
2008.

[2] Manning, C. D., P. Raghavan, and M. Schütze.
*Introduction to Information Retrieval*, NY: Cambridge University
Press, 2008.